2

sqoop を使用して mysql テーブルを HBase にインポートしています。通常、HBase の行キーは 1 つの列だけで構成されるのではなく、通常は 2 つまたは 3 つの列 + タイムスタンプの組み合わせrow key = ${col1}${col2}${timestamp}です。

sqoop を使用して動作させることができません--hbase-row-key=col1, col2, tiemstamp。インポート中に sqoop --hbase-row-key を使用すると、HBase の行キーが 3 つのフィールドの組み合わせになってしまうのでしょうか?

4

3 に答える 3

2

私は自分で答えを見つけました:

複合キーは 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 

ただし、このコマンドには 2 つの問題があります。一部の人々が指摘しているように、新しいキー列は、--hbase-row-key定義されたものを分離するためのアンダースコアとの単なる連結です。行キーとして指定された元の列に加えて、インポートされたデータから削除され、複合キーだけが新しいテーブルに挿入されます。

于 2016-06-06T08:26:43.043 に答える