我很开心学习Hadoop及其周围的各种项目,目前有两种不同的策略,我正在考虑构建一个系统来存储大量的市场报价数据,我刚刚开始使用Hadoop/HDSF和HBase,但希望有人可以帮助我种植系统种子,以后我不会再使用这些技术来垃圾。下面概述了我的系统和需求以及一些查询和数据使用用例,最后是我目前关于从我读过的小文档中找到最佳方法的想法。这是一个开放式问题,我很乐意喜欢任何有洞察力的答案,并接受最好的答案,随时评论下面的任何或全部要点。 - 邓肯克雷布斯使用Hadoop存储股票市场报价数据
系统要求 - 能够利用数据存储系统的历史反向测试,历史数据制图和未来的数据挖掘。一旦存储,数据将永远是只读的,快速数据访问是理想的,但不是回测时必需的。
静态模式 - 很简单,我想捕捉3种消息从饲料:
- 时间戳,包括日期,星期,时间
- 报价,包括符号,时间戳,问,askSize,投标,bidSize,体积....(约40数据的列)
- 贸易,包括符号,时间戳,价格,尺寸,交换....(数据约20列)
数据插入用例 - 无论是从数据或查找的实时市场数据流通过经纪人API
数据查询用例 - 下面展示了我怎么想查询逻辑我的数据。
Get me all Quotes,Trades,Timestamps for GOOG on 9/22/2014
Get me all Trades for GOOG,FB BEFORE 9/1/2014 AND AFTER 5/1/2014
Get me the number of trades for these 50 symbols for each day over the last 90 days.
通过分布式代理从原始市场数据生成元数据。例如,编写一份工作计算所有股票和存储在数据库中的所有会话在1分钟内的平均交易量。为每个股票/会话创建一个代理,让我告诉它应该计算这个值的股票和会话。 (这是什么的MapReduce可以做???)
在我可以添加自己的util的代码,以便使用上面的情况,例如可以发布它的值写入中央回购或消息服务器代理的类路径?我可以将代理部署为OSGI捆绑包吗?
为不同类型的指标和评分创建不同类型的代理,每天早上在交易前市场交易前执行?
圣杯 - 可MapReduce的用于使用情况下,像这些下面??
高频交易
我也有兴趣,如果任何人都可以分享的高频交易系统的情况下使用Hadoop的一些经验。刚开始使用这项技术,我的初衷是Hadoop可以非常适合存储和处理大量的历史数据,如果有人正在使用它进行实时交易,我会对更多的学习感兴趣! - Duncan Krebs
你能分享一下你的意思吗?HFT-- hadoop并不意味着实时处理一般。由于大部分内存处理,Spark的性能会更好,但大多数HFT(取决于您的时间表)都需要您避免磁盘/删除网络。再次,这取决于你的时间表HFT。 – 2014-09-23 00:20:52
嗨,ali haider,这也是我的感觉,HFT生态系统中的hadoop最适合存储来自实时流或历史查询的滴答数据。我只是好奇,人们是否将它用于诸如日内刻度数据存储之类的事物,这些数据在整个细分市场上实时分析,这些数据在记忆中变得困难。感谢您的评论 - 将看看星火喂养我的好奇心。 – 2014-09-23 00:31:02
您可以通过火花更轻松地解决Diska和内存存储之间的问题。使用Hadoop,您可能需要查看内存中的数据网格(或者最好是大型RAM节点上的堆外存储器),以解决您正在尝试执行的操作。 – 2014-09-23 00:34:35