HBase 复合行键格式

HBase composite row key format

我正在尝试将一些大型 .csv 文件导入 HBase(总计 >1TB)。数据看起来像是来自关系数据库的转储,但没有 UID。我也不想导入所有列。我决定首先需要 运行 一个自定义 MapReduce 作业,以将它们转换为所需的格式(select 列 + 生成 UID),以便我可以使用标准 hbase importtsv 批量导入来导入它们。

我的问题:我是否可以只创建自己的复合行键,比如使用 MapReduce storeID:year:UID,然后将其提供给 tsv 导入?所以说,我的数据是这样的:

row_key | price | quantity | item_id
A:2012:1|  0.99 |        1 |     001
A:2012:2|  0.99 |        2 |     012
B:2013:1|  0.99 |        1 |     004

据我了解,HBase 将所有内容都存储为字节,时间戳除外。它会明白这是一个复合键吗?!

如有任何提示,我们将不胜感激!

我在Cloudera问过同样的问题,可以找到答案here.

基本上,答案是肯定的,不需要分隔符。我使用 MapReduce 作业将数据转换为以下格式:

A2012:1,0.99,1,001 A2012:2,0.99,2,012

使用 importtsv 和 completebulkload,数据随后被正确加载到正确的 HBase 区域中。我使用 storeID (A,B,C,...) 预拆分 table。