集成 ClickHouse 是 Common Room 数据管理发展中的一个重要步骤,使它能够处理随着其市场成功而带来的日益复杂和海量客户数据。
Common Room 成立于 2020 年,Common Room 是一个基于 AI 的客户智能平台,帮助企业从头到尾智能地运行市场营销 (GTM)。数字信号捕获、统一身份和账户智能以及 AI 和自动化功能在一个平台中融合在一起,帮助 GTM 团队在正确的时间以正确的上下文触达正确的人。一位创始软件工程师 Kirill Sapchuk,在最近的 ClickHouse 聚会上发表了演讲,向我们介绍了 Common Room 以及其数据管理之旅的一些见解。
Common Room 从许多不同的来源(包括产品、网站、CRM、LinkedIn、X、Slack、GitHub、Reddit、YouTube 等等)聚合数据,并将跨渠道活动与真实人员和真实账户关联起来。这为 GTM 团队提供了整个数字生态系统中客户的统一视图:“在 Common Room 之前,人们会创建电子表格,然后手动从 Twitter 或 Slack 等来源提取数据,然后努力将所有数据组合和解析。这最多只能算是一个繁琐的过程,”Kirill 说。他和 Common Room 团队的其他成员希望改变组织与人互动的方式。
使用 Postgres 驱动实时分析工作负载的挑战
最初,重点是从不同来源提取数据以创建客户的统一视图:“每个人都由所谓的‘成员对象’表示,该对象收集来自所有相关数据源以及其他重要数据的所有信息。他们是谁?属于哪个细分市场?之前就职的公司?等等,”Kirill 解释道。然后,团队使其能够使用丰富的多方面过滤器搜索联系人及其组织,并根据这些条件设置主动通知和工作流规则。
这种交互式、数据驱动的体验需要一个强大的分析数据库来快速有效地执行这些操作。最初的架构依赖于 Postgres 作为事务性和分析数据集的唯一数据存储,但 Common Room 团队发现,随着数据集的增长,PostgreSQL 不再适合为其用户界面提供支持的分析查询。该公司开始寻找替代方案。
引入 ClickHouse Cloud
Common Room 被活跃的 ClickHouse 社区以及一个可立即用于测试的云版本所吸引,开始探索将 ClickHouse 用于其用例。具体来说,支持 1000 万个成员记录,每个记录包含 100 个字段。“我们需要存储 10 亿行数据,”Kirill 说。
传统的分析数据库针对不可变的、追加式数据进行了优化,但 Common Room 的首要任务是能够处理频繁更新的解决方案——每天更新 25% 的记录。ClickHouse 提供了专为处理更新数据而设计的表引擎,而不会牺牲分析查询的性能。Common Room 采用了 ReplacingMergeTree
表引擎来处理更新,并注意到在 23.12 版本中使用 <FINAL> 修饰符后性能有了显著提升。该团队还采用了 VersionCollapsingMergeTree
表引擎来处理更复杂的情况,例如处理删除操作,否则大量更改会导致表大小每天增加 25%。使用 +1/-1 符号可以标记旧行以供删除和替换。
Common Room 还实现了可刷新物化视图,为某些延迟是可以接受的情况下的数据提供快速、可查询的版本。为了有效地使用这些视图,团队还必须优化 JOIN 操作的顺序。虽然 Common Room 仍然使用 PostgreSQL 进行点查询,并使用 Kafka 进行批处理数据转换,但 ClickHouse 现在处理了大部分实时、客户发起的查询——充当快速搜索引擎。
ClickHouse 已证明是 Common Room 技术栈中宝贵的补充,使他们能够有效地处理基于近期和历史数据的复杂分析查询,而不会影响性能。观看视频以了解更多信息!