2017-12-14 9 views
0

- 増分sqoopインポートスイッチは、SQOOPを介したHIVEインポートでは機能しません。しかし、その回避策は何ですか?HIVEテーブルへの増分sqoop

1)私が作ることのできることの1つは、HIVEテーブルを作成し、SQOOPを通じてHDFSにインクリメンタルデータを持ち込み、手動でロードできることです。しかし、我々がそれをしているときは、毎回それが読み込まれ、データは上書きされます。私が間違っていれば私を修正してください。

2)データをHIVEにsqoopingすると、どのように効果的ですか?

以下、あなたはハイブテーブルにsqoop増分追記を行うことができますが、何のストレートオプションはありませんあなた

答えて

2

ありがとうは、あなたがそれを達成することができる方法の一つです。

Hiveにインクリメンタルテーブルを外部テーブルとして格納します。 最後に増分データを更新してからマージすると、増分変更をインポートする方が一般的です。次の例では、最後の増分データの日付であるlast_import_dateより新しいレコードをフェッチするために--check-更新:

sqoop import --connect jdbc:teradata://{host name}/Database=retail —connection manager org.apache.sqoop.teradata.TeradataConnManager --username dbc -password dbc --table SOURCE_TBL --target-dir /user/hive/incremental_table -m 1 --check-column modified_date --incremental lastmodified --last-value {last_import_date} 

あなたの質問の後半部分

クエリもRDBMSのテーブルと柔軟性にに参加するあなたの基本的なの柔軟性を与えるあなたは急襲のインポートに活用することができる非常に便利な引数であり、日付と時刻の形式で再生します。私があなたの靴の中にいたなら、私は必要な方法でデータをインポートし、元のテーブルに追加して、一時テーブルからメインテーブルにロードしながら、データでさらにプレイできるようにクエリを使用します。更新があまり頻繁でない場合は、私はクエリを使用することをお勧めします。

+0

--incrementalは、HDFSにデータを格納し、次にHIVE EXTテーブルにロードするという点では機能しますが、これはわかります。しかし、sqoopがHIVEテーブルを作成している間に--incrementをSQOOP経由で直接使用できるかどうかを調べていました。私はその可能性はないと思う。私は思う - あなたのコメント – user3521180

関連する問題