我试图弄清楚这些新奇的数据存储,如 bigtable、hbase 和 cassandra 到底是什么。
我处理大量的股票市场数据,数十亿行的价格/报价数据,每天可以添加多达 100 GB 的数据(尽管这些文本文件通常至少压缩一个数量级)。这些数据基本上是一些数字、两三个短字符串和一个时间戳(通常是毫秒级)。如果我必须为每一行选择一个唯一标识符,我将不得不选择整行(因为交换可能会在同一毫秒内为同一符号生成多个值)。
我想将这些数据映射到 bigtable(我包括它的派生词)的最简单方法是通过符号名称和日期(这可能会返回一个非常大的时间序列,超过一百万个数据点并非闻所未闻)。从阅读他们的描述来看,这些系统似乎可以使用多个键。我还假设十进制数字不是键的好候选者。
其中一些系统(例如 Cassandra)声称能够进行范围查询。例如,我是否能够在上午 11:00 到下午 1:30 之间有效地查询给定日期的 MSFT 的所有值?
如果我想搜索给定日期的所有符号,并请求价格在 10 美元到 10.25 美元之间的所有符号(所以我正在搜索值,并希望返回键作为结果)怎么办?
如果我想得到两个时间序列,从另一个中减去一个,然后返回两个时间序列及其结果,我是否必须在我自己的程序中执行他的逻辑?
阅读相关论文似乎表明这些系统不太适合大规模时间序列系统。但是,如果像谷歌地图这样的系统是基于它们的,我认为时间序列应该也可以工作。例如,将时间视为 x 轴,将价格视为 y 轴,将符号视为命名位置——突然之间,bigtable 似乎应该是时间序列的理想存储(如果可以存储、检索整个地球) ,缩放和注释,股市数据应该是微不足道的)。
一些专家可以指出我正确的方向或消除任何误解。
谢谢