Abonnez-vous pour recevoir des notifications sur les nouveaux articles :

Annonce de la plateforme de données Cloudflare : ingérez, stockez et interrogez vos données directement depuis Cloudflare

2025-09-25

Lecture: 7 min.
Cet article est également disponible en English, en Nederlands et en 简体中文.

À l'occasion de la Developer Week, qui a eu lieu en avril 2025, nous avons annoncé la version bêta publique de R2 Data Catalog, un catalogue Apache Iceberg entièrement géré, déployé au-dessus du stockage d'objets Cloudflare R2. Aujourd'hui, nous développons de nouvelles solutions reposant sur cette fondation, avec trois lancements :

  • Cloudflare Pipelines reçoit les événements envoyés via Workers ou HTTP, les transforme avec SQL, puis les ingère dans Iceberg ou sous forme de fichiers dans R2

  • R2 Data Catalog gère les métadonnées d'Iceberg et exécute désormais des opérations de maintenance continue, parmi lesquelles la compression, afin d'améliorer les performances des requêtes

  • R2 SQL est notre moteur SQL distribué interne, conçu pour exécuter des requêtes à l'échelle du pétaoctet sur vos données dans R2

Ensemble, ces produits forment Cloudflare Data Platform, une solution complète pour l'ingestion, le stockage et l'interrogation des tables de données analytiques.

À l'image de tous les produits de la plateforme pour développeurs de Cloudflare, ils s'exécutent sur notre infrastructure informatique mondiale. Leur développement priorise les normes ouvertes et l'interopérabilité. Vous pouvez ainsi utiliser votre propre moteur de requêtes Iceberg (qu'il s'agisse de PyIceberg, DuckDB ou Spark) et vous connecter à d'autres plateformes, telles que Databricks et Snowflake, sans payer de frais de trafic sortant pour accéder à vos données.

Les données analytiques sont essentielles pour les entreprises modernes. Elles vous permettent de comprendre le comportement des utilisateurs et les performances de l'entreprise, et vous alertent en cas de problème. Cependant, les infrastructures de données traditionnelles sont coûteuses et difficiles à exploiter, nécessitant une infrastructure cloud fixe et une expertise interne. Nous avons conçu Cloudflare Data Platform afin de proposer une solution facilement utilisable par tous, avec une tarification abordable, basée sur l'utilisation.

Si vous êtes prêt à vous lancer maintenant, suivez le tutoriel de Data Platform, qui propose un guide étape par étape de la création d'une instance Pipelines permettant le traitement des événements et leur transmission à une table R2 Data Catalogue, qui peut ensuite être interrogée avec R2 SQL. Vous pouvez également poursuivre votre lecture pour découvrir comment nous sommes arrivés là et comment tout cela fonctionne !

Comment en sommes-nous arrivés à développer Data Platform ?

Nous avons lancé R2 Object Storage en 2021, avec une stratégie de tarification radicale : pas de frais de trafic sortant. Ces frais sont les coûts de bande passante que facturent les fournisseurs de cloud traditionnels pour l'extraction de données, qui leur permettent de tenir vos données en otage. Si cela a été possible, c'est parce que nous avions déjà construit l'un des plus vastes réseaux mondiaux, interconnecté avec des milliers de FAI, de services cloud et d'autres entreprises.

Le stockage d'objets répond à un grand nombre de scénarios d'utilisation, des médias aux ressources statiques et aux données d'apprentissage de l'IA. Au fil du temps, toutefois, nous avons constaté qu'un nombre croissant d'entreprises stockaient leurs entrepôts de données analytiques dans R2 sous forme de données ouvertes et des tables.

La technologie qui permet cette approche est Apache Iceberg. Iceberg est un format de table qui offre des fonctionnalités semblables à celles d'une base de données (notamment des mises à jour, des transactions ACID et l'évolution de schémas), en plus des fichiers de données dans le stockage d'objets. En d'autres termes, il s'agit d'une couche de métadonnées qui indique aux clients quels fichiers de données composent une table logique particulière, quels sont les schémas et comment les interroger efficacement.

L'adoption d'Iceberg par l'ensemble du secteur a permis aux utilisateurs de ne plus être liés à un moteur de recherche unique. Cependant, les frais de trafic sortant rendent toujours prohibitif le coût des requêtes de données entre les régions et les clouds. R2, avec ses frais de trafic sortant nuls, résout ce problème : les utilisateurs ne seraient plus, eux non plus, captifs du cloud qu'ils utilisent. Ils pourraient stocker leurs données dans un emplacement indépendant des fournisseurs et permettre aux équipes d'utiliser le moteur de requêtes le plus pertinent pour leurs données et leurs modèles de requêtes.

Cependant, les utilisateurs devraient encore gérer eux-mêmes l'ensemble des métadonnées et les autres infrastructures. Nous avons réalisé qu'il y avait là une opportunité pour nous de résoudre un problème majeur et de réduire les difficultés liées au stockage des lacs de données sur R2. C'est ainsi qu'est né R2 Data Catalogue, notre catalogue Iceberg géré.

Une fois les problématiques du stockage des données sur R2 et de la gestion des métadonnées résolues, il restait encore quelques lacunes à combler pour les utilisateurs.

Comment importer les données dans les tables Iceberg ? Et une fois qu'elles sont là, comment les optimiser pour garantir les performances des requêtes ? Enfin, comment générer réellement de la valeur à partir des données sans devoir auto-héberger un moteur de requêtes ou utiliser une autre plateforme cloud ?

Dans cet article, nous allons expliquer comment les trois produits qui constituent Data Platform parviennent à résoudre ces difficultés.

Cloudflare Pipelines

Les tables de données analytiques sont constituées d'événements, c'est-à-dire de faits qui se sont produits à un moment particulier. Ces tables peuvent provenir de journaux de serveur, d'applications mobiles ou d'appareils IoT, et sont codées dans des formats de données tels que JSON, Avro ou Protobuf. Idéalement, elles disposent d'un schéma, c'est-à-dire un ensemble normalisé de champs ; toutefois, elles peuvent simplement contenir ce qu'une équipe particulière a jugé pertinent d'y ajouter.

Avant de pouvoir être interrogés avec Iceberg, toutefois, vos événements doivent être ingérés, structurés conformément à un schéma et écrits dans un stockage d'objets. C'est le rôle de Cloudflare Pipelines.

Développé sur Arroyo, un moteur de traitement de flux dont nous avons fait l'acquisition plus tôt cette année, Pipelines reçoit des événements, les transforme avec des requêtes SQL et les transfère vers R2 et R2 Data Catalog.

Pipelines est organisé autour de trois objets centraux :

Les flux (stream) permettent d'importer des données dans Cloudflare. Il s'agit de files d'attente durables, mises en mémoire tampon, qui reçoivent des événements et les stockent aux fins du traitement. Les flux peuvent accepter les événements de deux manières : via un point de terminaison HTTP ou depuis une liaison avec une instance Cloudflare Workers.

Les cibles (« sink ») définissent la destination de vos données. Nous prenons en charge l'ingestion dans R2 Data Catalog, ainsi que l'écriture de fichiers bruts dans R2 au format JSON ou Apache Parquet. Les cibles peuvent être configurées pour écrire fréquemment des fichiers, en priorisant l'ingestion à faible latence, ou pour écrire moins fréquemment des fichiers plus volumineux, afin d'améliorer les performances des requêtes. Dans l'un ou l'autre cas, l'ingestion se déroule « exactement une fois », ce qui signifie que nous ne dupliquerons ni n'abandonnerons jamais des événements en cours de transfert vers R2.

Les instances Pipelines connectent les flux et les cibles via des transformations SQL, permettant de modifier les événements avant leur écriture dans le stockage. Ceci vous permet d'adopter une approche « shift left » en déplaçant la validation, la schématisation et le traitement vers la couche d'ingestion, afin d'assurer que vos requêtes sont faciles, rapides et correctes.

Par exemple, voici une instance Pipelines qui ingère les événements depuis une source de données de flux de clics et les écrit dans Iceberg :

INSERT into events_table
SELECT
  user_id,
  lower(event) AS event_type,
  to_timestamp_micros(ts_us) AS event_time,
  regexp_match(url, '^https?://([^/]+)')[1]  AS domain,
  url,
  referrer,
  user_agent
FROM events_json
WHERE event = 'page_view'
  AND NOT regexp_like(user_agent, '(?i)bot|spider');

Les transformations SQL sont très puissantes, et offrent un contrôle total sur la manière dont les données sont structurées et écrites dans la table. Vous pouvez, par exemple :

  • Schématiser et normaliser vos données, en utilisant même des fonctions JSON pour extraire des champs de code JSON arbitraire

  • Filtrer les événements ou les répartir dans des tables distinctes, avec leurs propres schémas

  • Expurger les informations sensibles avant le stockage, avec des expressions régulières

  • Déployer des tableaux et des objets imbriqués dans des événements distincts

À l'origine, Pipelines prend en charge les transformations sans état. À l'avenir, nous exploiterons davantage les fonctionnalités de traitement avec état d'Arroyo pour prendre en charge les agrégations, les vues matérialisées mises à jour par incréments et les jointures.

Cloudflare Pipelines est disponible dès aujourd'hui en version bêta ouverte. Vous pouvez créer une instance Pipelines depuis le tableau de bord, Wrangler ou l'API REST. Pour vous lancer, consultez notre documentation destinée aux développeurs.

Nous ne facturons actuellement pas le service Pipelines pendant la bêta ouverte. Cependant, le stockage R2 et les opérations d'écriture de données des cibles vers R2 sont facturées aux tarifs standard. Lorsque la facturation sera mise en œuvre, nous prévoyons de l'établir en fonction de la quantité de données lues, de la quantité de données traitées via des transformations SQL et des données transmises.

R2 Data Catalog

Nous avons lancé la version bêta ouverte de R2 Data Catalog au mois d'avril, et nous avons été stupéfaits par les réactions. Des moteurs de requêtes, tels que DuckDB ont ajouté une prise en charge native, et nous avons vu apparaître des intégrations utiles, telles que les notebooks marimo.

Cela facilite la prise en main d'Iceberg. Il n'est pas nécessaire de configurer un cluster de base de données, d'établir une connexion à un stockage d'objets ou de gérer une quelconque infrastructure. Vous pouvez créer un catalogue avec quelques commandes Wrangler :

$ npx wrangler bucket create mycatalog 
$ npx wrangler r2 bucket catalog enable mycatalog

Cela fournit un lac de données pouvant évoluer jusqu'à plusieurs pétaoctets de stockage, interrogeable par le moteur de votre choix, sans aucun frais de trafic sortant.

Toutefois, il ne suffit pas de stocker les données. Au fil du temps, à mesure que les données sont ingérées, le nombre de fichiers de données sous-jacents composant une table augmente, entraînant un ralentissement des requêtes.

Ce phénomène est particulièrement problématique lors de l'ingestion à faible latence, dont l'objectif est d'obtenir des événements interrogeables le plus rapidement possible. L'écriture fréquente de données entraîne des fichiers plus petits et plus nombreux. Chaque fichier nécessaire à une requête doit être répertorié, téléchargé, puis lu. La surcharge de traitement résultant d'un trop grand nombre de petits fichiers peut dominer le temps total d'exécution des requêtes.

La solution est la compression, une opération de maintenance périodique exécutée automatiquement par le catalogue. La compression réécrit les petits fichiers dans des fichiers plus volumineux, réduisant ainsi la surcharge de traitement liée aux métadonnées et améliorant les performances des requêtes. 

Nous lançons aujourd'hui la prise en charge de la compression dans R2 Data Catalog. L'activation de cette fonction pour votre catalogue s'effectue très facilement :

$ npx wrangler r2 bucket catalog compaction enable mycatalog

Dans un premier temps, nous assurerons la prise en charge de la compression des petits fichiers, puis nous étendrons cette fonctionnalité à d'autres stratégies de compression à l'avenir. Consultez la documentation relative à la compression pour en savoir plus sur son fonctionnement et son activation.

À l'heure actuelle, pendant la phase de bêta ouverte, R2 Data Catalog ne fait l'objet d'aucune facturation. Vous trouverez ci-dessous notre réflexion actuelle sur la tarification à l'avenir :

Tarification*

Stockage R2

Pour la classe de stockage Standard

0,015 USD par Go/mois (aucun changement)

Opérations de classe A de R2

4,50 USD par million d'opérations (aucun changement)

Opérations R2 de classe B

0,36 USD par million d'opérations (aucun changement)

Opérations de Data Catalog

par ex., créer une table, récupérer les métadonnées de la table, mettre à jour les propriétés de la table

9,00 USD par million d'opérations de catalogue

Données de compression de Data Catalog traitées

0,005 USD par Go traité

2,00 USD par million d'objets traités

Trafic de données sortant

0 USD (aucun changement, toujours gratuit)

* Les prix sont susceptibles d'être modifiés avant la disponibilité générale

Nous vous informerons au moins 30 jours avant le début de la facturation ou en cas de changement.

R2 SQL

La disponibilité des données dans R2 Data Catalog n'est que la première étape ; le véritable objectif est d'en extraire des informations et de la valeur. Traditionnellement, cela implique de configurer et de gérer de DuckDB, Spark, Trino ou un autre moteur de requêtes, ce qui a pour conséquence d'ajouter une couche de surcharge de traitement opérationnelle entre vous et ces informations. Et si, au lieu de cela, vous pouviez exécuter les requêtes directement sur Cloudflare ?

C'est désormais possible. Nous avons développé un moteur de requêtes conçu spécialement pour R2 Data Catalog et l'infrastructure périphérique de Cloudflare. Nous l'appelons R2 SQL, et il est disponible dès aujourd'hui en version bêta ouverte.

Avec Wrangler, exécuter une requête sur une table de R2 Data Catalog, c'est aussi simple que cela :

$ npx wrangler r2 sql query "{WAREHOUSE}" "\
  SELECT user_id, url FROM events \
  WHERE domain = 'mywebsite.com'"

La capacité de Cloudflare à planifier le traitement dans n'importe quel emplacement de son réseau mondial est la fondation de la conception de R2 SQL. Cela nous permet d'effectuer le traitement des données directement là où elles résident, au lieu de vous contraindre à gérer des clusters centralisés pour vos charges de travail d'analyse de données.

R2 SQL est étroitement intégré à R2 Data Catalog et à R2, permettant au planificateur de requêtes d'aller au-delà de la simple analyse du stockage et d'utiliser en profondeur les statistiques riches stockées dans les métadonnées de R2 Data Catalog. Cette intégration constitue une fondation solide pour une nouvelle catégorie d'optimisations de requêtes, telles que les index auxiliaires ou l'activation de fonctions analytiques plus complexes à l'avenir.

Le résultat : une expérience entièrement serverless pour les utilisateurs. Vous pouvez vous concentrer sur votre code SQL, même si vous ne possédez pas une compréhension approfondie du fonctionnement du moteur. Si vous êtes intéressé par le fonctionnement de R2 SQL, l'équipe a rédigé une étude approfondie du fonctionnement à grande échelle du moteur de requêtes distribué de R2 SQL.

La version bêta ouverte offre un premier aperçu des fonctionnalités de requêtes de R2 SQL et se concentre, dans un premier temps, sur les requêtes de filtrage. Au fil du temps, nous allons étendre ses fonctionnalités afin de prendre en charge davantage de fonctionnalités SQL, telles que les agrégations complexes.

Nous sommes impatients de voir ce que nos utilisateurs accompliront avec R2 SQL. Si vous souhaitez l'essayer, consultez la documentation et les tutoriels. Pendant la version bêta, l'utilisation de R2 SQL n'est pas facturée, mais le stockage R2 et les opérations générées par les requêtes sont facturées aux tarifs standard. Nous prévoyons de facturer, à l'avenir, le volume de données analysées par les requêtes, et nous vous informerons avant le début de la facturation.

Récapitulatif

Aujourd'hui, vous pouvez utiliser Cloudflare Data Platform pour ingérer des événements dans R2 Data Catalog et les interroger via R2 SQL. Pendant la première moitié de 2026, nous allons étendre les fonctionnalités de tous ces produits, et proposerons notamment :

  • L'intégration avec Logpush, afin de vous permettre de transformer, de stocker et d'interroger vos journaux directement dans Cloudflare

  • Des fonctions définies par l'utilisateur via Workers et la prise en charge du traitement avec état pour les transformations de données en flux continu

  • L'extension de l'ensemble de fonctionnalités de R2 SQL, afin de couvrir les agrégations et les jointures

En attendant, si vous souhaitez faire vos premiers pas avec Cloudflare Data Platform, suivez le tutoriel pour apprendre à créer un système de données analytiques de bout en bout, de l'ingestion avec Pipelines jusqu'au stockage dans R2 Data Catalog et à l'interrogation avec R2 SQL.  Nous sommes impatients de voir ce que vous allez créer ! Venez nous faire part de vos commentaires sur le Discord pour développeurs de Cloudflare.

Nous protégeons des réseaux d'entreprise entiers, aidons nos clients à développer efficacement des applications à l'échelle d'Internet, accélérons tous les sites web ou applications Internet, repoussons les attaques DDoS, tenons les pirates informatiques à distance et pouvons vous accompagner dans votre parcours d'adoption de l'architecture Zero Trust.

Accédez à 1.1.1.1 depuis n'importe quel appareil pour commencer à utiliser notre application gratuite, qui rend votre navigation Internet plus rapide et plus sûre.

Pour en apprendre davantage sur notre mission, à savoir contribuer à bâtir un Internet meilleur, cliquez ici. Si vous cherchez de nouvelles perspectives professionnelles, consultez nos postes vacants.
Stockage R2Semaine anniversaireDéveloppeursData CatalogPipelines

Suivre sur X

Jérôme Schneider|@jeromeschneider
Cloudflare|@cloudflare

Publications associées

04 novembre 2025 à 14:00

Building a better testing experience for Workflows, our durable execution engine for multi-step applications

End-to-end testing for Cloudflare Workflows was challenging. We're introducing first-class support for Workflows in cloudflare:test, enabling full introspection, mocking, and isolated, reliable tests for your most complex applications....

24 octobre 2025 à 17:10

How Cloudflare’s client-side security made the npm supply chain attack a non-event

A recent npm supply chain attack compromised 18 popular packages. This post explains how Cloudflare’s graph-based machine learning model, which analyzes 3.5 billion scripts daily, was built to detect and block exactly this kind of threat automatically....