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。
我正在尝试将一些大型 .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。