【发布时间】:2013-07-31 22:52:38
【问题描述】:
我最近从 rdbms 切换到 Hbase 来处理数百万条记录。但是作为一个新手,我不确定设计 Hbase 方案的有效方法是什么。实际上,场景是我有文本文件,其中包含我必须读取并存储到 Hbase 中的成百上千和数百万条记录。因此,有两组文本文件(RawData 文件、标签文件)彼此链接,因为它们属于同一个用户,对于这些文件,我制作了两个单独的表(RawData 和标签)并且我将它们的信息存储在那里.所以 RawData 文件和 RawData 表看起来像这样:
所以你可以在我的 RawData 表中看到我有行键,它实际上是文本文件 (01-01-All-Data.txt) 的文件名,其中包含文本文件每行的行号。列族只是随机的“r”,列限定符是文本文件的列,值是列的值。这就是我在表中插入记录的方式,并且我有第三个表(MapFile),其中我将文本文件的名称存储为行键用户 ID 作为列限定符,并将文本文件的记录总数存储为值,如下所示:
01-01-All-Data.txt column=m:1, timestamp=1375189274467, value=146209
我将使用 Mapfile 表来逐行读取 RawData 表。
您对这种 Hbase Schema 有什么建议?这是正确的方法吗?还是在 Hbase 概念中没有意义?
此外,值得一提的是,在 Hbase 中插入 146207 行的 21 mbs 文件大约需要 3 分钟。
请指教。
谢谢
【问题讨论】:
-
看看这个:java.dzone.com/videos/hbase-schema-design-things-you 它将帮助您正确选择架构
-
更新了@Udy 提到的视频链接:youtube.com/watch?v=_HLoH_PgrLk