Lancement de Cloudflare Basin : une plateforme de données ouverte et serverless, désormais proposé en disponibilité générale

Marc Selwan et Micah Wylde

Lecture : 14 min.

Cet article est également disponible en English, Deutsch, Español, 日本語, 한국어, 繁體中文, 简体中文 et Português.

Lors de la Semaine Anniversaire 2025, nous avions annoncé la plateforme de données Cloudflare, une suite de produits dédiés à l’ingestion, au stockage et à l’interrogation de vos données analytiques. Aujourd’hui, nous annonçons la disponibilité générale de la plateforme, à laquelle nous donnons un nouveau nom : Cloudflare Basin.

Basin est une plateforme d’analyse de données serverless développée sur Apache Iceberg, le standard ouvert pour les lacs de données, et sur le service de stockage d’objets R2. La famille Basin inclut :

  • Basin Pipelines, anciennement Cloudflare Pipelines, reçoit des événements depuis Workers, via HTTP ou Cloudflare Logpush, les transforme avec SQL et les écrit sous forme de tables ou de fichiers Apache Iceberg dans R2.
  • Basin Catalog, anciennement R2 Data Catalog, gère les métadonnées Iceberg et assure automatiquement la maintenance des tables afin d’en préserver la rapidité et la rentabilité.
  • Basin SQL, anciennement R2 SQL, est notre moteur serverless et distribué de gestion de requêtes SQL, permettant l’interrogation des tables Apache Iceberg directement sur Cloudflare.

Basin ajoute une plateforme d’analyse de données exhaustive à la plateforme pour développeurs, vous permettant de collecter des données depuis une multitude de sources, telles que des applications, l’infrastructure, des appareils et d’autres services de Cloudflare, puis de les interroger pour répondre à vos demandes analytiques.

Nous avons entrepris de construire une plateforme de données, l’année dernière, après avoir constaté deux évolutions fondamentales qui ont transformé le développement des applications de données modernes. Premièrement, Apache Iceberg s’est imposé comme le format de table ouvert de référence, permettant la portabilité des données sur pratiquement tous les principaux moteurs de requêtes. Deuxièmement, nous avons commencé à voir des développeurs transférer leurs analyses de données vers R2, où l’absence de frais de trafic sortant améliorait les aspects pratiques et économiques de l’accès à leurs données depuis différents outils, équipes, régions et fournisseurs de cloud.

Alors, lorsque nous avons lancé Basin en version bêta ouverte, des développeurs (parmi lesquels nos équipes de facturation et d’infrastructure chez Cloudflare) ont immédiatement commencé à adopter ces services pour une multitude de scénarios d’utilisation, notamment l’utilisation de données en temps réel pour l’optimisation des sites e-commerce, le stockage à long terme et le suivi des indicateurs de facturation, ou encore l’ingestion et l’interrogation de la télémétrie de l’infrastructure de Cloudflare afin de mesurer et d’améliorer l’utilisation et l’efficacité.

« Nous avons migré l’ensemble du pipeline de données de notre entreprise vers Basin Pipelines, Catalog et SQL, remplaçant une architecture AWS S3 et Athena complexe par une architecture serverless plus fluide, qui gère de manière fiable toutes nos données d’événements. – Dax Raad, cofondateur, Anomaly »

Nos premiers utilisateurs nous ont beaucoup appris sur ce que signifie exploiter une plateforme d’analyse de données en périphérie de réseau. Nous avons passé l’année écoulée à améliorer Basin autour de trois axes spécifiques ciblant précisément ce qui rend uniques les analyses de données sur la plateforme pour développeurs : la rapidité, l’ouverture et l’économie.

Basin est conçu pour la rapidité, qu’il s’agisse de la prise en main ou de l’exécution de requêtes volumineuses. Vous pouvez créer une instance Basin Catalog, configurer un pipeline pour l’ingestion de données, puis les interroger avec Basin SQL en quelques secondes. C’est un point important, à l’heure où nous voyons émerger un nombre croissant d’applications développées à partir de prompts adressés à des agents de codage, qui devraient autrement attendre et interroger des ressources ou des données. À mesure que les ensembles de données deviennent plus volumineux, Basin Catalog compacte les métadonnées et les fichiers de données afin de réduire les I/O, tout en générant génère des statistiques pour la planification des requêtes. Basin SQL utilise ces statistiques pour scinder les requêtes en tâches plus petites et les distribuer sur des instances Workers, garantissant la rapidité et la cohérence des requêtes à mesure que les ensembles de données grandissent.

Un des moteurs essentiels du développement et de l’adoption de Basin est la croissance continue de l’écosystème ouvert Apache Iceberg. Les développeurs se sont ralliés autour de l’idée radicale selon laquelle vous devriez posséder et garder le contrôle de vos propres données, en séparant la couche de stockage de la couche de calcul et en vous permettant d’utiliser le moteur de requêtes le plus adapté à chaque tâche. Avec Basin, vous pouvez lire et écrire vos données avec n’importe quel moteur compatible avec Iceberg, notamment PyIceberg, DuckDB, Snowflake et Apache Spark. Ce niveau de portabilité des données est uniquement possible en l’absence de frais de trafic sortant, qui permet aux développeurs d’accéder à leurs données hébergées sur Cloudflare depuis la multitude d’outils de l’écosystème, indépendamment de la région ou du fournisseur de cloud.

« Bobsled est une plateforme de produits de données utilisée par les équipes spécialistes des données les plus avancées du monde pour créer et distribuer des données prêtes pour l’IA à leurs partenaires, leurs fournisseurs et leurs clients, » déclare Julien Grobbelaar, Head of Platform chez Bobsled. « Basin nous permet de créer des produits de données accessibles dans n’importe quelle région de toutes les grandes plateformes de données et d’IA, avec une fiabilité de niveau production et pour une fraction du coût, grâce à l’absence de frais de trafic sortant. »

En plus de la gratuité des frais de trafic sortant, notre architecture serverless nous permet d’améliorer encore les avantages économiques pour nos clients, grâce à une facturation à l’usage. Seuls l’ingestion, le traitement ou l’interrogation de vos données par Basin entraînent une facturation. Les développeurs peuvent développer des solutions d’analyse de données pour leurs projets personnels à un coût quasiment nul, voire inexistant, tandis que notre tarification s’adapte économiquement aux scénarios d’utilisation à grande échelle par les entreprises. Il n’y a aucuns frais horaires ni coût d’infrastructure séparé à prévoir.

Si vous êtes prêt à vous lancer, consultez le tutoriel de Basin pour bénéficier d’un guide étape par étape expliquant comment utiliser Basin Pipelines pour transmettre des événements vers une table Apache Iceberg gérée par Basin Catalog, puis les interroger avec Basin SQL. Poursuivez votre lecture pour en savoir plus sur Basin et découvrir nos prochaines évolutions.

Pourquoi avoir choisi le nom « Basin » ?

Nous avons lancé ces produits l’année dernière sous le nom de plateforme de données Cloudflare, une dénomination qui a parfaitement rempli son rôle lors de la première année de disponibilité. Pour notre lancement en disponibilité générale, nous avons décidé qu’il nous fallait trouver un nouveau nom qui reflète nos ambitions pour la plateforme, relie l’ensemble des produits entre eux et soit un peu plus mémorable.

En géographie, un bassin est l’endroit où les rivières provenant de nombreuses sources se rejoignent en un point unique. Il nous a semblé que le nom Basin traduit parfaitement la façon dont la plateforme est utilisée : Pipelines achemine les données vers Basin Catalog, tandis que Basin SQL les rend immédiatement interrogeables. Une anecdote amusante : l’eau provenant d’environ 20 % des terres émergées de la Terre se déverse dans des bassins endoréiques, tout comme plus de 20 % du web réside derrière le réseau de Cloudflare.

Le lac Vänern, en Suède – Un bassin créé par l'activité tectonique il y a 200 à 300 millions d'années.

Aujourd’hui, Basin se compose de trois produits : Pipelines, Catalog et SQL, couvrant respectivement l’ingestion, le stockage et l’interrogation. La solution s’enrichira, au fil du temps, avec de nouveaux produits permettant la gestion du reste du cycle de vie des données analytiques.

Basin Pipelines

Avant de pouvoir interroger vos données, vous devez assurer l’ingestion, la structuration et l’écriture de vos événements dans un stockage d’objets. C’est le rôle de Basin Pipelines : il accepte les événements via des points de terminaison HTTP ou des liaisons Workers, les traite selon une requête SQL, puis les fournit à Basin Catalog sous forme de tables Apache Iceberg ou à R2 sous forme de fichiers JSON ou Parquet.

Depuis le lancement de la version bêta, les utilisateurs ont créé des dizaines de milliers d’instances Pipelines pour une multitude de scénarios d’utilisation. Par exemple, un schéma récurrent que nous avons observé est l’utilisation de Pipelines pour transformer les journaux HTTP de Cloudflare avant leur stockage :

INSERT INTO http_logs_sink
SELECT
  EdgeResponseStatus,
  to_timestamp_micros(EdgeStartTimestamp) AS event_time,
  upper(ClientRequestMethod) AS method,
  sha256(ClientIP) AS hashed_ip
FROM http_logs_stream
WHERE EdgeResponseStatus >= 400;

Effectuer ce traitement au moment de l’ingestion permet de réduire considérablement l’empreinte de stockage, d’atténuer le bruit issu des sources de données dynamiques et peut contribuer à prévenir l’écriture de valeurs sensibles ou inutiles.

Depuis la version bêta, nous avons considérablement amélioré l’évolutivité de Pipelines, qui propose désormais un débit d’ingestion atteignant jusqu’à 3 Go/s par flux. Nous avons également enrichi l’ensemble de fonctionnalités et l’intégration à d’autres systèmes de Cloudflare :

  • Intégration de Cloudflare Logpush : vous pouvez transformer les journaux Cloudflare avec SQL et les stocker sous forme de fichiers Parquet compressés ou de tables Iceberg, prêts à être interrogés avec Basin SQL ou un autre moteur.
  • Liaisons Workers sensibles aux schémas : l’exécution de wrangler types génère des types TypeScript à partir du schéma d’un flux, permettant de détecter les champs manquants et les incompatibilités de type avant le déploiement.
  • Visibilité des erreurs de qualité des données : le tableau de bord et l’API GraphQL mettent en évidence les événements abandonnés et distinguent les champs manquants, les incohérences de type, les échecs d’analyse et les valeurs nulles.
  • Gestion de l’intégralité du parcours d’ingestion en Infrastructure as Code : les ressources Terraform englobent désormais le catalogue, le flux, le puits de données et la requête SQL qui les lie.

Nous avons ensuite l’intention d’étendre davantage les capacités de Pipelines, avec notamment les fonctionnalités suivantes :

  • Partitionnement personnalisé lors de l’écriture dans Basin Catalog
  • Migrations de schémas et mises à jour de la configuration et du code SQL de Pipelines
  • Prise en charge d’Iceberg V3, y compris le type Variant pour l’interrogation efficace de données semi-structurées
  • Traitement avec état permettant la gestion des charges de travail, telles que les agrégations en continu, les jointures et les vues matérialisées mises à jour de manière incrémentale

Basin Catalog

Basin Catalog a été le premier produit de la famille que nous avons lancé l’année dernière. Depuis, nous avons vu des milliers de développeurs utiliser Basin Catalog dans le cadre de scénarios d’utilisation simples, par exemple, fournir à DuckDB un moyen structuré d’accéder aux données analytiques dans R2 ; cependant, nous avons également vu des développeurs créer des plateformes complètes de partage de données en entreprise, en tirant pleinement parti de l’absence de frais de trafic sortant et des API faciles à utiliser.

Basin Catalog est le moyen le plus simple de faire vos premiers pas avec Apache Iceberg. Il vous suffit d’exécuter :

npx wrangler basin catalog create CATALOG_NAME

Vous obtenez instantanément un catalogue REST Apache Iceberg entièrement géré, qui exécute automatiquement les opérations de maintenance de routine nécessaires pour préserver les performances et l’intégrité de ces tables.

Lorsque nous avons annoncé la plateforme de données, une fonctionnalité de compaction automatique venait tout juste d’être ajoutée à Basin Catalog. Depuis, celui-ci a intégré des fonctionnalités destinées à préserver l’intégrité des tables à mesure que les volumes de données augmentent :

  • Les politiques de compaction par table vous permettent de choisir les tailles des fichiers cibles en fonction du schéma d’accès propre à chaque table.
  • L’expiration automatique des instantanés supprime les anciens instantanés Iceberg conformément à une politique de conservation, tout en préservant un nombre minimal d’instantanés récents.
  • Le nettoyage des fichiers de données non référencés libère de l’espace de stockage lorsque les instantanés expirent, sans nécessiter l’exécution d’une tâche de maintenance Spark distincte.
  • L’optimisation des manifestes consolide et regroupe les manifestes fragmentés par partition avant la compaction, réduisant les I/O sur les métadonnées lors de la planification des requêtes.

Des fonctionnalités passionnantes sont également en cours de développement pour Basin Catalog, parmi lesquelles :

  • Une nouvelle méthode de compaction pour trier et regrouper efficacement les données afin d’améliorer les performances des requêtes
  • Des contrôles d’autorisation plus granulaires pour les espaces de noms et les tables
  • La prise en charge des juridictions afin de respecter les exigences de souveraineté et de conformité des données

Basin SQL

Basin SQL est notre moteur de requêtes SQL serverless et distribué, dédié aux tables Apache Iceberg stockées dans Basin Catalog. Conçu pour la lecture de grands ensembles de données, il s’adapte automatiquement à l’échelle du réseau mondial de Cloudflare. Il ne nécessite le provisionnement d’aucun cluster ni ressource ; Basin SQL propose une API instantanément, accessible, qui permet à vous et à vos agents de commencer à interroger immédiatement vos données.

Lors du lancement de la version bêta, Basin SQL excellait déjà dans le filtrage et l’exploration de grandes tables d’événements et de séries temporelles. Au cours de l’année écoulée, Basin SQL a évolué pour prendre en charge des centaines de fonctions, notamment :

  • Les agrégations standard et approximatives, GROUP BY, HAVING ainsi que les commandes de découverte de schéma
  • Plus de 190 fonctions scalaires et d’agrégation couvrant les chaînes, les horodatages, les expressions régulières, la cryptographie, les statistiques, les tableaux, les cartes (« maps ») et les structures (« structs »)
  • Les expressions CASE, les expressions de table communes, le transtypage (« casting »), les fonctions arithmétiques et EXPLAIN
  • Les jointures (inner, outer, semi et anti), les sous-requêtes, les auto-jointures (« self-joins ») et les requêtes multi-tables
  • DISTINCT, UNION, INTERSECT et EXCEPT
  • Les fonctions de fenêtrage, QUALIFY, les ensembles de regroupement, les rollups et les cubes
  • Une suite de fonctions JSON

Imaginons que votre Pipeline achemine les événements de l’application dans une table et des données de compte dans une autre. Vous pouvez désormais joindre ces tables, agréger l’activité par client, classer les résultats avec une fonction de fenêtrage et filtrer le classement depuis une requête unique :

WITH account_activity AS (
  SELECT
    a.plan,
    e.account_id,
    count(*) AS events,
    approx_distinct(e.user_id) AS active_users
  FROM analytics.events e
  JOIN analytics.accounts a
    ON e.account_id = a.account_id
  WHERE e.event_time >= '2026-09-01T00:00:00Z'
  GROUP BY a.plan, e.account_id
)
SELECT
  *,
  rank() OVER (PARTITION BY plan ORDER BY events DESC) AS activity_rank
FROM account_activity
QUALIFY rank() OVER (PARTITION BY plan ORDER BY events DESC) <= 10;

Vous pouvez exécuter Basin SQL depuis Wrangler ou l’API, ou bien ouvrir l’éditeur intégré directement dans le tableau de bord de Cloudflare. L’éditeur propose la coloration syntaxique et l’auto-complétion, un navigateur permettant de parcourir les espaces de noms et les tables, des statistiques et des plans de requêtes, ainsi que l’exportation des résultats. Il permet de passer d’une nouvelle table à une réponse exploitable en quelques secondes seulement.

Cependant, l’équipe ne s’arrête pas là et travaille actuellement sur les fonctionnalités suivantes :

  • Des statistiques avancées et une planification adaptative permettant d’améliorer les performances et l’efficience des requêtes
  • La prise en charge complète du langage de définition de données (DDL) directement depuis Basin SQL
  • La prise en charge d’Iceberg V3, notamment des types VARIANT et des données géospatiales

Les futures évolutions

Notre vision pour l’avenir est l’abstraction totale des rouages de l’infrastructure de données. Les formats de stockage, les produits et les ressources ne sont que des détails d’implémentation – des détails importants, qui contribuent à l’obtention de résultats pertinents, mais qui ont tendance à devenir des obstacles. Nous travaillons à la création d’une plateforme sur laquelle les développeurs partent de questions, plutôt que d’instructions CREATE ou d’instructions de ligne de commande. Nous avons posé les fondations de cette vision et nous travaillons maintenant à sa création, notamment à travers les fonctionnalités suivantes :

  • Prise en charge de la dernière spécification Apache Iceberg sur l’ensemble de la plateforme, offrant des méthodes plus flexibles pour l’utilisation de vos données
  • Sources et destinations d’ingestion prêtes à l’emploi, offrant des connexions sans configuration entre les produits pour développeurs et les services d’observabilité de Cloudflare
  • Stratégies adaptatives avancées de maintenance des tables dans Basin Catalog, permettant d’organiser automatiquement les données autour des schémas de requêtes réels
  • Extension continue de la compatibilité, des performances et de l’observabilité de SQL pour des charges de travail analytiques toujours plus complexes
  • De nouvelles méthodes de traitement continu des données en temps réel et de déclenchement d’actions basées sur les signaux contenus dans les données
  • Outils dédiés à l’application des règles de conformité et de souveraineté des données sur l’ensemble de la plateforme

Nous poursuivrons le développement autour de standards ouverts, en utilisant des formats et des protocoles ouverts, en proposant des améliorations aux projets dont nous dépendons et en veillant à ce que vos données restent accessibles à l’ensemble de l’écosystème.

Lancez-vous

Basin Pipelines, Basin Catalog et Basin SQL sont désormais proposés en disponibilité générale. Vous pouvez les utiliser ensemble, comme une plateforme de bout en bout, ou adopter les composantes qui correspondent à votre architecture existante.

Suivez le tutoriel de démarrage pour découvrir comment ingérer des événements, créer une table Apache Iceberg dans Basin Catalog et l’interroger avec Basin SQL. Consultez la documentation de Basin pour accéder aux guides produit, aux informations de tarification, aux limites et aux intégrations.

Les configurations existantes de Cloudflare Pipelines, R2 Data Catalog et R2 SQL resteront fonctionnelles.

Nous sommes impatients de voir ce que vous allez créer. Faites-nous part de vos commentaires sur le Discord pour développeurs de Cloudflare.