订阅以接收新文章的通知:

宣布推出 Cloudflare 数据平台:直接在 Cloudflare 上导入、存储和查询数据

2025-09-25

7 分钟阅读时间
这篇博文也有 EnglishDeutschNederlandsFrançais版本。

在 2025 年 4 月的 Developer Week 期间,我们宣布推出 R2 Data Catalog 公开测试版——这是一个基于 Cloudflare R2 对象存储构建的全托管 Apache Iceberg 目录服务。今天,我们在此基础之上,正式推出三项全新功能:

  • Cloudflare Pipelines 接收通过 Workers 或 HTTP 发送的事件,使用 SQL 对其进行转换,并将它们提取到 Iceberg 中,或作为文件存储在 R2 上

  • R2 Data Catalog 管理 Iceberg 元数据,目前执行包括压缩在内的持续维护,以提升查询性能

  • R2 SQL 是我们自研的分布式 SQL 引擎,旨在对 R2 中的数据执行 PB 级查询

这些产品共同构成了 Cloudflare 数据平台,它是一个完整的解决方案,用于提取、存储和查询分析数据表。

与所有 Cloudflare 开发人员平台产品一样,它们在我们的全球计算基础架构上运行。它们基于开放标准和互操作性构建。这意味着您可以携带自己的 Iceberg 查询引擎(无论是 PyIceberg、DuckDB 还是 Spark)与 Databricks 和 Snowflake 等其他平台连接,并且无需支付输出费用即可访问您的数据。

对于现代公司而言,分析数据至关重要。它使您能够了解用户的行为、公司的业绩,并在出现问题时向您发出警报。但传统的数据基础设施成本高昂且难以运营,需要固定的云基础设施和内部专业知识。我们构建的 Cloudflare 数据平台简单易用,任何人都可以轻松使用,并且价格合理,并基于使用量进行定价。

如果您想立即开始实践,可以按照数据平台教程的逐步指导,创建一个用于处理事件并将其投递到 R2 Data Catalog 表的数据处理管道 (Pipeline)——该表支持通过 R2 SQL 进行查询。如果想深入了解我们的技术发展历程及整体实现原理,欢迎继续阅读。

我们最终是如何打造出这套数据平台的?

我们于 2021 年推出了 R2 对象存储,并制定了颠覆性的定价策略:免除数据输出费用——也就是传统云服务商在数据调取时收取的带宽费用,这种收费模式相当于变相“绑架”用户数据。之所以能做到这一点,是因为我们早已构建起规模最大的全球网络之一,与全球数千家互联网服务提供商、云服务平台及其他企业实现了互联互通。

对象存储支撑着从媒体内容、静态资产到 AI 训练数据等多样化的应用场景。但随着时间的推移,我们看到越来越多的公司使用开放数据和表格格式在 R2 中存储其分析数据仓库。

实现这一能力的关键技术是 Apache Iceberg。作为一种表格式解决方案,Iceberg 能在对象存储的数据文件基础上,提供类数据库能力(包括更新、ACID 事务和架构演进)。换言之,它是一个元数据层,能明确告知客户端:哪些数据文件构成特定的逻辑表、有哪些架构,以及如何高效查询这些数据。

随着 Iceberg 在全行业的广泛采用,用户不再受限于单一的查询引擎。但跨区域和跨云查询数据时,数据传出费用仍会导致成本过高。而具备零成本输出特性的 R2 解决了这一难题——用户也无需再被单一云服务商绑定。他们可以将数据存储在不受供应商限制的中立位置,让团队根据自身数据特点和查询模式自由选择合适的查询引擎。

但用户仍然需要自行管理所有元数据和其他基础设施。我们意识到,我们有机会解决一个主要痛点,并减少在 R2 上存储数据湖的摩擦。这便诞生了 R2 Data Catalog,即我们托管的 Iceberg 目录。

虽然数据已存储在 R2 中且元数据得到了管理,但用户仍需自行解决一些遗留问题。

如何将数据导入 Iceberg 表?数据就位后,怎样优化查询性能?在不自建查询引擎或使用其他云平台的情况下,如何真正挖掘数据价值?

在本文后续内容中,我们将详细解析数据平台三大核心产品如何协同解决这些技术挑战。

Cloudflare Pipelines

分析型数据表由一系列事件构成,这些事件是特定时间点发生的具体事项。它们可能源自服务器日志、移动应用程序或 IoT 设备,并以 JSON、Avro 或 Protobuf 等数据格式进行编码。理想情况下,这些事件应遵循统一的字段标准(即具有明确的架构),但实际上,它们可能只是某个团队随意收集的各类数据。

但是,在使用 Iceberg 查询事件之前,需要先提取事件,根据模式进行结构化,然后写入对象存储。这就是 Cloudflare Pipelines 的作用。

Pipelines 基于我们今年早些时候收购的流处理引擎 Arroyo 构建,用于接收事件,使用 SQL 查询对其进行转换,并将其接收到 R2 和 R2 Data Catalog。

Pipelines 围绕三个核心对象构建:

Streams 是您将数据接入 Cloudflare 的通道。它们是持久化、带缓冲的队列,负责接收事件并存储起来以待后续处理。Streams 支持两种事件接入方式:通过 HTTP 端点接收,或从 Cloudflare Worker 绑定获取。

Sinks 定义数据的目的地。我们支持将原始文件提取到 R2 Data Catalog 中,以及以 JSON 或 Apache Parquet 格式写入 R2。Sinks 可以配置为频繁写入文件,优先处理低延迟数据;也可以配置为写入频率较低、容量较大的文件,以获得更佳的查询性能。无论哪种情况,数据提取都是恰好一次,这意味着我们绝不会重复或丢弃传输至 R2 的事件。

Pipelines 通过 SQL 转换连接数据流与接收器,这些转换可在将事件写入存储之前对其进行修改。借此,您能够实现“左移”,将验证、模式化和处理推送到您的提取层,从而使您的查询更加轻松、快速且准确。

例如,下面是一个从点击流数据源摄取事件并写入 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');

SQL 转换功能非常强大,让您可以完全控制数据的结构以及将其写入表的方式。例如,您可以

  • 对数据进行模式化和标准化处理,甚至使用 JSON 函数从任意 JSON 中提取字段

  • 过滤掉事件,或者将事件拆分到具有各自架构的单独表中

  • 使用正则表达式在存储前编辑敏感信息

  • 将嵌套数组和对象展开为单独的事件

目前,Pipelines 仅支持无状态转换。未来,我们将充分利用 Arroyo 的具状态处理功能,以实现数据聚合、增量更新的物化视图以及连接等高级功能。

Cloudflare Pipelines 现已推出公开测试版。您可以使用仪表板、Wrangler 或 REST API 来创建数据处理管道。要开始使用,请查看我们的开发者文档

目前公开测试期间,Pipelines 服务暂不收费。但是,R2 存储以及接收器向 R2 写入数据所产生的操作将按标准费率计费。待正式收费后,我们预计将根据以下维度计费:数据读取量、通过 SQL 转换处理的数据量,以及实际交付的数据量。

R2 Data Catalog

我们在 4 月推出了 R2 Data Catalog 的公开测试版,并对其反响感到非常惊喜。像 DuckDB 这样的查询引擎已添加原生支持,并且我们还看到了像 marimo 笔记本这样的实用集成。

它让 Iceberg 的入门变得简单。无需设置数据库集群、连接对象存储或管理任何基础设施。您可以使用几个 Wrangler 命令创建目录:

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

这提供了一个可扩展到 PB 级存储的数据湖,您可以通过任何您想要使用的引擎进行查询,且无需支付任何输出费用。

但仅仅存储数据是不够的。随着时间推移和数据持续写入,构成表的底层数据文件的数量将会增加,导致查询性能越来越慢。

这是低延迟数据采集的一个特殊问题,其目标是尽快查询事件。频繁写入数据意味着文件更小,文件数量更多。查询所需的每个文件都必须列出、下载和读取。过多的小文件带来的开销可能会显著影响总查询时间。

解决方案是压缩,这是目录自动执行的定期维护操作。压缩会将小文件重写为更大的文件,从而减少元数据开销并提高查询性能。

今天,我们正式推出 R2 Data Catalog 的压缩功能支持。要为您的目录启用此功能,操作非常简单:

$ npx wrangler r2 bucket catalog compaction enable mycatalog

我们目前支持小文件压缩,未来将扩展至更多压缩策略。请参阅压缩文档,详细了解其工作原理和启用方法。

目前处于公开测试阶段,R2 Data Catalog 暂不收费。以下是我们对未来定价的初步规划:

定价*

R2 存储

对于标准存储类别

每 GB 数据存储一个月收费 0.015 美元

R2 A 类操作

每百万次操作 4.50 美元(无变化)

R2 B 类操作

每百万次操作 0.36 美元(无变化)

Data Catalog 操作

例如,创建表、获取表元数据、更新表属性。

每百万次目录操作 9.00 美元

Data Catalog 压缩数据处理

每处理 1GB 数据收费 0.005 美元

每处理一百万个对象 2.00 美元

数据输出

0 美元(无变化,永久免费)

*价格可能会在正式发布前发生变化

在开始计费或任何政策调整前,我们将至少提前 30 天发出通知。

R2 SQL

将数据存入 R2 数据目录只是第一步,真正的目标是从中获取洞察和价值。传统方式下,这意味着您需要搭建并管理 DuckDB、Spark、Trino 或其他查询引擎,这会在您与数据洞察之间增加一层运维负担。但如果能直接在 Cloudflare 上运行查询,会怎样?

现在,您可以做到了!我们专为 R2 Data Catalog 和 Cloudflare 边缘基础设施打造了一款查询引擎,并将其命名为 R2 SQL。该查询引擎即日起开启公开测试。

使用 Wrangler,对 R2 Data Catalog 表运行查询就像下面的示例一样简单

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

Cloudflare 在全球网络任意节点调度计算的能力,是 R2 SQL 设计的基石。这使我们能够直接在数据存储位置进行处理,无需您为分析工作负载管理集中式集群。

R2 SQL 与 R2 Data Catalog 和 R2 服务紧密集成,这使得查询规划器不仅能进行简单的存储扫描,还能深度利用 R2 Data Catalog 中存储的丰富统计信息。这为新一代查询优化提供了强大基础,例如未来可支持辅助索引或更复杂分析函数。

最终,用户将获得完全无服务器的体验。您可以专注于 SQL,无需深入了解引擎的运作方式。若想探究 R2 SQL 的工作原理,技术团队已撰写深度解析文章,详细介绍 R2 SQL 分布式查询引擎在大规模场景下的运行机制。

本次公开测试是 R2 SQL 查询功能的早期预览,初期主要支持过滤查询功能。后续我们将逐步扩展其功能,覆盖更丰富的 SQL 特性,例如复杂聚合操作。

我们非常期待看到用户通过 R2 SQL 实现的创新应用!如需体验,请查阅相关文档教程测试期间,R2 SQL 的使用目前暂不收费,但查询产生的 R2 存储费用及操作费用将按标准费率计费。未来我们计划根据查询扫描的数据量进行收费,并将在收费开始前发布通知。

总结

现在,您可以使用 Cloudflare 数据平台将事件提取到 R2 Data Catalog 中,并通过 R2 SQL 进行查询。2026 年上半年,我们将在所有这些产品中扩展各项功能,包括:

  • Logpush 集成,以便直接在 Cloudflare 中转换、存储和查询日志

  • 通过 Workers 实现的用户定义函数,以及对流式转换的具状态处理支持

  • 扩展 R2 SQL 的功能集,以涵盖聚合与连接功能

在此期间,您可以通过本教程快速上手 Cloudflare 数据平台——只需跟随指引,即可构建端到端的分析型数据系统:从使用 Pipelines 进行数据接入,到将数据存储至 R2 Data Catalog,再到通过 R2 SQL 执行查询。 我们非常期待看到您的精彩作品!欢迎前往我们的开发人员 Discord 社区分享使用反馈。

我们保护整个企业网络,帮助客户高效构建互联网规模的应用程序,加速任何网站或互联网应用程序抵御 DDoS 攻击,防止黑客入侵,并能协助您实现 Zero Trust 的过程

从任何设备访问 1.1.1.1,以开始使用我们的免费应用程序,帮助您更快、更安全地访问互联网。要进一步了解我们帮助构建更美好互联网的使命,请从这里开始。如果您正在寻找新的职业方向,请查看我们的空缺职位
生日周开发人员Data CatalogPipelines

在 X 上关注

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

相关帖子

2026年4月14日 13:00

Scaling MCP adoption: Our reference architecture for simpler, safer and cheaper enterprise deployments of MCP

We share Cloudflare's internal strategy for governing MCP using Access, AI Gateway, and MCP server portals. We also launch Code Mode to slash token costs and recommend new rules for detecting Shadow MCP in Cloudflare Gateway. ...

2026年4月14日 13:00

Secure private networking for everyone: users, nodes, agents, Workers — introducing Cloudflare Mesh

Cloudflare Mesh provides secure, private network access for users, nodes, and autonomous AI agents. By integrating with Workers VPC, developers can now grant agents scoped access to private databases and APIs without manual tunnels. ...