HBase一对多'关系'存储

时间:2011-04-14 10:46:49

标签: hbase

我正在考虑在HBase中实现一对多关系的最佳方法。

说ACCOUNT有很多交易。

更好吗?

a)在ACCOUNT表上的交易:列系列中添加列,即交易:1:金额,交易:2:金额

b)仅在ACCOUNT的Transactions系列列中存储与账户相关的每个TRANSACTION的密钥,并查找在单独的TRANSACTION表上找到的每笔交易?

3 个答案:

答案 0 :(得分:5)

通常,选项a是更好的方法。

这使您可以轻松地立即请求帐户的所有交易。每次交易都不需要额外的查询。

在某些用例中,选项b可能是合适的,例如经常对所有事务运行查询。

答案 1 :(得分:0)

如果需要为Account追踪的唯一数据项是金额,我猜选项(a)就可以了。但是,如果你需要捕获许多其他数据项,我认为我们必须使用选项(b),即使它的效率低于(a)

答案 2 :(得分:0)

如何使用单个列值并使用$和#之类的分隔符。以下是样本数据:

string x = System.Configuration.ConfigurationManager.AppSettings["K1"];

现在您可以使用$和#separators来获取值并使用String数组来处理数据。