2021 年,Cayden Meyer 领导着 Canva 的企业、教育和团队工作。 识别转化、扩展和保留的机会,并了解影响它们的因素,对于帮助 Canva 的销售、客户成功和产品团队集中精力至关重要,但当时没有解决方案可以帮助他们轻松做到这一点。 这是 Cayden 在 Google 担任产品经理时曾面临的差距,他知道数百万订阅企业也肯定面临着同样的问题。
“当时就是没有工具能为我解决这个问题,”他说。“所以我出去自己构建了一个。”
今天,Cayden 的公司 Upollo 通过预测哪些人可能流失、转化或扩展以及原因,帮助企业推动收入增长。 Upollo 分析超过 5000 万用户(每周还增加数百万用户)和 5 亿美元的收入,提供预测洞察,以帮助其客户更快地增长并构建更有效的产品。
Upollo 的使命和产品的核心是需要处理和分析“数十亿甚至数百亿的事件”,其中包括从点击和页面浏览量到计费事件和支持互动的所有内容。 然而,随着公司规模的扩大,在为越来越多的客户提供服务的同时处理超过 40 TB 的数据,Cayden 和团队意识到,他们现有的数据仓库 BigQuery 已变得成本过高且效率低下。
为了保持增长并大规模交付实时洞察,他们需要更高效、可扩展、更具成本效益的解决方案,他们的搜索将他们引向了 ClickHouse Cloud。
BigQuery 和 Postgres 瓶颈
Cayden 在 Google 工作期间开始使用 BigQuery,当时他管理着 Google Keep、App Engine、Maps 和 Drive 等产品。 BigQuery 的性能和功能给他留下了深刻的印象,因此他选择了 BigQuery 作为 Upollo 的初始数据仓库。
“BigQuery 是一款出色的产品,可以非常快速地运行互联网规模的查询,”Cayden 说。“但是,它给我们带来了两个主要挑战:成本和更复杂工作流程(例如我们的用例所需的工作流程)所需的可扩展性。”
随着 Upollo 的发展和更多客户的加入——“尤其是少数几个拥有相当大数据集的客户,”Cayden 指出——数据库管理成本稳步增加,直到 BigQuery 支出占了他们每月账单的大部分。 “我们运行的查询成本高达数千美元,与此同时,我们眼睁睁地看着数据快速增长,”他说。“我们算了算,发现无论我们如何定价,它都无法扩展。”
效率低下不仅限于成本。 为了提供分析,Upollo 不得不在 BigQuery 和 Postgres 之间重复工作——创建模式、运行查询和传输结果。 正如 Cayden 解释的那样,这种工作流程增加了不必要的延迟并增加了工程开销。 “我们基本上不得不做两次相同的工作,”他说。“这造成了大量的额外延迟,并为我们的团队增加了巨大的工作量。”
从 BigQuery 到 Postgres 的定期数据传输引入了更多的延迟,而 Postgres 在处理大型聚合时也显得力不从心,经常在处理较大数据集时速度减慢或超时。 高成本、延迟以及管理两个独立数据库带来的操作难题,使得向客户交付新鲜的分析变得越来越困难。 这些限制突显了对更精简和可扩展解决方案的需求,该解决方案可以消除双数据库方法并简化 Upollo 的工作流程。
更具可扩展性的解决方案
当他们开始研究替代方案时,Upollo 团队确定了一些要求。 首先也是最重要的,他们需要一种能够以经济实惠的方式随着海量数据量进行扩展的解决方案。 它必须支持实时数据服务,而无需复杂的工作方案和重复操作,同时处理为 Upollo 的预测能力提供支持的大型分析查询。 性能和可靠性至关重要,他们希望有一个强大的社区支持该平台,以确保它随着时间的推移不断改进。
“市面上有许多有趣且出色的产品,但我们想要一种我们知道在我们需要的规模下使用并且有一个公司社区推动其随着时间推移变得更好的解决方案,”Cayden 说。
他们还优先考虑寻找托管服务,这将使他们避免自己维护数据库的麻烦。 “我们不希望我们的工程师将时间花在升级、补丁和维护上,”Cayden 说。“我们宁愿他们专注于开发新功能和构建出色的产品。”
他们通过开源社区熟悉 ClickHouse,并且在 Hacker News 等平台上看到过关于它的讨论,尤其是在事件密集型工作负载方面。 通过比较 ClickBench 上的基准测试并阅读其他公司迁移类似工作负载的经验,他们清楚地意识到 ClickHouse 可能正是他们正在寻找的解决方案。 凭借其托管服务、活跃的社区和开源基础,这款 OLAP 数据库有望简化 Upollo 的工作流程并支持其构建高效、可扩展数据基础设施的愿景。
“我们决定试一试,看看它是否能处理我们的工作负载,并决定它是否对我们具有良好的长期意义,”Cayden 说。
ClickHouse 实践
Cayden 在一个下午仅用 30 分钟就将 Upollo 的核心数据迁移到了 ClickHouse Cloud。 设置非常简单,团队可以快速加载数据并与之交互。 “我们已经能够非常高效、非常快速地摄取非常大的批量数据,”Cayden 说,他强调他们使用 ClickPipes 在几分钟内移动大量事件数据。
对于 Upollo 的团队和业务而言,影响是巨大的。 ClickHouse 的性能不仅使查询速度提高了 20 倍,而且还解锁了 Upollo 以前甚至无法尝试的功能。 正如 Cayden 解释的那样,“我们有客户要求结合过滤器来识别更多要销售的人。 以前这需要几分钟甚至超时,而现在是即时的。”
高计数查询和大型分析查询就是一个例子。 以前,他们的数据库难以处理大规模计数任务,通常需要数十秒,甚至崩溃或超时。 而使用 ClickHouse,那些相同的查询(鉴于 Upollo 服务的客户通常拥有 1 亿或更多用户,这很常见)在几分之一秒内即可完成。 “过去需要几天甚至几天的工作,现在可以在一两个小时内完成,”Cayden 说。
ClickHouse 还简化了 Upollo 的数据架构。 通过在一个平台上整合存储、处理和服务,他们减少了重复和延迟。 “与管理多个模式并在数据库之间同步相比,这是一个效率更高的设置,”Cayden 说。
最后,Cayden 说,ClickHouse Cloud 的存储和计算分离对于 Upollo 的成本和工作负载灵活性来说是“游戏规则改变者”。 “我们可以根据需要向上或向下扩展,处理批处理作业而不会影响生产,并避免维护大型集群的高成本。” 这意味着 Upollo 可以随着数据需求的持续增长,优化资源以兼顾性能和预算。
最初的障碍和经验教训
当然,没有哪个迁移过程没有成长的烦恼,Upollo 迁移到 ClickHouse 也带来了一系列挑战。 Cayden 说,第一个挑战仅仅是理解新系统的学习曲线。 “为了从 ClickHouse 中获得我们想要的一切,我们最终深入研究了代码,以了解产品的工作原理以及如何最大限度地利用它,”他说。 他们还得到了 ClickHouse 社区、文档和支持团队的帮助。
早期的一个挑战是管理内存,以避免在大型查询期间出现内存不足 (OOM) 问题。 “ClickHouse 团队一直很乐于助人,就如何解决这些挑战、更改核心产品、将内容添加到路线图等方面提供了建议,”Cayden 说。“我们仍然偶尔会遇到 OOM,但频率远低于以前。”
在 Upollo 采用 ClickHouse 的同时,他们还引入了 dbt(数据构建工具)来简化他们的数据工作流程。 dbt Cloud 不支持 ClickHouse,因此 Upollo 团队创建了自己的工具来弥合这一差距。 当他们报告了一个长期存在的错误(该错误一直阻碍着他们)时,ClickHouse 团队第二天就立即介入并提供了修复程序。
在整个过渡过程中,他们需要调整 ClickHouse 的各种标志和设置以优化性能。 “有一些尖锐的边缘,”Cayden 说,他指出,直接开箱即用地运行 ClickHouse 可能并不总是能提供最佳性能。 但他说,ClickHouse 团队提供了指导,帮助 Upollo 的工程师调整平台以处理他们独特的数据密集型工作负载。
与 ClickHouse 一起成长
对于任何考虑 ClickHouse Cloud 的人,Cayden 的建议很简单:试一试。 “将数据传输过来并开始使用它比您想象的要容易得多,”他说,并补充说 ClickHouse 的试用积分使探索和测试数据库变得容易。
ClickHouse 的开源社区和全面的文档使 Upollo 的过渡更加顺畅。 “有许多令人难以置信的资源可用,”Cayden 说。 他还建议联系 ClickHouse 的友好人士以加入 Beta 计划,并指出这是尽早获得新功能的好方法——“只要您能接受使用前沿技术。”
随着他们的核心数据迁移完成,Cayden 和团队期待通过迁移更多的工作负载并利用倒排索引等新功能来深化他们与 ClickHouse 的关系。 “我们梦想的状态是,我们所有可以在 ClickHouse 上高效运行的分析工作负载和查询都可以在 ClickHouse 上运行,”他说。
对于 Upollo 而言,迁移到 ClickHouse 提高了成本效率和性能,使他们能够在不受先前限制的情况下扩展并向客户交付预测洞察。 查询运行速度更快,大型数据批处理在几分钟内即可完成,Upollo 的工程师可以专注于创新而不是维护。
“ClickHouse 使我们能够以 BigQuery 根本无法实现的经济高效的方式进行扩展,”Cayden 说。
要了解有关 ClickHouse 如何提高数据操作可扩展性的更多信息,请免费试用 ClickHouse Cloud 30 天。