AICon 深圳站 Keynote 嘉宾官宣!共探AI价值转化的实践路径 了解详情
写点什么

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:301

评论

发布
暂无评论

用Docker的方式编译OpenVINO

IT蜗壳-Tango

6月日更

模块5作业 微博评论高性能高可用计算架构

TH

架构实战营

【译】编写整洁 React 组件的简单小技巧

KooFE

大前端 React 6月日更 整洁代码

【架构实战营】第 5 模块作业

swordman

架构实战营

”微博评论“的高性能高可用计算架构

chenmin

新手模拟实现call和apply

前端树洞

大前端 js this JavaScrip

spring-beans 注册 Beans(三) ConfigurationClassPostProcessor处理BeanDefinition流程

梦倚栏杆

模块五 作业

薛定谔的指南针

架构实战营

架构模块5作业

高亮

架构训练营

spring-beans 注册 Beans(二) springboot启动流程

梦倚栏杆

git stash误使用drop删掉本地保存,恢复代码一次记录

良知犹存

git

Proxy 对象简介

编程三昧

JavaScript 大前端 ES6 Proxy

开源的 OpenHarmony 是每个人的 OpenHarmony

开放原子开源基金会

kubelet之volume manager源码分析

良凯尔

Kubernetes 源码分析 kubelet Ceph CSI

从水晶宫到甲秀楼:在数博会读懂智慧城市的“大工业时代”

脑极体

设计微博系统中”微博评论“的高性能高可用计算架构

贯通

#架构实战营

模块五:课后作业

黄先生

抖音封禁大量“卖惨带货”账号:应该严打恰烂钱的自媒体

石头IT视角

微博评论缓存架构设计

俞嘉彬

架构实战营

架构训练营模块五作业

Geek_e0c25c

架构训练营 架构实战营

【Vue2.x 源码学习】第六篇 - 数据代理的实现

Brave

源码 vue2 6月日更

模块5-”微博评论“的高性能高可用计算架构

小遵

限流算法, 以 Golang 方式

hedzr

ratelimiter Go 语言 gin gin-middleware rate-limit

架构实战营模块6作业

En wei

架构实战营

运动居然成了我的奢侈品?

悟空聊架构

程序员 程序人生 运动 6月日更

MySQL基础之四:排序、分组

打工人!

MySQL 6月日更

go训练营第二周作业

架构实战营模块五作业

冷大大

作业 架构实战营 模块五

架构实战营 模块五课后作业

iProcess

架构实战营

spring-beans 注册Beans(一) 之问题场景复现

梦倚栏杆

架构训练营——模块五作业——微博评论

开拓纪

架构训练营 模块五 微博评论

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