集成 ClickHouse 是 Common Room 数据管理发展的重要一步,使之能够处理其市场成功带来的日益复杂和庞大的客户数据。
Common Room 成立于 2020 年,是一个基于 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 技术堆栈中不可或缺的一部分,使他们能够在不影响性能的情况下,有效地处理基于最新和历史数据的复杂分析查询。 观看视频 以了解更多信息!