DoubleCloud即将停止服务。使用ClickHouse迁移,享受限时免费迁移服务。立即联系我们 ->->

博客 / 社区

伦敦Meetup报告:Cloudflare如何使用ClickHouse每秒处理数亿行数据

author avatar
Elissa Weve
2023年9月19日

2023年9月19日,我们很幸运地再次邀请Cloudflare在他们位于伦敦市中心的美丽办公室举办ClickHouse社区聚会。我们听取了Cloudflare系统工程师James Morrison的分享,他详细介绍了Cloudflare与ClickHouse的悠久历史,字典管理的复杂性以及在此过程中遇到的各种挑战和解决方案。

Cloudflare是最早采用ClickHouse的用户之一。正如James所提到的,“ClickHouse于2016年开源,我们在当年年底就开始在生产环境中使用它。”Cloudflare不仅从ClickHouse的早期就开始信任并采用它,而且还为其开发做出了贡献。

Cloudflare将ClickHouse用于多种用例,包括

  • **HTTP和DNS分析:**对于监控和了解Cloudflare每天处理的海量网络流量至关重要。

  • **日志分析、流量和机器人管理:**在开始机器人分析和分类之前,Cloudflare依靠ClickHouse进行高效的日志收集。通过利用其实时分析功能,Cloudflare可以有效地管理和过滤网络流量,区分合法用户和机器人流量。

  • **Cloudflare Worker运行时分析:**Cloudflare Workers使开发人员能够在更靠近最终用户的端点运行无服务器应用程序。ClickHouse提供关键的运行时分析,以确保最佳性能。

  • **内部分析工作负载:**ClickHouse在为Cloudflare的内部数据分析提供支持方面发挥着重要作用。

  • **客户仪表板:**ClickHouse确保Cloudflare的客户仪表板提供实时、全面的数据视图,反映其庞大的存储和快速数据检索能力。

  • **防火墙分析和Cloudflare Radar:**防火墙分析和Cloudflare Radar等重要工具依靠ClickHouse存储大量数据并在需要时快速检索。

运营规模

James分享了Cloudlare ClickHouse部署的巨大规模,“今年我们的活动副本数量实际上超过了1000个。这意味着每秒处理数亿行插入的数据”。他提到了他们如何利用ClickHouse强大的采样功能来处理其各种数据集,从HTTP请求到DNS查找。


“ClickHouse于2016年开源,我们在当年年底就开始在生产环境中使用它,所以我们一直是长期用户。从那时起,我们的规模呈指数级增长。今年我们的活动副本数量实际上超过了1000个。这意味着每秒处理数亿行插入的数据,这实际上对应于数量更大的事件,因为我们使用了大量的采样。”


解读ClickHouse字典

ClickHouse中的字典支持高效的键值查找,加速原本需要昂贵的JOIN操作的查询。它们在Cloudflare产品依赖的实时分析场景中至关重要。“字典允许我们在查询中进行键值查找,通常将数据存储在内存中,这使我们能够更有效地执行联接类型查询,”James说。

Cloudflare1.png

多年来,字典的使用量大幅增长,目前已在各个地方部署了184个字典。

内存消耗挑战

James讨论了他们遇到的问题,特别是关于内存消耗的问题。他们最大的字典超过了20GiB的内存,所有字典的总开销超过了15TiB。

Cloudflare2.png

然后,他重点介绍了他们从'哈希'布局到'哈希数组'布局的转变,这显著降低了内存占用,降低了4倍以上。

Cloudflare3.png

另一个重要问题是,他们的字典对外部系统的依赖关系各不相同。这使得在对下游系统可见性有限的情况下,支持字典变得具有挑战性。此外,这些系统将受到来自ClickHouse的请求,从而给这些服务带来额外的负担,这通常是不受欢迎的。

Cloudflare的解决方案,“ClickHouse字典转储器”,帮助解决了这些问题。它有效地将数据生产与消费分离,使他们能够无缝处理潜在的上游故障。James解释说,“我们在Cronjobs和Kubernetes中生成数据……在每个ClickHouse副本上,我们都有一个计时器,它只是从对象存储中提取字典包并将其提取到磁盘上。”

持续发展

在讨论潜在的增强功能时,James暗示了进一步优化内存使用,可能通过内存压缩。他还讨论了字典的动态特性,表明一些静态字典将来可能会变成动态字典,尤其是在引入了'clickhouse-dictionary-dumper'之后。

更多详细信息

进一步阅读

分享此文章

订阅我们的新闻通讯

及时了解功能发布、产品路线图、支持和云产品信息!
加载表单中…
关注我们
Twitter imageSlack imageGitHub image
Telegram imageMeetup imageRss image