
分享嘉宾:李武 点告广告平台 大数据负责人
编辑整理:余凡
内容校对:李瑶
出品社区:DataFun
导读 随着数字广告行业的蓬勃发展,广告投放平台的建设成为了企业获取市场份额、提升品牌知名度的关键。易点天下,作为业内领先的数字广告解决方案提供商,近期基于 ClickHouse 企业版成功打造了一个高效、稳定的广告投放平台。本文将深入探讨易点天下在这一过程中的实践经验和取得的成果。
1. 公司简介
2. 业务及平台介绍
3. 企业版 CK 架构和优势
4. 企业版 CK 性能测试
5. 总结
公司简介


易点天下是一家技术驱动发展的企业国际化智能营销服务公司,作为全球领先的第三方独立广告服务商,易点天下拥有丰富的全球媒体资源,平台数据覆盖全球 200 多个国家和地区,客户涵盖跨境电商、工具应用、内容分发和游戏等行业。目前累计服务客户超过 2,000 家,其中包括阿里巴巴、腾讯、网易、字节跳动、快手、爱奇艺、SHEIN、Lazada 等国内外知名企业。业务及平台介绍
广告投放平台依托各渠道流量,完成对实时/离线流量统计分析、花费/ADX/成本分摊等报表生成,广告投放决策推荐,媒体及 DSP 管理等,对运营部门提供数据支持。

这是一个直观的数据流示意图,详细展示了服务在多边境环境下的部署情况。数据通过 Kafka 作为高效的数据流管道进行传输,确保数据的实时性和可靠性。随后,利用 Kafka 的 MirrorMaker 功能,数据从新加坡节点被无缝汇总至美国中部的工作中心。在美国中部工作中心的 Kafka 集群中,数据经历了进一步的分流处理:一部分数据被高效传输至阿里云的 OSS(对象存储服务),以满足长期存储和归档的需求;另一部分数据则流入高性能的 OLAP(联机分析处理)引擎 Druid,以支持复杂的数据分析和报表生成。当 Druid 的数据出现不准确的情况时,我们会借助 Lambda 架构,如使用 Spark 从 OSS 中清洗数据,并重新加载到 Druid 中。
首先,维护管理复杂。因为涉及对 Druid 的多个组件如 Overload、Coordinator、Broker 以及 History 等进行处理,并且依赖较多,因此整个操作过程会比较复杂。第二,查询不友好。Druid 的低版本不直接支持 SQL 查询,仅提供基于 DSL(领域特定语言)的查询方式。当前版本支持 JSON 和 SQL 级别的查询,但仅限于汇总数据,不支持明细数据的查询。第三,数据接入受限。数据接入 Druid 时,需要预先定义数据模型,包括数据模板、维度定义和指标定义等,这增加了数据接入的复杂性。在数据处理上,Druid 还受到窗口限制,这意味着数据延迟问题可能较为严重,严重的情况下,数据甚至可能不会被接受。最后,扩缩难。由于 Druid 的组件和节点类型众多,每次进行扩容或缩容时,数据平衡所需的时间较长。4. ClickHouse 相比 Druid 的优势
ClickHouse 以其多样化的存储引擎而著称,这些引擎能够灵活地满足复杂的业务分析需求。此外,它还支持物化视图(Materialized Views),这一特性能够显著提升数据的处理性能,使得数据查询和分析更加高效。因为 ClickHouse 针对 OLAP 场景进行了大量的优化,支持列式存储,因此在处理大量数据时查询性能远超 Druid。另外,针对复杂的数据查询,ClickHouse 可以借助向量化、并行处理来提高性能。ClickHouse 提供了非常高效的数据压缩能力,可以减少存储空间,降低 I/O 成本。大量数据实时写入时,ClickHouse 可以提供很好的性能。企业版 CK 架构和优势
1. 企业版 CK:云原生存算分离架构

由于 ClickHouse 企业版采用原始的存算分离架构,所以在数据的一致性和集群的扩展性,尤其是水平扩容的效率上,都具有得天独厚的优势。所有的计算节点对全量存储数据都是可见的,数据变更节点自动感知,相比社区版的 ReplicatedMergeTree,具有更强的数据一致性。同时由于数据不再和计算资源绑定,企业版新增节点的操作也比社区版更快更简单,不再需要将业务停写后做数据的 reshard 和迁移,大大降低了运维的难度。除此之外,基于对象存储 OSS 的共享存储,企业版拥有更高的吞吐量和更高的 merge 处理效率。2. 企业版 serverless 能力:资源基于负载的弹性变配
企业版具有 serverless 的能力,支持资源基于负载的自动升配和降配,在业务高峰期自动升配,提升处理能力;在业务低谷期自动降配,减少成本开销。并且能通过增加节点数线性的增加集群的性能。上图右侧展示了社区版和企业版在不同节点数下 merge 的执行时间,橙色的是企业版,红色的是社区版,可以看到企业版的执行时间是随着节点数量的增加线性降低的,但是社区版很难通过简单的增加节点来大幅提升 merge 的性能。企业版 CK 性能测试

首先是 OSS 数据导入企业级 CK 的测试。主要测试了不同数量、不同大小的文件对导入速度的影响。从上图中的数据可以看出,文件导入速度随着文件个数的增多而不断提升,最终维持在每秒 200 万条左右的速度。后续我们会采用多客户端并行导入的方式,最大化利用内网带宽,提升导入性能。
第二个测试是 CK 企业版和 Spark 的比较。测试中将同样的一份数据,分别用企业版 CK 和 Spark 去计算,对数据进行维度集合统计,聚合维度 10 个,其中包含一个 Json 字段解析,数据总数 60 亿条。可以看到,在计算相同等级数据量的时候,CK 企业版相对于 Spark 所耗费的资源更少。同时,从企业版 CK 的资源消耗情况可以看到,集群资源随着业务高峰的结束而缓慢降低,完成了动态的资源变化。不过目前看资源弹缩的速度相比真实的业务资源使用变化来说,存在一些延迟,在计算稀疏环境下可能会有部分的资源浪费,希望后续能够缩得更快一些。此外,会受到 Json 字段键值对多少的影响,键值对越多,速度越慢(数据解析后需要落盘,IO 瓶颈),所以可以根据实际情况用企业级 CK 代替部分 Spark 任务。比如,当数据量在百亿以下的时候,可以用企业版 CK 来代替 Spark;而当数据量在百亿以上且需要解析 Json 这种相对比较复杂的数据时,Spark 还是有一定优势的。
第三个测试对比了社区版 CK 和企业版 CK。测试将同份数据分别用企业版 CK 和社区版 CK 去计算,数据总量 50+亿条。主要从单位度聚合、单位度聚合去重、多维度聚合去重 3 个角度去做测试。从测试数据可以看到,企业版和社区版相比,在 3 个场景下,企业版 CK 的执行效率基本都在社区版 CK 的 2-3 倍左右。同时还能看到社区版 CK 在后两个场景都出现了 OOM 的情况。而企业版 CK 由于 serverless 特性会自动增加部分资源,因此具有更快的执行效率,并且可以避免 OOM 问题。
众所周知,表关联一直是社区版 CK 的短板,表关联需要大量的数据交换,导致社区版 CK 在有 join 的场景下经常遇到 OOM 问题,这里主要测试的是企业版的 join 性能。本次测试使用两张表,大表单表 175 亿数据,小表单表 47 亿数据,分别在执行 3 个维度的去重后和关联表去做关联,可以看到小表关联耗时 10s,大表关联耗时 27s,并且全程没有出现 OOM 的情况。之后,我们还测试了一个采用物化视图的关联耗时,同样的数据在采用了物化视图之后的关联耗时直接达到了秒级,可以看到企业版 CK 在 join 的性能上相比社区版有了显著的提升。总结
在广告业务场景中,性能、稳定性和资源消耗是三大核心能力,它们直接关系到业务的高效运行和成本控制。针对这些需求,ClickHouse 企业版展现出了卓越的性能和稳定性,同时保持了较低的资源消耗。性能方面,ClickHouse 企业版在数据导入、聚合统计和 join 操作上都表现出色。在数据导入方面,其 OSS 数据导入性能在多客户端并行导入的情况下,可以达到内网的最大带宽,确保数据的高效传输。在聚合统计方面,由于支持计算资源的 serverless 特性,相比社区版,企业版提供了 2-3 倍的执行效率,极大提升了数据处理的速度。在 join 操作方面,企业版相比社区版也有着显著改善,通过创建物化视图,能够实现秒级 join 效果,解决了社区版经常遇到的 OOM 问题。稳定性方面,ClickHouse 企业版通过支持弹性的资源升降配,有效避免了 OOM 的发生。在负载增高时,企业版能够自动进行资源升配,确保系统的稳定运行。在聚合统计、join 等社区版频繁出现 OOM 的场景下,企业版通过自动的资源升配,提供了更好的稳定性体验。资源消耗方面,企业版 ClickHouse 在提供与 Spark 相当的聚合统计性能的同时,仅消耗 Spark 约 7.5% 的计算资源量。这一优势不仅降低了成本,还使得企业版在业务高峰结束后能够逐步释放资源,实现资源的高效利用。展望未来,随着企业版的正式商业化上线,我们将把 ClickHouse 企业版正式投入生产环境中使用。我们期待这一变化能够进一步提升广告业务的性能和稳定性,同时降低资源消耗。欢迎大家体验 ClickHouse 企业版带来的卓越性能和稳定性。好消息:ClickHouse Guangzhou User Group第1届 Meetup 已经开放报名了,将于2024年8月25日在广州天河区林和中路6号 海航威斯汀酒店 5楼多功能3厅举行,扫码免费报名


面向社区长期正文,文章内容包括但不限于关于 ClickHouse 的技术研究、项目实践和创新做法等。建议行文风格干货输出&图文并茂。质量合格的文章将会发布在本公众号,优秀者也有机会推荐到 ClickHouse 官网。请将文章稿件的 WORD 版本发邮件至:Tracy.Wang@clickhouse.com

