客户说|长桥科技引入阿里云ClickHouse重构行情分析业务,性能提升10倍 ...
02 业务挑战
03 早期技术架构痛点 3.1 原有存储模型 最初,长桥在香港、中国A股和新加坡市场的数据存储上使用PostgreSQL。然而,随着美股和期权业务的发展,PostgreSQL的并发写入性能不足的问题显现。为应对美股和期权数据的高读写需求,长桥分别引入了Redis和DynamoDB数据库。虽然Redis提升了性能,但为了降低成本压力选择仅存储日内行情数据,又带来了美股数据定期转储的问题,增加了业务复杂性。 3.2 存在问题
3.3 新架构选型对比 3.4 ClickHouse的性能验证 04 架构升级到阿里云ClickHouse 4.1 数据迁移 4.2 基于阿里云ClickHouse的新架构 改造后的架构如下图所示,可以看到除了原来在PostgreSQL中的新加坡、香港和A股的数据全部迁移到了ClickHouse之外,原本存放在Redis和DynamoDB的美股和期权数据也都被统一进了ClickHouse当中,得益于数据存储技术栈的统一,不同市场数据写入的目标端和数据查询的源端都得到了统一,上游的数据写入和数据清洗业务也因此得到了大幅度的简化,具体改动如下: ▶︎ 历史行情数据的存储统一进了ClickHouse当中:原先存储在PostgreSQL中的沪深市场、中国香港交易所、新加坡交易所数据,和存储在DynamoDB和Redis中的美股期权数据、美股历史数据,都迁移到了阿里云ClickHouse,利用ClickHouse的列存优势,提升存储压缩率约5倍,降低存储成本;利用写入性能优势,在未优化攒批逻辑的情况下,单表写入速度较PostgreSQL可提升10倍,轻松支持美股和美股期权百万标的并发写入量。 ▶︎ 日内行情数据的存储利用ClickHouse实现了成本优化:从单Redis存储升级为Redis+ClickHouse共同存储, Redis仍作为实时行情数据的主要存储介质,ticker级别的数据写入则升级为使用ClickHouse,降低了实时行情数据的存储成本 ▶︎ 行情数据分析业务使用ClickHouse降低了开发工作量:利用ClickHouse引擎内置的聚合函数,代替统计计算代码的定时任务,满足所有市场成交明细的写入、数据回测和简单计算分析,降低数据分析和清洗的复杂度。 05 业务价值 ▶︎ 存储成本降低4+倍:原PostgreSQL实例数据量在不含美股和期权时已达到500GB,而迁入ClickHouse后,由于与国内交易不活跃的股票k线图相同的特性,ClickHouse的列式存储和多种压缩算法的优势得以充分发挥,仅仅100GB就可以满足所有市场的数据存储,存储成本降低4+倍。 ▶︎ 写入性能提升10+倍:在未进行任何攒批逻辑优化的情况下,ClickHouse的原始单表数据写入速度相比PostgreSQL已经提升了10倍,能够轻松支撑美股期权百万标的的并发写入量,预期后续在进行攒批逻辑优化后还可以进一步提升。 ▶︎ 业务复杂度大幅降低:利用 ClickHouse 内核预置的丰富窗口函数和多样聚合函数,用ClickHouse的单表查询替代了原架构中对128张PostgreSQL表点查再结合代码的统计计算任务的形式,进行数据回测和简单计算分析,数据管理复杂度降低128倍,单次查询数据量增加到原来的300%+,数据存储技术栈从3个减少至1个。 06 总结&展望 /END/ 注册ClickHouse中国社区大使,领取认证考试券 ClickHouse社区大使计划正式启动,首批过审贡献者享原厂认证考试券! 版权声明:本文为 clickhouse 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。 评论
|