HBase 与多列的一对多关系

Posted

技术标签:

【中文标题】HBase 与多列的一对多关系【英文标题】:HBase one-to-many relationship with multiple columns 【发布时间】:2019-07-18 10:21:42 【问题描述】:

我一直在尝试使用 HBase 一对多关系存储。考虑一下,我有 Person 表来维护他/她的贷款。一个人可以有多个贷款,我需要存储贷款及其类型。

我已经完成了给出here 和here 的示例,基于我将贷款作为列族,贷款(具有唯一ID)作为列,并将其类型作为值。下面是我的 Person 表结构

ROW     COLUMN+CELL
dinesh  column=loan:DFGHBCN, timestamp=1563443783271, value=home
dinesh  column=loan:FBCPOIBAMN,timestamp=1563443796628, value=personal
dinesh  column=loan:XPABSTWLMN,timestamp=1563443815217,value=personal

我想从这张表中获取拥有特定贷款的人。 我做不到。所以我改变了如下结构-

ROW     COLUMN+CELL
dinesh  column=loan:loan_1, timestamp=1563443783271, value=DFGHBCN
dinesh  column=loan:type_1, timestamp=1563443783271, value=home
dinesh  column=loan:loan_2,timestamp=1563443796628, value=FBCPOIBAMN
dinesh  column=loan:type_2,timestamp=1563443796628, value=personal
dinesh  column=loan:loan_3,timestamp=1563443815217,value=XPABSTWLMN
dinesh  column=loan:type_3,timestamp=1563443815217,value=personal

我可以使用 ColumnPrefixFilter 获取人名。我需要以下方面的帮助

    如何在 HBase 中实现与多个列的一对多关系以及如何存储它们? 是否有任何查询可以通过匹配列名来获取行键?如果我能够实现,我可以修复一对多关系的第一个结构吗?

【问题讨论】:

【参考方案1】:

我正在处理第一个结构,因为我可以在 ColumnPrefixFilter 的帮助下通过匹配列名(贷款 ID)来获取行键。对此有任何建议/更改请告诉我。

【讨论】:

以上是关于HBase 与多列的一对多关系的主要内容,如果未能解决你的问题,请参考以下文章

与 NSfetchedresultscontroller 的一对多关系

CoreData 与价值的一对多关系

总结一下数据库的 一对多多对一对多对多 关系

核心数据一对多插入与现有关系swift

删除具有一对多关系的实体

Hibernate关联关系配置(一对多一对一和多对多)