| [ Web Proxy ] |
| Viewing: https://www.cloudflare.com/products/data-platform/ | [Back] [Original] |
Zero egress fees
Query your data from any cloud, data platform, or region without incurring transfer costs. R2 never charges for egress.
Always fast
Automatic table maintenance, such as compaction and snapshot expiration, keeps your data performant without the need for scheduling manual maintenance tasks.
Serverless ingestion
Stream and process events via HTTP endpoints or Workers bindings. No Apache Kafka, no Apache Flink, no infrastructure management.
SQL at the edge
Query Iceberg tables directly with R2 SQL or the wrangler CLI. Distributed compute, automatic file pruning.
No infrastructure
No servers to provision, no clusters to manage. Just define a schema, stream data, and query.
Open table format
Apache Iceberg tables means your data is accessible by your favorite query enginesApache Spark, Snowflake, Trino, DuckDB, and morevia R2 Data Catalog's standard Iceberg REST API.
[Background Pattern] Data Platform Pipelines ingests and transforms your data, R2 stores it as Iceberg tables, and R2 SQL or your preferred query engine analyzes it. No infrastructure to manage, no egress fees to worry about.
See moreLog analytics at scale
Ingest server logs, application events, and telemetry data. Query with SQL to debug issues, track performance, and build operational dashboards.Business intelligence pipelines
Stream clickstream data, user events, and transactions. Connect your BI tools directly to Iceberg tables for real-time reporting.ETL without the infrastructure
Transform data with SQL at ingestion time. Filter, enrich, and validate before writing to storageno separate ETL service required.Multi-cloud analytics
Store data once in R2, query from anywhere. Run Spark jobs in AWS, Snowflake queries from your data warehouse, or DuckDB locallyall hitting the same tables.Define a schema, stream data via Pipelines, and query with R2 SQL or connect your favorite Iceberg-compatible engine.
[Background Pattern] export default { async fetch(request, env, ctx): Promise<Response> { // Stream events to Pipelines await env.ANALYTICS.send([ { user_id: 'user_12345', event_type: 'purchase', product_id: 'widget-001', amount: 29.99, }, ]);
return new Response('Event ingested'); },} satisfies ExportedHandler<Env>;# Query your Iceberg tables directlynpx wrangler r2 sql query "my-warehouse" "SELECT user_id, event_type, SUM(amount)FROM default.eventsWHERE event_type = 'purchase'GROUP BY user_id, event_typeLIMIT 10"from pyspark.sql import SparkSession
# Connect to R2 Data Catalogspark = SparkSession.builder \ .appName("R2Analytics") \ .config("spark.sql.catalog.r2", "org.apache.iceberg.spark.SparkCatalog") \ .config("spark.sql.catalog.r2.type", "rest") \ .config("spark.sql.catalog.r2.uri", CATALOG_URI) \ .config("spark.sql.catalog.r2.warehouse", WAREHOUSE) \ .config("spark.sql.catalog.r2.token", TOKEN) \ .getOrCreate()
# Query your datasame tables, any enginedf = spark.sql("SELECT * FROM r2.default.events")df.show()Stream data via Pipelines
Send events to Pipelines via HTTP endpoints or Workers bindings. Data is automatically written to Iceberg tables in R2.Query Iceberg tables directly
Use R2 SQL to query your data with standard SQL. Distributed compute and automatic file pruning for fast analytics.Use any Iceberg-compatible engine
Connect Spark, Snowflake, Trino, DuckDB, or any engine that supports Iceberg. R2 Data Catalog exposes a standard REST API.Character.AI
Get started with a single command.
Join thousands of developers who've eliminated infrastructure complexity and deployed globally with Cloudflare. Start building for free no credit card required.
| Web Proxy Viewer | New URL | Original Page |