写点什么

Cloudflare 选择 PostgreSQL 扩展而不是专用的 OLAP 来进行 100K 行 / 秒的分析

  • 2025-08-05
    北京
  • 本文字数:1655 字

    阅读完需:约 5 分钟

大小:820.59K时长:04:40
Cloudflare选择PostgreSQL扩展而不是专用的OLAP来进行100K行/秒的分析

在最近一篇由 Zero Trust 产品套件背后的工程团队撰写的文章中,Cloudflare解释了为什么选择TimescaleDB而不是ClickHouse来为其内部平台增加分析和报告功能。作者强调了存储分析数据与配置数据的简单性与专用 OLAP 系统的性能之间“惊人的平衡”。

 

Cloudflare 强调了工程中极简主义的重要性,并解释了如何构建数字体验监控(DEX),这是一个内部可观测性平台,提供了对 Cloudflare Zero Trust 环境中设备、网络和应用性能的可见性。

 

团队构建了一个配置平面和一个分析平面,前者用于创建和管理合成测试的界面,后者是一个从 WARP 客户端收集结构化日志、存储并在仪表板中可视化的摄取管道。

 

虽然 Cloudflare 自 2017 年以来一直在使用 ClickHouse,但直到最近还是 Cloudflare 的高级软件工程师的Robert Cepa解释了为什么团队选择不在这个项目中使用 ClickHouse:

 

ClickHouse 中默认且最常用的表引擎 MergeTree 针对高吞吐量批量插入进行了优化。它将每个插入写入单独的分区,然后运行后台合并以保持数据可管理。这使得写入非常快,但当它们以许多小批量到达时则不然,这正是我们的情况,有数百万个单独的设备每 2 分钟上传一个日志事件。太多的小写入可能会触发写入放大、资源争用和节流。

 

为了保持初始版本的简单性,并在四个月内交付一个可用的 DEX MVP,团队使用了 PostgreSQL 来处理配置数据和分析日志,启动时处理每秒 200 次插入,对于大多数客户来说查询延迟在几百毫秒内。但 PostgreSQL 本身不是解决方案,Cepa 补充道:

 

随着采用的增长,我们扩展到每秒 1000 次插入,我们的表增长到数十亿行。那时我们开始看到性能下降,特别是对于那些在数万台设备上查询 7 天以上时间范围的大型客户。。

 

随着项目增长到数十亿设备日志,团队探索了预计算聚合(降采样)以提高性能,预计算并提前存储摘要,而不是反复查询原始数据。这种改进促使查询性能提高了 1000 倍,以前需要几秒钟才能渲染的图表现在可以即时显示,即使是在成千上万的设备上进行 7 天的查看。

 

来源:Cloudflare 博客

 

由于 PostgreSQL 不会自动刷新物化视图或管理表分区,团队转向了TimescaleDB,因为它支持列存储和稀疏索引。TimescaleDB 在 Apache 2.0 许可下可用,是一个开源的时间序列数据库,它是 PostgreSQL 的扩展构建,优化了时间戳数据的存储和查询,同时保持了完整的 SQL 兼容性和 ACID 属性。

 

由于 TimescaleDB 通过自动分区管理和降采样自动化聚合和数据保留,Cloudflare 能够通过将 PostgreSQL 扩展集成到其现有设置中来简化其内部基础设施。Cepa 总结道:

 

不是每个团队都需要一辆需要 100 辛烷值燃料、碳陶瓷刹车和超高性能赛车轮胎的超专业化赛车:虽然这些元素中的每一个都提高了性能,但以维护和独特性的形式拥有这些物品确实有成本。对于 Cloudflare 的许多团队来说,TimescaleDB 在存储分析数据的简单性与配置数据在同一架构之间取得了惊人的平衡,同时还获得了专用 OLAP 系统的许多令人印象深刻的性能。

 

Cepa 对 TimescaleDB 压缩 hypertable 与 PostgreSQL 表进行了基准测试,根据查询类型和时间范围,性能提高了 5 倍到 35 倍,这要归功于压缩和稀疏索引。社区主要质疑他们不使用 Clickhouse 的决定。在Hacker News上,用户 arunmu 评论道:

 

不使用他们已经用于分析的 Clickhouse 的原因含糊不清。Clickhouse 支持 JSON,可以重写为更结构化的表使用 MV。聚合和其他性能调优步骤是使用 Clickhouse 的基础。

 

TimescaleDB 背后的公司 TigerData 的联合创始人Ajay Kulkarni回应道:

 

PostgreSQL 与 TimescaleDB 完成了工作。为什么要把事情复杂化呢?

 

CDS UK 的解决方案架构师 Jamie Lord写道

 

对于已经投资于 PostgreSQL 生态系统的团队来说,这代表了引人注目的演变而不是革命。你保留了所有的现有工具、知识和操作程序,同时获得了与专门构建的 OLAP 系统相媲美的分析能力。

 

来源:Cloudflare 博客

 

在实施 DEX 项目后,TimescaleDB 已被采用作为其他 Cloudflare 项目中原始日志之上的聚合层,例如 Zero Trust Analytics & Reporting,为每秒摄入数百万行的系统生成分析和长期报告。

 

原文链接:

https://www.infoq.com/news/2025/07/cloudflare-timescaledb-olap/

2025-08-05 15:304249

评论

发布
暂无评论

轻松建模、编辑、分析尽在Rhino 7中文激活版~

真大的脸盆

Mac 3D Mac 软件 建模软件 3d建模

求爷爷告奶奶,阿里大佬才甩出这份Spark+Hadoop+中台实战pdf

程序知音

大数据 hadoop spark 后端技术

太猛了!Github大佬那白嫖的分布式进阶宝典,啃完感觉能吊锤面试官

Java你猿哥

Java 架构 软件开发 ssm 架构设计

专精特新 ︱ 腾讯云 CODING 助力消费电子类企业高速发展期的研运一体化

CODING DevOps

吃透阿里2023版Java性能优化小册后,我让公司系统性能提升了200%

Java 性能优化 性能调优

由斯坦福、Nautilus Chain等联合主办的 Hackathon 活动,现已接受报名

鳄鱼视界

Django笔记三十四之分页操作

Hunter熊

Python django 分页

如何让 300 万程序员爱上 CODING?

CODING DevOps

斯坦福、Nautilus Chain等联合主办的 Hackathon 活动,现已接受报名

股市老人

2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么?

福大大架构师每日一题

golang rust 福大大

mac端好用的建模软件分享~

真大的脸盆

Mac Mac 软件 建模工具 三维建模软件

一文盘点PoseiSwap近期的生态利好

股市老人

AIGC背后的技术分析 | 机器学习中的卷积神经网络

TiAmo

卷积神经网络 AIGC

双模齐下,提质增效:CODING 携手知微共创 BizDevOps 体系新篇章

CODING DevOps

Cloud Studio 高阶玩家:强大的 YAML 模板

CODING DevOps

开源字节 CRM 系统

源字节1号

开源 软件开发 小程序开发

由斯坦福、Nautilus Chain等联合主办的 Hackathon 活动,现已接受报名

西柚子

Midjourney|文心一格 Prompt:完整参数列表、风格汇总、文生图词典合集

汀丶人工智能

人工智能 AI绘画 MidJourney 文生图 prompt learning

一文读懂大语言模型

俞凡

人工智能

Django笔记三十三之缓存操作

Hunter熊

Python redis django 缓存

Turbo Boost Switcher Pro for mac(cpu温度监测工具) 2.10.2

真大的脸盆

Mac Mac 软件 CPU温度监测工具

低代码实现探索(五十八)低代码平台

零道云-混合式低代码平台

使用Go语言实现工厂模式的三种方式

Jack

UserDAO(UWT)会是WEB3.0中新的宠儿吗?

币离海

Web3.0 UserDAO UWT

一文盘点PoseiSwap近期的生态利好

西柚子

Python潮流周刊#2:Rust 让 Python 再次伟大

Python猫

Python

文心一言 VS 讯飞星火 VS chatgpt (19)-- go语言的slice和rust语言的Vec的扩容流程是什么?

福大大架构师每日一题

福大大 文心一言 讯飞星火

Midjourney|文心一格prompt教程[进阶篇]:Midjourney Prompt 高级参数、各版本差异、官方提供常见问题

汀丶人工智能

人工智能 AI绘画 MidJourney 文生图 prompt learning

Cloudflare选择PostgreSQL扩展而不是专用的OLAP来进行100K行/秒的分析_大数据_Renato Losio_InfoQ精选文章