历史股票价格等时间序列数据通常存储在RDBMS中。
我正在评估使用此数据的各种选项,可能将其存储在MarkLogic中的doc store或triple store中,并在此数据上构建一些用例和/或与doc / triple存储中存储的其他类型的数据一起构建
基本上,我正在寻找方法
我很感激这方面的任何建议。
添加了更多信息...
我试图找到一种将这些数据捕获为三元组的简洁方法。这个想法是将这些数据与其他相关数据联系起来会很好。例如,如果我们试图存储的历史股票价格是纽约证券交易所上市的汇丰银行,那么我们可以在某种程度上为汇丰银行和纽约证券交易所定义资源,并将股票价格作为文字(也许)捕获,然后将资源汇丰银行与例如,公司信息存储在dbpedia。
基本上,我所说的是创建链接数据,这样可以很容易地查询从不同来源获取的数据,并且如果可能的话,尝试使用推理。例如,如果我使用这种方法,我可以运行一个查询,例如“让我得到总部设在伦敦的公司的股票价格,其营业额超过10亿美元”。
答案 0 :(得分:2)
您有两种选择。要么每个系列都有1个大文档,要么每个价格有1个文档。不建议使用前者,因为后者可以让您更好地使用索引系统,尤其是时间戳上的范围索引。
我在使用MarkLogic的系统上工作,MarkLogic本质上是一个存储时间序列的系统。我们在系列中每个点使用了1个文档(以及系列本身的1个文档,其中"元数据",系列中所有点共有的所有信息)。我们还将1个系列的所有文件放在1个集合中。我们根据时间戳和每个系列的唯一ID使用了文档URI的命名方案,因此我们可以轻松保证文档URI的唯一性。
重要的一点是让系列点文档引用他们的系列文档(明确地或仅仅通过在同一个集合中),而不是相反。
根据查询,它取决于您的具体用例,但通常您将使用集合上的搜索约束来标识一个(或多个)系列,并使用时间戳上的范围索引来选择" slice& #34;系列中的分数。如果您有基于其值(而不是时间)选择点的用例,您可以基于时间戳,通过对值本身使用范围索引来有效地执行此操作。
答案 1 :(得分:0)
我建议将时间序列数据存储在时间序列数据库中:https://en.wikipedia.org/wiki/Time_series_database
更新1 :
您可以将HSBC定义为实体,为实体指定元数据,例如位置或人数,然后将季度收入和交易价格存储为单独的时间序列。然后,您可以运行a)按元数据标记过滤的查询,例如位置和按聚合过滤,例如MAX(价格)。我实际上也将人数作为系列存储。通过这种方式,我可以研究不同系列之间的相关性,用于研究和分析。