Passer au contenu principal
RM
Retour au blog

Supabase dépasse le BaaS avec ETL, Analytics Buckets et Vector Buckets. La plateforme évolue.

Radnoumane Mossabely9 min read
Supabase ETL et Vector Buckets
Supabase
ETL
Vector
Data
PostgreSQL
0 vues

TL;DR

  • Supabase Launch Week December 2025 marque un virage : la plateforme passe de "Firebase alternative" a "data platform".
  • Les ETL pipelines permettent d'ingerer des donnees externes directement dans Supabase, sans outil tiers.
  • Analytics Buckets (Apache Iceberg) ouvrent la porte a l'analyse de donnees massives sur PostgreSQL.
  • Vector Buckets stockent des embeddings IA natifs, en remplacement de solutions comme Pinecone ou Weaviate.
  • Supabase for Platforms permet aux SaaS de proposer du BaaS en marque blanche.
  • C'est impressionnant, mais attention au vendor lock-in.

Le contexte : une Launch Week qui change la donne

Chaque trimestre, Supabase sort une Launch Week. En general, c'est des ameliorations incrementales : un meilleur dashboard, une feature Edge Functions, un fix de performance. Celle de decembre 2025, c'est autre chose. En cinq jours, l'equipe a pose les fondations d'une plateforme data complete. Et ca merite qu'on s'y arrete.

Parce que le signal est clair : Supabase ne veut plus etre "le Firebase open source". Ils veulent etre le layer data universel pour les apps modernes. Et les annonces de cette semaine montrent qu'ils ont les moyens de leurs ambitions.

ETL Pipelines : l'ingestion de donnees sans sortir de Supabase

Le probleme qu'on avait tous

Avant, si tu voulais importer des donnees dans Supabase depuis une source externe -- un fichier CSV, une API tierce, un bucket S3 -- tu devais monter un pipeline ETL a cote. Airbyte, Fivetran, un script cron en Python... des outils supplementaires, de l'infra en plus, de la complexite.

Ce que Supabase propose maintenant

Les ETL Pipelines sont integres directement dans le dashboard. Tu configures une source (S3, API REST, fichier), une transformation (SQL ou JavaScript), et une destination (ta table Postgres). Le tout tourne sur l'infra Supabase, avec un scheduler integre.

hljs sql
-- Exemple simplifie : pipeline qui importe des produits depuis un CSV S3
CREATE PIPELINE products_import
  SOURCE s3('s3://mon-bucket/products.csv')
  TRANSFORM (
    SELECT
      col1 AS name,
      col2::numeric AS price,
      col3 AS category
    WHERE col2::numeric > 0
  )
  INTO products
  SCHEDULE '0 */6 * * *';

C'est du SQL etendu, pas un DSL proprietaire. Ca veut dire que tu peux le versionner dans Git, le reviewer en PR, et le tester en local. C'est une approche qui respecte les habitudes des devs backend.

Mon avis

Pour des pipelines simples a moderement complexes, c'est excellent. Ca elimine le besoin d'un outil ETL dedie pour 80% des cas. Mais pour de l'ETL enterprise avec des centaines de sources, des transformations complexes, et du monitoring avance, Airbyte ou Fivetran restent superieurs. Supabase couvre le cas du dev solo ou de la petite equipe -- et c'est exactement leur cible.

Analytics Buckets : Apache Iceberg dans Supabase

Pourquoi c'est important

PostgreSQL est excellent pour les requetes transactionnelles (OLTP). Mais pour de l'analytique -- agreger des millions de lignes, calculer des tendances sur 12 mois, generer des rapports -- il souffre. Les index B-tree ne sont pas faits pour ca. Tu finis par monter un data warehouse a cote : BigQuery, Snowflake, ClickHouse.

Ce que Supabase fait

Les Analytics Buckets utilisent Apache Iceberg comme format de stockage sous-jacent. Iceberg, c'est le format open source qui a conquis le data engineering : colonnar, partitionne, avec du time travel et du schema evolution.

Concretement, tu peux maintenant avoir des tables "analytics" dans Supabase qui stockent les donnees en format Iceberg. Les requetes analytiques sont drastiquement plus rapides. Et tu gardes l'interface SQL que tu connais.

hljs sql
-- Creer un bucket analytique
CREATE ANALYTICS BUCKET user_events
  PARTITION BY (date_trunc('month', created_at))
  AS SELECT * FROM events
  WHERE event_type IN ('page_view', 'click', 'purchase');

-- Requete analytique sur le bucket
SELECT
  date_trunc('week', created_at) AS week,
  count(*) AS total_events,
  count(DISTINCT user_id) AS unique_users
FROM user_events
WHERE created_at > now() - interval '3 months'
GROUP BY 1
ORDER BY 1;

La realite

C'est une approche intelligente : separer le stockage OLTP (Postgres classique) de l'OLAP (Iceberg) tout en gardant une interface unifiee. Le dev n'a pas besoin d'apprendre un nouvel outil. Mais les performances restent a prouver sur des volumes serieux. Iceberg est concu pour des petaoctets de donnees -- est-ce que l'implementation Supabase tient la route sur 10 milliards de lignes ? A tester.

Vector Buckets : les embeddings IA natifs

C'est l'annonce qui m'a le plus interesse. Les embeddings sont au coeur des applications IA modernes : recherche semantique, RAG, recommandations. Jusqu'ici, tu avais deux options dans Supabase : utiliser pgvector (l'extension PostgreSQL pour les vecteurs) ou externaliser vers une base vectorielle dediee comme Pinecone ou Weaviate.

Le probleme de pgvector

pgvector fonctionne, mais il a des limites. Les index HNSW consomment beaucoup de RAM. Au-dela d'un million de vecteurs, les performances se degradent. Et le stockage est celui de Postgres -- pas optimise pour des colonnes de 1536 floats.

Ce que Vector Buckets change

Vector Buckets sont un stockage dedie pour les embeddings, separe du stockage Postgres classique. Les vecteurs sont stockes dans un format optimise (pas en heap Postgres), avec des index construits specifiquement pour la recherche de similarite.

hljs sql
-- Creer un vector bucket
CREATE VECTOR BUCKET document_embeddings
  DIMENSION 1536
  METRIC cosine;

-- Inserer des embeddings
INSERT INTO document_embeddings (id, embedding, metadata)
VALUES (
  'doc-001',
  '[0.023, -0.041, 0.087, ...]'::vector(1536),
  '{"title": "Guide technique", "source": "docs"}'
);

-- Recherche semantique
SELECT id, metadata, 1 - (embedding <=> query_embedding) AS similarity
FROM document_embeddings
ORDER BY embedding <=> query_embedding
LIMIT 10;

L'API reste du SQL. Pas de SDK proprietaire, pas de client specifique. Tu queries tes embeddings comme tu queries n'importe quelle table. Et c'est ca, la force de l'approche Supabase : tout est PostgreSQL, tout est SQL.

Ce que ca implique

Pour les projets IA de taille moyenne (moins de 10 millions de vecteurs), Vector Buckets eliminent le besoin d'une base vectorielle externe. Un service en moins a gerer, une facture en moins, une integration en moins. Pour les projets a l'echelle enterprise -- des centaines de millions de vecteurs avec des contraintes de latence strictes -- Pinecone et les solutions dediees gardent l'avantage. Mais pour la majorite des devs qui construisent des features RAG ou de recherche semantique, c'est suffisant.

Supabase for Platforms : le BaaS en marque blanche

L'annonce la plus strategique, meme si elle fait moins de bruit. Supabase for Platforms permet aux SaaS de proposer des instances Supabase a leurs propres clients. Gestion multi-tenant, provisioning automatise, billing integre.

Ca veut dire que si tu construis un SaaS vertical -- disons un outil de gestion pour restaurants -- tu peux donner a chaque restaurant sa propre instance Supabase, avec sa propre base de donnees, son propre auth, son propre storage. Sans gerer l'infra toi-meme.

C'est un move a la Stripe : au lieu de concurrencer les SaaS, deviens l'infrastructure sur laquelle ils se construisent. Malin.

Le vrai sujet : vendor lock-in

Tout ca, c'est impressionnant. Mais il faut poser la question qui fache : est-ce que Supabase est en train de devenir un nouveau lock-in ?

La reponse officielle, c'est que tout est open source et base sur PostgreSQL. En theorie, tu peux migrer. En pratique, les ETL Pipelines, les Analytics Buckets, et les Vector Buckets utilisent des extensions et des syntaxes specifiques a Supabase. Si tu veux quitter la plateforme demain, tu gardes tes donnees PostgreSQL, mais tu perds toute la couche de services autour.

C'est le meme compromis qu'avec n'importe quel PaaS : tu gagnes en productivite, tu perds en portabilite. Mon approche : utiliser les services Supabase pour ce qui touche a l'infra (auth, storage, realtime), mais garder la logique metier dans du code applicatif standard. Si je dois migrer un jour, les migrations SQL et le code Python/TypeScript restent utilisables.

Comparaison avec les alternatives

FeatureSupabaseFirebasePlanetScaleNeon
ETL integreOui (nouveau)NonNonNon
AnalytiqueIceberg (nouveau)BigQuery (externe)NonNon
VecteursVector Buckets (nouveau)NonNonpgvector
SQL natifOui (PostgreSQL)Non (NoSQL)Oui (MySQL)Oui (PostgreSQL)
Open sourceOuiNonPartiellementPartiellement
Self-hostOuiNonNonOui

La position de Supabase devient unique : c'est la seule plateforme qui combine BaaS, ETL, analytique et vecteurs dans un package open source base sur PostgreSQL. C'est ambitieux. Le risque, c'est de faire trop de choses moyennement plutot que quelques choses excellemment.

Mon verdict

Supabase decembre 2025 marque un point d'inflexion. La plateforme n'est plus un simple BaaS -- c'est un data platform. Pour un dev solo ou une petite equipe qui construit un SaaS avec des besoins data (analytique, IA, ETL), c'est potentiellement la stack la plus complete du marche.

Mais "potentiellement" est le mot cle. Ces features sont nouvelles. La stabilite en production, les performances a l'echelle, le support enterprise -- tout ca reste a prouver. Mon conseil : adopte les nouvelles features pour tes side projects et tes MVPs. Pour la prod critique, attends quelques mois et surveille les retours de la communaute.

Et surtout, garde en tete que la meilleure base de donnees, c'est celle que tu maitrises. Si tu connais PostgreSQL, Supabase est un choix naturel. Si tu es a l'aise avec Firebase, les nouvelles features de Supabase ne sont pas une raison suffisante pour migrer.

Ressources

Partager: