2022年12月6日,Rokt负责报表和分析的工程经理Vadim Semenov在纽约市聚会上介绍了其团队使用ClickHouse的案例。Rokt是一家全球营销技术公司,专门开发电子商务营销工具,帮助企业个性化客户体验并推动收入增长。
在聚会期间,Semenov讨论了Rokt收集的数据,包括浏览量、点击量、购买量和各种事件,以及他们如何使用这些数据提供不同类型的报表,包括聚合数据集、实时报表和平台有效性衡量。Rokt还执行异常检测,以确定其自身或客户方面是否存在任何问题。
报表系统面临的挑战
Rokt解释说,他们有不同类型的用户,包括内部业务分析师、客户服务或客户经理、通过其网站或API访问其数据的外部用户,以及使用其数据集的其他系统。Rokt的报表系统架构非常复杂,外部事件通过Kafka和各种Spark流式处理和结构化流式处理应用程序,将数据推送到以S3为后端的数仓。批处理作业生成的数据加载到Redshift或Elasticsearch中。
然而,Rokt在其架构中面临着一些挑战,例如客户数据切片和切块功能有限,导致更多自定义报表请求。这给业务分析 (BA) 和报表团队带来了压力,要求他们提供自定义报表,而不是完成其主要工作。
为了解决这些挑战,Rokt需要一个新的用户界面 (UI),提供更多分组和过滤功能。“我们当前使用Elasticsearch的设置不支持它。因此,我们决定研究市场上其他可以支持的数据库,”Semenov说。“我们不喜欢Elasticsearch的其他方面,因为它不容易摄取数据,因为您必须基本上进行推送,没有来自S3的加载,也没有联接,因此标签必须存在于某个地方。如果更改某些标签,则必须重新摄取所有数据。”
Semenov解释说,使用Elasticsearch查询数据存在一些问题。“查询很困难,因为您必须使用JSON。您必须拥有一个网关来将您的SQL转换为JSON,或者直接发出JSON查询。总的来说,这会导致数据重复。”
寻找更好的数据库
由于在Elasticsearch中遇到了困难,Rokt开始研究其他可以提供更好支持的数据库。Semenov解释说,他们评估了一些替代方案,包括Apache Pinot、Druid、Citus Data、StarRocks、Snowflake和ClickHouse。
“Pinot和Druid更侧重于实时处理。没有联接。有人告诉我Druid现在在某些有限的功能中支持它,显然您无法发出各种不同的SQL查询。Snowflake更像是一个数据仓库,而且价格昂贵,”Semenov说。“StarRocks声称是ClickHouse的竞争对手,但它还太新,无法用于生产环境,而Citus Data过于面向Postgres。微软收购了它们,他们显然不打算支持AWS。因此,我们决定更仔细地研究ClickHouse,我们真的很喜欢它。”
这促使他们将ClickHouse与Redshift进行基准测试。他们使用实例SSD和EBS设置了自己的集群,发现ClickHouse在没有缓存的情况下比Redshift便宜三倍。
“您可以看到ClickHouse轻松超越Redshift,”Semenov说。ClickHouse的性能在返回结果方面始终如一,一些峰值可能与网络存储有关。他们还测试了ClickHouse在不同并发级别下的性能,结果显示出可预测的增长和6秒的最大查询时间,并且发现他们可以每秒发出多达200个查询。
“‘我们还查看了加载的数据大小。在S3上,我们存储了不同的事件。在Parquet gzip中大约为500 GB,一旦我们将其加载到ClickHouse中,我们发现它也只需要大约500(GB),”Semenov说。
他们将其与Elasticsearch中相同数据所需的存储空间进行了比较。“对于Elasticsearch,我们进行了同样的计算,结果发现大约是它的六倍,因此我们可以在实际存储方面节省一些钱,”Semenov说。
Semenov还概述了他们当前的设置,其中包括他们自己的自动扩展组中的ClickHouse节点、ZooKeeper以及分布在不同节点上的网络负载均衡器和目标组。
ClickHouse Cloud的优势
Semenov讨论了他们很快计划迁移到ClickHouse Cloud,因为它在备份和数据分析方面具有多项优势,并提到使用ClickHouse Cloud可以解决许多与复制、分片和可扩展性相关的问题。他解释说,ClickHouse特别擅长从Kafka摄取数据并使用SQL分析实时数据。此外,ClickHouse具有内置的字典,使联接更容易,并减少了对不同数据库和服务的API查询的需求。
纽约市ClickHouse聚会是了解领先电子商务公司在数据报表方面面临的挑战和解决方案的绝佳机会。借助ClickHouse,Rokt能够获得一致且可预测的结果,降低存储成本,并更有效地分析实时数据。
更多详细信息
- 此演讲于2022年12月6日在纽约市的ClickHouse社区聚会上发表
- 演示文稿材料可在GitHub上获取