DoubleCloud 即将停止运营。利用限时免费迁移服务迁移到 ClickHouse。立即联系我们 ->->

博客 / 用户案例

Coinpaprika 使用 ClickHouse 聚合来自数百家加密货币交易所的定价数据

author avatar
Elissa Weve
2023年5月5日

Coinpaprika 是领先的加密货币市场数据平台,为用户提供对数百家交易所中众多加密货币的价格数据、历史趋势、市值、交易量和其他相关指标的全面洞察。通过使用开放 API 直接连接到近 370 家交易所,并积极致力于整合去中心化交易所,Coinpaprika 旨在为开发者、投资者和企业提供用户友好、透明且可靠的加密货币领域信息来源。

从 InfluxDB 迁移到 ClickHouse 以提高性能和可扩展性

在采用 ClickHouse 之前,Coinpaprika 使用 InfluxDB 存储其时间序列数据,并使用 MySQL 存储事务数据。然而,随着数据量的增长,他们遇到了 InfluxDB 的一些挑战。团队难以从系统中获取有用的指标,并且扩展查询的时间范围经常导致服务器过载。此外,由于合并数据块,他们还遇到了响应时间问题。InfluxDB 的开源版本缺乏内置的复制和可扩展性,而这对 Coinpaprika 的基础设施至关重要。

Coinpaprika 的首席执行官兼联合创始人 Radosław Wesołowski 描述了他们评估各种时间序列数据库以增强平台功能的过程:“我们决定查看不同的供应商,例如 TimescaleDB、CockroachDB 和 ClickHouse,但在进行了一些初步测试后,我们认为 ClickHouse 是这些供应商中最好的选择。”

选择 ClickHouse 作为其时间序列数据库的决定并非轻率之举。Coinpaprika 在其决策过程中评估了几个因素,包括

  • 活动部件和组件的数量 - Coinpaprika 更偏爱 ClickHouse 的单二进制架构,而不是 TimescaleDB 的多层架构。
  • 社交媒体上的媒体报道 - ClickHouse 获得了 Cloudflare 和 Uber 等大公司的认可。
  • 培训资料的可用性 - Coinpaprika 发现有充足的资源来支持他们的学习。
  • Slack 社区 - ClickHouse 社区提供了宝贵的帮助和知识。
  • 存储大小和查询吞吐量 - ClickHouse 展示了令人印象深刻的性能指标,符合 Coinpaprika 的需求。
  • 销售团队的参与 - Coinpaprika 希望尽可能地自主完成,而竞争对手似乎急于转向企业解决方案。
  • 技术的成熟度和工具 - ClickHouse 提供了一个成熟且功能丰富的技术栈。

自从切换到 ClickHouse 以来,该平台的性能、查询并发性和可扩展性得到了显著提升。他们仅用三个月时间就使用 ClickHouse 开发了产品的初始版本。在此过程中,他们尝试了不同的编解码器并优化了数据结构。在成功完成初始设置后,他们决定将所有数据迁移到 ClickHouse。

Coinpaprika 的 Go 和 Gorm 与 ClickHouse 的集成

Coinpaprika 基础设施的一个重要方面是他们选择的编程语言和工具。该平台 99% 基于 Go,并且他们使用名为 Gorm 的开源 ORM 以及官方 ClickHouse 客户端。此设置使他们能够与 ClickHouse 无缝集成,从而简化了构建和维护其解决方案的过程。Gorm 提供的开箱即用的支持使团队能够快速便捷地实现其需求。

Coinpaprika 的架构:平衡公共和私有基础设施

Coinpaprika 系统设计由分布在公共和私有基础设施中的许多服务组成。为了优化成本,大多数 CPU 和磁盘密集型部分都托管在本地。面向消费者的界面(低延迟)为了获得最佳用户体验而分布在全球的公共云基础设施中。

coinpaprika_image1_ba97a93793.png

在 Coinpaprika 使用 ClickHouse 增强性能和查询并发性

即使在查询并发性较高的情况下,ClickHouse 仍能提供低延迟的能力对于 Coinpaprika 至关重要,因为他们需要有效地处理每秒约 150 个请求。使用市场上的替代解决方案很难达到这种性能水平。ClickHouse 的高并发性确保 Coinpaprika 可以持续地为用户提供准确、最新的数据。此外,物化视图和预计算聚合有助于优化数据存储和检索,从而提高免费用户和付费用户查询历史信息的性能。

coinpaprika_image2.png Grafana 仪表板显示了一天中典型的查询分布。平均查询时间约为 7 毫秒,这保证了他们的客户获得最佳的开发者体验。

Coinpaprika 选择采用 ClickHouse 作为其时间序列数据库,极大地提高了其平台的功能。增强的性能、查询并发性和可扩展性优势使 Coinpaprika 能够为加密货币领域的开发者、投资者和企业提供可靠且用户友好的体验。与现有 Go 和 Gorm 基础设施的无缝集成进一步优化了其开发流程。随着加密货币市场的不断发展,Coinpaprika 可以自信地依靠 ClickHouse 强大而灵活的数据存储解决方案来支持其增长,并保持其作为领先的市场数据平台的地位。

了解更多信息:https://coinpaprika.com/

分享此文章

订阅我们的时事通讯

随时了解功能发布、产品路线图、支持和云产品信息!
正在加载表单...
关注我们
Twitter imageSlack imageGitHub image
Telegram imageMeetup imageRss image