GENIEE 的使命是创建一个任何人都能在营销领域取得成功的世界。该公司于 2010 年在东京成立,提供一套广告技术和数字营销解决方案,旨在帮助发布商、广告商、代理商和应用程序开发商优化其广告策略并最大化广告收入。
在数字营销中,数据是有效广告策略的基石。GENIEE 的客户依赖大量的实时数据——从展示和点击到转化和成本——来微调其广告活动并最大化回报。每天产生数十亿个数据点,GENIEE 需要一个数据库管理系统,该系统能够高效地处理、存储和分析这些信息。这使他们能够提供准确的实时洞察,从而使广告商能够快速做出明智的决策。
自 2017 年以来,ClickHouse 一直是 GENIEE 数据运营的核心,充当其中心报告数据库。在2024 年 6 月在东京举行的见面会上,工程师 Takafumi Kataoka 介绍了团队最近决定扩展 ClickHouse 的使用范围,以包括数据聚合——此举措已带来更快的报告速度、改进的系统稳定性和更低的成本。
旧系统已无法满足需求
直到 2021 年,GENIEE 的广告效果报告系统都依赖于 Apache Kafka 进行流数据处理,以及 Apache Flink 进行数据聚合。在这种设置中,Flink 负责聚合大量广告数据的复杂任务,然后再将其传递给 ClickHouse 进行报告。然而,随着数据规模的增长,该系统面临着一些持续存在的挑战,这些挑战阻碍了效率和可靠性。
最大的问题之一是 Flink 频繁发生故障。这些中断导致报告不完整或不准确,通常需要 GENIEE 的工程师团队进行手动干预,以重新计数和验证数据——这是一个劳动密集且耗时的过程。报告延迟是另一个问题,报告生成需要长达 40 分钟,有时在高峰时段甚至更长,这使得难以向客户提供实时洞察。
GENIEE 的旧架构:数据通过 Kafka 流式传输,使用 Flink 聚合,并存储在 ClickHouse 中以进行报告。
旧系统还需要大量的服务器资源,随着团队努力维持稳定性和性能,运营成本也随之增加。工程师必须手动搜索日志以诊断问题,进一步减慢了流程并增加了他们的工作量。
“情况并不理想,”Takafumi 说。“我们想解决问题的根本原因,但这并不容易,因为我们数据的复杂性和规模。”
他们意识到,为了支持 GENIEE 的长期增长,并交付客户期望的尖端广告技术和数字营销解决方案,他们需要一个更稳定、更高效的数据库管理解决方案。
选择 ClickHouse 而非 BigQuery
当 Takafumi 和团队着手彻底改革其广告效果报告系统时,他们研究了几种替代方案,包括 Google BigQuery。虽然 BigQuery 提供了一些优势,但 GENIEE 认为最佳途径是扩展 ClickHouse 的使用。
做出此决定的主要因素之一是团队对 ClickHouse 的熟悉程度,他们已经将 ClickHouse 用作报告数据库多年。这种长期的合作关系和对 ClickHouse(包括其高级功能)的采用,使得他们能够更顺利地过渡,从而扩展其使用范围以包括数据聚合。
此外,Takafumi 表示,ClickHouse 提供了卓越的成本效率——这是公司寻求减少服务器资源和运营费用的重要一点。
通过构建在他们已经信任和熟悉的系统之上,GENIEE 能够做出平衡性能、稳定性和成本的战略选择。使用 ClickHouse 进行报告和聚合的决定使他们能够充分优化其数据运营,而无需全新的平台。
“最终,选择 ClickHouse 而不是 BigQuery 是正确的决定,”Takafumi 说。
一种新的、更好的数据架构
GENIEE 的新数据架构以两个 ClickHouse 集群为中心——一个用于日志聚合,一个用于报告——协同工作以简化和稳定其数据处理。数据流从 Kafka 开始,Kafka 摄取实时数据并将其路由到 ClickHouse 以进行聚合和报告。通过集中这些功能,GENIEE 现在可以快速准确地处理大量的广告效果数据。
GENIEE 的新架构:数据通过 Kafka 流式传输,使用 ClickHouse 聚合和解析,并存储以进行实时报告。
以下是系统一些关键组件的详细介绍
Kafka 表引擎
GENIEE 继续使用 Kafka 进行实时数据摄取,但现在它通过 Kafka 表引擎 将日志直接路由到 ClickHouse 中。这种简化的方法意味着系统可以处理大量传入数据,且延迟最小。
物化视图
ClickHouse 的物化视图允许 GENIEE 预先聚合广告数据(如展示和点击),从而将查询时间从数小时缩短到数分钟。物化视图触发自动数据解析和聚合,进一步简化了报告过程。
SummingMergeTree 引擎
通过利用 ClickHouse 的 SummingMergeTree 引擎,GENIEE 已经完全自动化了指标(如展示和成本)的聚合。这使 GENIEE 避免了困扰其旧系统的手动处理和重新计数。
字典和元数据处理
使用 ClickHouse 的 字典功能,GENIEE 可以有效地将键映射到属性值,特别是对于广告商元数据。这减少了数据重复并加快了实时查找速度,进一步提高了其数据架构的整体效率。
速度、稳定性和可扩展性
正如 Takafumi 所解释的那样,GENIEE 以 ClickHouse 为中心的新数据架构在业务的关键领域带来了诸多好处。
在旧系统中,报告生成需要数小时,而现在相同的查询只需几分钟即可完成。这意味着 GENIEE 的客户可以更快地做出更明智的决策,实时优化其广告策略和支出。
系统稳定性也大大提高。GENIEE 在 Flink 中经常遇到的故障现在已成为过去。通过转向 ClickHouse 的聚合引擎,GENIEE 简化了其数据流,减少了故障点,并提高了系统可靠性。
成本效率是另一个巨大的优势,无论是在运营上还是在财务上。ClickHouse 的 SummingMergeTree 引擎使 GENIEE 能够自动化指标聚合,无需手动干预,并使工程师能够专注于更具战略意义、更高价值的任务。新架构也更具资源效率,需要的服务器更少,并降低了公司的基础设施成本。
总体而言,新系统简化了流程,提高了可靠性,降低了成本,并使 GENIEE 能够向其客户提供更及时、更有价值的洞察。
与 ClickHouse 一同成长
展望未来,Takafumi 表示,团队很高兴继续探索和利用 ClickHouse 的功能。一个重点领域是通过试验投影等功能并优化压缩算法以减少处理时间,从而进一步提高查询性能。他们还在考虑从 JSON 迁移到二进制日志格式,他们希望此举能够提高性能并使数据处理更加高效。
凭借 ClickHouse 的灵活性和可扩展性,GENIEE 完全有能力继续发展壮大,并为客户提供更快、更可靠的洞察。随着业务的发展,Takafumi 和团队确信 ClickHouse 仍将是其数据基础设施的基石,使他们能够在广告技术和数字营销领域保持领先地位。
要了解有关 ClickHouse 及其如何使您的数据操作更快、更高效的更多信息,免费试用 ClickHouse Cloud 30 天 或 加入我们的开源社区。