2

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

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

4

3 回答 3

2

I found the answer myself:

composite keys were added in sqoop 1.4.4: http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html#idp3672480

于 2013-08-09T04:27:29.933 回答
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 

然而,我认为这个命令有两个问题。正如一些人指出的那样,新的键列只是一个连接,下划线作为--hbase-row-key定义的分隔。除了从导入的数据中删除指定为行键的原始列之外,仅在新表中插入复合键。

于 2016-06-06T08:26:43.043 回答
0

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

row key = col1_col2_col3
于 2016-02-03T09:38:45.917 回答