最近折腾了一个小项目 https://cryptopricedata.com/ ,主要是提供加密货币的历史 K 线数据( OHLCV ),供做交易策略、回测或者研究用。目前数据量已经有点上来了,遇到了一些存储和查询性能的问题,想请教下大家的经验。
目前的技术方案: 数据源:从多个交易所拉取 K 线数据,按交易对、时间粒度存储 存储:最开始是用 MySQL ,后来数据量上来后改成了 PostgreSQL + TimescaleDB API 提供:FastAPI + Redis 缓存 目前遇到的问题: 查询性能:对于大量历史数据(比如拉取某个币对过去几年的分钟级 K 线),查询速度不够理想,即使加了索引和分区,某些查询还是会比较慢。 数据更新:K 线数据是不断增量更新的,插入新数据的效率也是个问题。特别是有些交易所有时会补充历史数据,导致需要做去重和合并处理。 存储优化:TimescaleDB 的压缩功能用过,但效果一般。想知道有没有更好的存储结构或者方案? V 站里做量化或者大规模时序数据存储的朋友,有没有类似的经验?有没有推荐的架构或者数据库方案?欢迎讨论,也欢迎拍砖! 😃
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.