Sqoop --hbase-row-key选项是否支持多列组合

时间:2013-08-08 07:30:47

标签: hbase sqoop

我使用sqoop将mysql表导入HBase。通常,HBase的行键不仅由一列组成,它通常是两列或三列+时间戳的组合,例如, row key = ${col1}${col2}${timestamp}

我无法使用sqoop工作,只是想知道sqoop --hbase-row-key是否允许我在导入期间执行类似--hbase-row-key=col1, col2, tiemstamp的操作,然后我的HBase行键最终会有三个字段组合

3 个答案:

答案 0 :(得分:2)

我自己找到了答案:

在sqoop 1.4.4中添加了复合键: http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html#idp3672480

答案 1 :(得分:1)

此命令似乎将复合键导入hbase

sqoop \
import --verbose \
--connect "yourDatabase" \
--username yourUser \
--password-file yourPassword.password \
--table originTable \
--hbase-create-table \ 
--hbase-table destinationTable \
--column-family yourFamily \
--hbase-row-key keyExample1,keyExample2 

然而,在我看来,这个命令有2个问题。 正如有些人指出的那样,新的键列只是一个带下划线的串联,即--hbase-row-key定义的分隔。 除了从导入的数据中删除指定为行键的原始列,并且只在新表上插入复合键。

答案 2 :(得分:0)

复合键并与分隔符结合,例如:

row key = col1_col2_col3