我们很荣幸地邀请到了 OpenMeter 首席执行官兼联合创始人 Peter Marton,他在最近的旧金山 ClickHouse 聚会上分享了公司的数据摄取方法,重点介绍了他们的 Kafka + ClickHouse 架构。 点击这里观看 ClickHouse 旧金山聚会视频.
OpenMeter 帮助 AI 和云计算公司采用基于使用量的定价模式。为了满足 AI 企业的需求并实现实时用例(如使用量限制执行),OpenMeter 团队在 ClickHouse Cloud 之上开发了一个可扩展的、强大的计量系统,能够处理每秒数百万计费事件。如今,基于使用量的定价和计费对于许多云基础设施、开发人员工具和 AI SaaS 服务至关重要。然而,许多采用这种方法的公司在确保精确计量以实现准确计费和提供实时使用量反馈方面面临着挑战。
Peter 将其在可观察性和基础设施方面的背景归功于开发 OpenMeter 的想法。在他任职于 Stripe 期间,他意识到由于缺乏标准化计量,从基础设施组件收集使用量数据的难度。高质量数据至关重要,但收集、聚合和分析使用量既耗时又费力。随着 AI 和基于使用量的定价模式的不断采用,计量已成为为计费、成本和收入运营提供支持的关键。这种认识促使开发了 OpenMeter,这是一个开源平台,提供实时计量和计费解决方案。
旧金山聚会的演讲探讨了计量的一些挑战。数据需要被收集、清理、标准化为相同的“滚动窗口”,去重,并长期保存。与 DevOps 收集的可观察性指标不同,数据在摄取时不能被采样,也不能在一段时间后汇总。
在使用 ClickHouse 之前,OpenMeter 的架构价格昂贵且难以维护,尤其是在平台用户数量不断增长的情况下。它基于 Kafka 进行事件流式传输,ksqlDB 进行聚合到一分钟的滚动窗口,以及 Postgres 用于存储预聚合的事件。这种方法存在一些挑战,主要源于 ksqlDB 不支持集群化,因此团队不得不手动进行分片并运行多个独立的 ksqlDB 实例,这在资源和运营方面都非常复杂。
对于新的架构,确定了强大的可扩展的计量事件收集作为关键需求。而且,在此数据之上快速聚合搜索结果是至关重要的,因为客户想要在面向客户的仪表板中实时了解使用量对成本的影响。
OpenMeter 最终采用的技术架构基于 Kafka 进行事件缓冲和管理反压,修改后的 ClickHouse Kafka Connect Sink 用于处理事件去重,以及 ClickHouse 物化视图 与 AggregatingMergeTree 表引擎 用于将原始事件转换为滚动窗口,以及用于长期分析数据的存储。Peter 强调了去重和批处理数据处理的一些复杂之处,并强调了使用针对每个客户进行分区的分区 Kafka 主题。
总而言之,这场演讲非常实用地介绍了 OpenMeter 如何解决大规模摄取计量事件的一些关键挑战,展示了 OpenMeter 如何克服挑战并使用 Kafka 和 ClickHouse 优化其架构。他们现在拥有一个强大的数据库摄取架构,适用于其实时分析用例,并能够满足客户不断变化的需求。