2

sqoop ジョブを使用すると、HBase への増分ロードを実行できます。--lastval

しかし、シェル スクリプトを使用して同じことを行うにはどうすればよいでしょ--lastvalうか。また、スクリプトを自動化したときにどのように取得するのでしょうか。

の保管--lastval方法と次回への受け渡し方法を意味します。

助けてくれてありがとう!!

4

1 に答える 1

3

--lastval を保存する方法と次回に渡す方法は?

--lastvalLinux または UNIX でエイリアスまたはエクスポート変数として定義します。自動化スクリプトから再試行できます

ロードが完了したら、最新の lastva lを取得して、最近の値に変更します

export lastupdatedvalue=hive -e 'select last_value from tableロジックに基づく #selection クエリ。

sqoop import --connect jdbc:mysql://localhost:3306/ydb --table <your table> --username root -P --incremental append --last-value ${lastupdatedvalue}

:

Oozie でスクープ アクションを試すことができます。動作するはずです。それ以外の場合は、スクリプトを好む場合は、oozie でシェル アクションを使用します。利用可能なコーディネーター機能を使用してスケジュールすることが可能です。

こちらもご覧ください

データの増分インポート

増分でデータをインポートするには、import コマンドで --incremental 引数を使用します。Sqoop は、チェック列の値を最新のインポートの参照値と比較します。これらの引数は、100 より大きい ID を持つすべての行をインポートします。

--incremental
--check-column id
--last-value 100

コマンドラインから増分インポートを実行すると、Sqoop は後続の増分インポートで最後の値を出力します。保存されたジョブから増分インポートを実行すると、Sqoop は保存されたジョブの最後の値を保持します。以前にインポートした行よりも新しい行のみをインポートするには、 --exec オプションを使用します。Sqoop は、指定された行 ID より大きい ID を持つ行のみをインポートします。

于 2016-09-28T10:05:13.387 に答える