GENIEE 旨在实现让每个人都能在营销领域取得成功的世界。GENIEE 于 2010 年在东京成立,为发布商、广告商、代理商和应用开发者提供广告技术和数字营销解决方案,以优化广告策略并最大化广告收入。
在数字营销中,数据是有效广告策略的基础。GENIEE 的客户根据从展示和点击到转化和成本的大量实时数据调整广告活动,以最大化回报。每天生成数十亿个数据点,GENIEE 需要一个能够高效处理、存储和分析信息的数据库管理系统。这使其能够提供准确的实时洞察,并帮助广告商快速做出决策。
自 2017 年以来,ClickHouse 一直是 GENIEE 数据运营的核心,并充当中央报告数据库。在2024 年 6 月的东京见面会上,工程师片冈先生解释了最近决定将 ClickHouse 的使用扩展到数据聚合。此举提高了报告速度,改善了系统稳定性,并降低了成本。
超越旧系统的局限
到 2021 年,GENIEE 的广告效果报告系统结合使用了 Apache Kafka 进行流数据处理,以及 Apache Flink 进行数据聚合。在此设置中,Flink 处理广告数据聚合的复杂任务,并将其结果发送到 ClickHouse 进行报告。然而,随着数据规模的扩大,该系统面临了一些损害效率和可靠性的问题。
最大的问题之一是 Flink 频繁发生故障。这些中断导致报告不完整或不准确,通常需要 GENIEE 的工程团队重新计数数据并进行人工检查以进行验证。这是一个费力且耗时的过程。报告延迟也是另一个问题,高峰时段报告生成可能需要 40 多分钟,这使得向客户提供实时洞察变得困难。
GENIEE 的旧架构:数据通过 Kafka 流式传输,在 Flink 中聚合,并在 ClickHouse 中存储以进行报告。
旧系统还消耗大量服务器资源,推高了维护稳定性和性能的运营成本。工程师需要手动搜索日志以诊断问题,这也减慢了流程并增加了工作量。
“情况并不理想,”片冈先生说。“我们想解决问题的根本原因,但由于数据的复杂性和规模,这并不容易。”
我们意识到,为了支持 GENIEE 的长期增长并提供客户期望的最先进的广告技术和数字营销解决方案,我们需要一个更稳定和高效的数据库管理解决方案。
选择 ClickHouse 而不是 BigQuery
为了改造广告效果报告系统,片冈先生和团队考虑了包括 Google BigQuery 在内的几个选项。然而,尽管 BigQuery 提供了一些优势,但 GENIEE 认为扩展 ClickHouse 的使用是最佳途径。
此决定的主要因素之一是团队对 ClickHouse 的熟悉程度,他们已经将其用作报告数据库多年。这种长期关系和对 ClickHouse 高级功能的采用使得向数据聚合的扩展能够平稳过渡。
此外,片冈先生指出,ClickHouse 具有成本效益,这对于旨在降低服务器资源和运营费用的公司来说是一个重要的考虑因素。
通过在受信任的现有系统之上构建,GENIEE 能够做出在性能、稳定性和成本之间取得平衡的战略选择。报告和聚合都使用 ClickHouse 的决定完全优化了数据运营,无需新平台。
“结果证明,选择 ClickHouse 而不是 BigQuery 是正确的选择,”片冈先生说。
新的、更好的数据架构
GENIEE 的新数据架构围绕两个 ClickHouse 集群构建:一个用于日志聚合,另一个用于报告,它们协同工作以简化和稳定数据处理。数据流从 Kafka 开始,摄取实时数据并将其路由到 ClickHouse 以进行聚合和报告。这使 GENIEE 能够快速准确地处理大量的广告效果数据。
GENIEE 的新架构:数据通过 Kafka 流式传输,在 ClickHouse 中聚合和解析,并存储以用于实时报告。
系统的主要组件包括:
Kafka 表引擎
GENIEE 继续使用 Kafka 来摄取实时数据,但现在通过Kafka 表引擎将日志直接路由到 ClickHouse。这种简化的方法使系统能够以最小的延迟处理大量传入数据。
物化视图
通过使用 ClickHouse 的物化视图,GENIEE 预聚合了展示和点击等广告数据,并将查询时间从数小时缩短到数分钟。物化视图自动触发数据解析和聚合,进一步简化了报告流程。
SummingMergeTree 引擎
通过利用 ClickHouse 的SummingMergeTree引擎,GENIEE 完全自动化了展示和成本等指标的聚合。这避免了困扰旧系统的手动处理和重新聚合。
字典和元数据处理
通过使用 ClickHouse 的字典功能,GENIEE 特别是在广告商元数据中,有效地将键映射到属性值。这种方法减少了数据重复,加快了实时查找,并提高了数据架构的整体效率。
速度、稳定性、可扩展性
正如片冈先生解释的那样,GENIEE 以 ClickHouse 为中心的新数据架构为业务的关键领域带来了各种好处。
旧系统生成报告需要数小时,而现在相同的查询只需几分钟即可完成。这使 GENIEE 的客户能够实时优化广告策略和支出,并做出更快、更明智的决策。
系统的稳定性也得到了显着提高。GENIEE 在 Flink 中经历的频繁故障已成为过去。通过迁移到 ClickHouse 的聚合引擎,GENIEE 简化了数据流,减少了故障点,并提高了系统的可靠性。
成本效益也是一个重要的成果。通过使用 ClickHouse 的 SummingMergeTree 引擎,GENIEE 自动化了指标的聚合,消除了手动干预,并使工程师能够专注于战略性和高价值的任务。此外,新架构具有更高的资源效率,减少了服务器数量,并降低了公司的基础设施成本。
总的来说,新系统简化了流程,提高了可靠性,降低了成本,并使 GENIEE 能够为客户提供更及时、更有价值的洞察。
与 ClickHouse 一起成长
展望未来,片冈先生表示,团队对继续利用 ClickHouse 的功能感到兴奋。特别关注的是进一步提高查询性能,他们正在尝试投影等功能,并优化压缩算法以缩短处理时间。他们还在考虑从 JSON 迁移到二进制日志格式,并希望这将提高性能并进一步提高数据处理效率。
通过利用 ClickHouse 的灵活性和可扩展性,GENIEE 可以继续增长,并为客户提供更快、更可靠的洞察。随着业务的发展,片冈先生和团队相信 ClickHouse 将成为其数据基础设施的基础,使其能够保持作为广告技术和数字营销领导者的地位。