gpt4 book ai didi

hadoop - HBase - 如何在表中嵌套实体两(+)层?

转载 作者:可可西里 更新时间:2023-11-01 15:06:25 27 4
gpt4 key购买 nike

我正在审查这个 slide show [幻灯片 134](HBase Con 2012 上的 Ian Varely/salesforce.com)他指出您可以将实体嵌套两层深。

这是他给出的嵌套实体一层深的示例:

实体:乐队、演出; Band 1:M 显示的位置。

Table: Band
CF:"CF"
Qualifiers:
"Name":<name>
"Genre":<genre>
"Show_<id>":venue_<id>_date_<date>_start_time_<start_time>_cover_price_<cover_price>

但是,他没有举例说明如何嵌套两层。幻灯片 134 中我最好的嘉宾是下面这样的人......

实体:客户、 session 、与会者;其中客户 1:M session 和 session 1:M 与会者。

Table: Customer
CF: "CF"
Qualifiers:
"Company_name":<company_name>
"Capacity":<capacity>
"Meeting_<id>":host_<id>_start_time_<start_time>_attendee_<id>_attendee_join_time_<join_time>

然而,meeting 实体的属性(host_id、start_time)在每一列中都不必要地重复。将 meeting 属性移动到它的键可以维持问题:

"Meeting_<id>_host_<id>_start_time_<start_time>":attendee_<id>_attendee_join_time_<join_time>

这是我想到的另一个似乎更有意义的选项,使用 JSON:

"Meeting_<id>_host_<id>_start_time_<start_time>":[{attendee_id:<id>,join_time:<time>}, ..]

但是,为什么不只使用一列作为包含 session 和列的巨大 JSON 字符串呢?

这就是在 HBase 模式中嵌套两层的意思,还是有更好的方法来做到这一点?

最佳答案

使用简单的序列化格式(如 JSON)来存储嵌套数据,而不是一些自定义的下划线分隔字符串。在您的示例中,Customer 1:M Meetings 和 Meetings 1:M Atendees,您首先需要确定所需的单元粒度类型。

对于单个客户,每个与会者都应该在自己的单元格中吗?或者让每个 session 都在自己的单元格中是否足够精细?

您可以像这样使用列限定符:

meeting:17          (Meeting 17)
attendee:17:5 (Meeting 17, Attendee 5)

关于hadoop - HBase - 如何在表中嵌套实体两(+)层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22544802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com