我有一个基本问题,我相信有一个广泛使用的模式。我正在将关系数据库转换为Accumulo存储,但在映射关联时遇到了问题。表格如下:
comments
--------------
comments_id
incident_id
comment_text
poc_id
poc
---------
poc_id
fullname
我从一个看起来很直接的Accumulo模式开始:
rowid column_family column_qualifier value
----- ------------ ---------------- -----
incident_id comments comment_text this is a comment
incident_id poc fullname bob jones
问题是每个事件可能有多个评论,每个评论都有自己的POC。如何将评论与poc关联?
有很多方法可以存储这些信息。
记住,模式不是刚性的。不同的行可以遵循不同的模式。假设你遇到了一个有几个评论的事件。条目可能如下所示:
rowID, cf:cq, v
===============
incident|<uuid1>, poc:fullname, bob jones
comment|<uuid2>, incident:key, incident|<uuid1>
comment|<uuid3>, incident:key, incident|<uuid1>
但上面的方法需要您分别对评论进行索引,这样您就可以快速找到属于特定事件的所有评论。另一种方法是为每个注释在偶发事件行中添加一个列限定符。
rowID, cf:cq, v
===============
incident|<uuid1>, comment|<uuid2>:text, my comment
incident|<uuid1>, comment|<uuid3>:text, my second comment
incident|<uuid1>, poc|<uuid4>:fullname, bob jones
incident|<uuid1>, poc|<uuid5>:fullname, john smith