博客 / 用户案例

从批处理到流式处理:AMP 从开源到 ClickHouse Cloud 的数据之旅

author avatar
Chris Lawrence
2025 年 1 月 20 日 - 7 分钟阅读


AMP 是一个电商增长平台,为 Shopify 商家提供分析和优化其店铺绩效的工具。AMP 源于让经常管理数十个断开连接的应用程序的在线零售商更轻松的愿望,为 Shopify 上的一些最大品牌提供支持,包括 Ridge、True Classic、Hydroflask 等。

AMP 的旗舰分析产品 Lifetimely 提供对利润与亏损 (P&L)、客户获取成本 (CAC)、生命周期价值 (LTV) 和客户行为的洞察,帮助商家做出快速、数据驱动的决策并提高盈利能力。但随着 AMP 的用户群和平台扩展,其数据基础设施的需求也随之增加。数据日益增长的复杂性和数量使得提供商家依赖的实时洞察变得困难,这促使 AMP 寻求更具可扩展性的长期解决方案。

AMP 高级软件工程师 Chris Lawrence 在 2024 年 8 月墨尔本 ClickHouse 聚会上发表了演讲。他分享了公司如何实施 ClickHouse Cloud,帮助 AMP 将其数据管道从批处理转变为实时流式处理,从而提高了分析平台的速度和可靠性。

对长期解决方案的需求

Chris 说,在实施 ClickHouse 之前,AMP 依赖于“一台小型 Postgres 服务器”。它在早期满足了他们的数据需求,但随着 AMP 平台发展到支持数千家 Shopify 店铺,他们数据的复杂性和规模也随之增加。

Chris 说:“当您达到一定规模时,性能开始变慢,特别是对于非常实时和动态的报告而言。” “这阻止了我们进行大量预处理,而我们需要预处理才能交付我们的商家真正重视的快速、详细的报告。”

为了解决这些问题,AMP 最初添加了 ClickHouse 作为 Postgres 的补充。“我们只是为了查询而将整个 Postgres 实例克隆到 ClickHouse 中,”Chris 说,并称之为“一个非常棒的数据管道”。这种混合设置使 AMP 能够处理更复杂的查询并减轻 Postgres 的压力,但这并不是一个完美的解决方案。

在批处理工作流程中,Shopify 店铺的数据每隔几个小时被拉入 Postgres,并且每天两次将数据同步到 ClickHouse 以进行查询。Chris 解释说,这个过程“通常非常缓慢”,在两个系统之间传输和处理大量数据需要几个小时。

diagram_1.png

数据新鲜度成为一个主要问题,尤其是 AMP 的商家期望获得实时洞察。“客户至上是我们的核心价值观之一;我们真的想为我们的客户提供良好的体验,”Chris 说。“而糟糕的体验是,由于从 Postgres 同步数据、通过线路发送数据并将其导入 ClickHouse 需要大量时间,导致您的数据经常过时 30 个小时。”

Chris 补充说,这个过程也“非常脆弱”——即使同步期间发生一次故障也可能导致系统崩溃并需要重新启动。“我们经常会遇到数据过时 48 到 72 小时的情况,”Chris 说。在 Shopify 店铺中安装 AMP 的新客户必须等待两到三天才能看到任何报告。

资源使用是另一个挑战。同步过程消耗大量电力,需要一台具有超过 1.2 TB 内存的服务器来管理数据负载。资源方面的压力,加上持续存在的数据新鲜度问题,促使 AMP 团队寻求更具可扩展性的长期数据解决方案,以支持他们的持续增长。

迁移到 ClickHouse Cloud

AMP 迁移到 ClickHouse Cloud 的驱动力来自两个主要目标:保持数据的及时性和灵活性,以及构建可扩展的实时数据架构。

对于商家而言,AMP 希望减少报告延迟并确保数据保持准确。旧系统在出现任何不一致时都需要从 Shopify 完全重新摄取数据——Chris 将此过程描述为缓慢、手动且令人沮丧地不透明。借助 ClickHouse Cloud 的实时设置,AMP 可以提供有关库存、客户行为和绩效的洞察,使商家能够快速而自信地采取行动。

在技术和“更有趣”的方面,正如 Chris 所说,AMP 旨在通过实时流式处理来加速数据摄取,启用事件重放和数据备份,并自动化基础设施管理。借助 Shopify 的 Webhook 和 AWS 的事件流功能,他们着手构建一个通过基础设施即代码 (IaC) 管理的灵活、可重现的数据环境。

diagram_2.png

AMP 向 ClickHouse Cloud 的过渡涉及一些巧妙的问题解决和一些关键的 ClickHouse 功能。他们首先使用 Shopify Webhook 接收实时更新,通过 Amazon EventBridge 路由它们,并使用 AWS Lambda 处理它们。这种持续的流式处理设置使他们摆脱了过时的批处理。

对于实时数据更新,AMP 使用了 ClickHouse 的 ReplacingMergeTree 表引擎,这使他们能够直接插入更新,并让 ClickHouse 管理重复数据删除——这对于快速、准确的报告很有帮助。他们确实遇到了一个小问题:以较小的批次插入数据会导致瓶颈,因为 ClickHouse 在至少 1,000 行的较大批次中性能最佳。

amp_1.png
他们通过添加 Amazon Kinesis Data Firehose 解决了这个问题,后者将较小的更新缓冲到 S3 上的 JSON 文件中,从而减少了在将数据发送到 ClickHouse 之前降低效率的情况。他们还添加了[异步插入](https://clickhouse.ac.cn/docs/en/optimize/asynchronous-inserts) ——Chris 称之为“一个非常棒、非常优雅的解决方案”——它在将数据写入磁盘之前将其临时存储在内存中。这减轻了频繁小插入的负载,帮助 AMP 保持效率并保持数据流畅流动。
amp2.png
最后,借助 ClickHouse Cloud Terraform 提供商,他们使基础设施管理变得更加顺畅。Chris 说,借助 IaC,他们可以“在我们的所有环境中——开发、测试、暂存、生产,以及您能想到的任何环境——一键”创建可重现的实例。借助 ClickHouse Cloud 的监控、自动扩展和自动更新,AMP 现在可以灵活地支持他们的增长,而无需通常的基础设施难题。

面向未来的数据基础

迁移到 ClickHouse Cloud 帮助 AMP 重新定义了其数据平台,并为 Shopify 商家提供了保持竞争力所需的实时洞察。通过从容易出现延迟的批处理设置转变为持续的流式处理架构,AMP 可以交付及时的分析,帮助商家做出快速、自信、数据驱动的决策。

对于 Chris 和 AMP 的工程团队而言,此举简化了运营,并为增长创建了强大且可扩展的基础。新设置提供了更直接的基础设施管理,同时保留了灵活性,使 AMP 能够根据需要启动实例并适应波动的数据负载。自动化的监控、更新和扩展意味着团队可以将精力集中在创新而不是维护上。

借助 ClickHouse Cloud,AMP 构建了一个面向未来的数据基础,使其能够忠实于其对客户至上的承诺,为商家提供在当今电商环境中蓬勃发展所需的速度、准确性和适应性。

要了解有关 ClickHouse 及其如何提高公司数据基础设施的速度和可扩展性的更多信息,免费试用 ClickHouse Cloud 30 天

分享这篇文章

订阅我们的新闻资讯

随时了解功能发布、产品路线图、支持和云产品!
正在加载表单...
关注我们
X imageSlack imageGitHub image
Telegram imageMeetup imageRss image
©2025ClickHouse, Inc. 总部位于美国加利福尼亚州湾区和荷兰阿姆斯特丹。