请教一下 k 线数据的归档方案

2019-10-16 13:49:21 +08:00
 cszchen

现状

我们在做量化(目前是数字货币),每天有几个 G 的数据,以后还会更多(现在只抓了一个交易所有限的交易对),所以想线上数据库保留最近几天的数据,然后本地建一个备份(完整的),我们现在没有运维

为什么这么干

交易所都在境外,所以我们用 HK 的服务器抓数据,因为翻墙不靠谱。用的 aws 的数据库,如果不做归档,数据会非常大,直到我们负担不起,毕竟现在还没赚钱呢

我们设想的方案

我们用的是 postgresql
不论何种方案,最终的结果就是归档并删除已归档的数据,所以排除了 pg_dump、pg_dumpall

  1. wal 备份,但是问题是不能排序删除操作,所以本地数据恢复的时候也会把删除的操作给干了
  2. 用脚本扫描每一个表,根据时间点备份之前的数据,然后删除这个时间点之前的数据,本地备份机器拿到备份文件后导入到数据库,这个可行性是没问题的,但是有开发工作量,并且稳定性和可靠性没有保证

最后想到这里大神多,看看有没有更好更成熟的方案,射射大家。

436 次点击
所在节点    程序员
4 条回复
Gilgamesh7
2019-10-16 14:46:30 +08:00
把实时获取到的数据解析后放入消息队列,国内服务器或者本地解析后存储。
bebopx
2019-10-16 22:47:18 +08:00
之前做爬虫抓电商数据,存过 AWS 数据库。归档是直接压缩导到 S3 上。S3 比本地存储还便宜。不过对数据完整性要求不高。
cszchen
2019-10-17 01:48:20 +08:00
@bebopx 归档之后要删掉数据,就这一点不知道咋弄
hujianxin
2019-10-17 19:42:09 +08:00
1. 可不可以直接把抓取的数据写入消息队列,然后两头消费。你的主数据库配置一个 TTL 类似的东西就可以了。这个方案存在两个问题,第一是实时性 能不能达到你的要求,第二国内读国外的消息队列,速度能不能满意。
2. 如果第一个方案行不通的话,你自己提出来的方案二其实也是不错的。第一开发工作量不大。第二稳定性可靠性都可以通过思考容错来保证。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/609886

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX