问题描述
我正在考虑在HBase中实现一对多关系的最佳方法。
假设一个帐户有很多交易。更好吗
a)将列添加到交易:ACCOUNT表上的列族,即交易:1:金额,交易:2:金额
b)仅将与交易相关的每个交易的关键字存储在交易中:ACCOUNT列族,并在单独的交易表中查找每个交易吗?
解决方法
通常,选项a是更好的方法。
这使您可以轻松地一次请求一个帐户的所有交易。对于每个事务,不需要其他查找。
在某些情况下,选项b可能适用,例如对所有事务频繁运行的查询。
,我想,如果需要为“帐户”跟踪的唯一数据项是金额,则选项(a)可以。但是,如果您需要捕获许多其他数据项,即使效率不如(a),我认为我们也必须使用(b)选项
,如何使用单个列值并使用$和#等分隔符。下面是示例数据:
Column Family: Transactions
Column Value: $ transactionID:1#amount:100 $ transactionID:2#amount:200 $ transactionID:3#amount:300
现在,您可以使用$和#分隔符来获取值,并使用String数组来处理数据。