【发布时间】:2014-01-25 06:30:36
【问题描述】:
我正在寻找有关 HBase 的帮助(对它来说还很新,并试图了解我是否可以将它用于我的 POC)。
用例: 我需要一个历史价格数据表,例如将存储 10 个不同索引的数据。其中一项要求是跟踪或审计对成分股或股票或工具的任何属性所做的更改。 另外,如果我想找到在 2010 年 1 月的月份中价格变化差异为 n% 的工具列表。
数据例如(一些可能性) (下面提到的列只是为了说明)
date instrument high low mid user ts
20130101 goog 34 33.4 33.8 system 10:30
20130101 yhoo 24 23.4 23.8 system 10:50
20130101 goog 34.1 33.3 33.8 ops 10:55
20130101 msft 134 133.4 133.8 system 11:00
20130101 msft 134 133.9 133.8 ops 11:30
20130101 goog 34.1 33.3 34.1 ops 11:30
20130101 aapl 48 48.4 47.9 system 11:30
类似的数据将用于后续日期。请注意,一天之内,任何用户都可能更改工具的属性/属性值(如 goog、msft 所示),而有些用户则完全没有变化(aapl、yhoo)。
我可以用来存储这些数据并且从中检索也很容易的最佳数据模型是什么?
如果 HBase 有复合行键(如果有,请帮助我使用语法),那么我可以有类似的东西,
ROW COLUMN+CELL
goog-20130101 column=cf1:h1, timestamp=1389020633920, value=34
goog-20130101 column=cf1:h2, timestamp=1389020654614, value=34.1
goog-20130101 column=cf1:h3, timestamp=1389020668338, value=34.1
goog-20130101 column=cf1:l1, timestamp=1389020633920, value=33.4
goog-20130101 column=cf1:l2, timestamp=1389020654614, value=33.8
goog-20130101 column=cf1:l3, timestamp=1389020668338, value=33.3
goog-20130101 column=cf1:u1, timestamp=1389020633920, value=system
goog-20130101 column=cf1:u2, timestamp=1389020654614, value=ops
goog-20130101 column=cf1:u3, timestamp=1389020668338, value=ops
aapl-20130101 column=cf1:h1, timestamp=1389020633920, value=48
aapl-20130101 column=cf1:l1, timestamp=1389020633920, value=48.4
aapl-20130101 column=cf1:u1, timestamp=1389020633920, value=system
1) 我们可以创建这样的行键吗?如何? 2)如果 rowkey 的数据已经存在(goog-20130101),例如那么在我们的例子中,我们如何将数据通知/放入相同的行键但列名更改为 h1、l1、u1?随后到 h2、l2 等。这是可以实现的吗? 3) 如何检索最新数据及其值(在约会时为 goog 打个招呼)?
或者,如果有人遇到过此类数据(您可以在其中跟踪用户/对象的多个事件/活动一天并存储任何内容),可以就适合 HBase 的更好模型提出建议。
提前感谢您的帮助。
【问题讨论】: