HBase一对多的“关系”存储

问题描述

我正在考虑在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数组来处理数据。