如何频繁同步市场数据并显示为历史时间序列数据

Posted

技术标签:

【中文标题】如何频繁同步市场数据并显示为历史时间序列数据【英文标题】:How to synchronize market data frequently and show as a historical timeseries data 【发布时间】:2014-08-05 00:50:11 【问题描述】:

http://pubapi.cryptsy.com/api.php?method=marketdatav2

我想持续同步市场数据(例如 cryptsy 和其他交易所)。我想定期显示来自这些交易所的各个订单的最新买入/卖出价格作为历史时间序列。

我应该使用什么后端数据库来存储和呈现或绘制检索到的数据中的任何参数作为历史时间序列数据。

【问题讨论】:

感谢您对此的任何意见 你能提供更多关于底层参数的信息吗?您表示您希望 (a) 连续同步数据,(b) 从外部来源,(c) 存储数据和 (d) 输出以各种时间序列格式呈现的数据。问题是哪个数据库可以随着数据的增加而保存这么多的数据,哪个数据库在进入时会快速更新,哪个数据库最适合时间序列数据,还是什么?到目前为止,从您的问题来看,我很难相信您确定数据一旦存储后该怎么处理。 如果您的数据已经有时间戳,为什么不直接将 JSON 推送到 CouchDB 数据库中,然后继续回答您最可能提出的问题:“检索这些数据的最佳方法是什么?” 【参考方案1】:

我建议您查看一个为处理时间序列数据而调整的数据库。浮现在脑海中的是InfluxDB。 This question 对时间序列数据库有更一般的看法。

【讨论】:

【参考方案2】:

我认为它需要有关要求的更多详细信息。 它只是描述,“它需要同步时间序列数据”。什么是情景?什么是数据源和目标?

选项 1。

如果只是两个数据基础之间的数据同步问题,最简单的解决方案是 CouchDB NoSQL 系列(CouchDB、CouchBase、Cloudant)

它们都是基于 CouchDB 的,无论如何它们都提供数据中心级别的数据复制功能 (XCDR)。因此,您可以将日期复制到其他数据中心的其他 couchDB,甚至可以复制到移动设备中的 couchDB。

希望对你有用。

选项 2。

其他方法是数据集成方法。您可以使用 ETL 批处理作业同步数据。批处理工作者可以定期将数据复制到目的地。将数据复制到其他目的地是最常见的方式。它支持ETL线Pentaho ETL,Spring Integration,Apache Camel的工具很多。

如果您提供更详细的场景,我可以更详细地帮助您

享受 -特里

【讨论】:

Couchbase 是基于 CouchDB 上的 Membase not。它们是截然不同的技术。 couchbase.com/couchbase-vs-couchdb【参考方案3】:

我认为 mongoDB 是一个不错的选择。原因如下:

    您可以轻松横向扩展,从而能够存储大量数据。使用相应的分片键时,您甚至可以将分片放置在它们所遵循的交易所附近以提高速度,如果这应该成为一个问题的话。 副本集提供自动故障转移,这可能是一个隐含的问题 使用 TTL 功能,可以在 TTL 之后自动删除数据,有效地创建循环数据库。 聚合和 map/reduce 框架都会有所帮助 MongoDB 大学提供一些免费课程,可以防止您避免最常见的陷阱

【讨论】:

以上是关于如何频繁同步市场数据并显示为历史时间序列数据的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript二进制数据序列化和反序列化

如何在Postgresql中创建序列数并应用在数据表

如何在Postgresql中创建序列数并应用在数据表

xts包:时间序列分析利器

问题7:如何实现用户的历史记录功能(最多n条)

从 CPU 使用率中位数的子查询中选择前 10 名,并使用 Influx 显示时间序列数据