2017-11-18 6 views
0

timestamp以外のカラム値を使用してsqoopのインポートを自動化する方法はありますか?テーブルに1列(ID)を使用しようとしました。しかし、それは動作しませんでした。以下はサンプルコードです。私はcloudera hadoop UIを使用して自動化しています。問題は、最後の値が自動的に更新されないことです。以下cloudera hadoop UIを使用してsqoopインクリメンタルを自動化

  import 
     --connect 
     jdbc:mysql://172.26.122.123:3306/books 
     --username 
     hadoop 
     --password 
     ******** 
     --incremental 
     append 
     --check-column 
     id 
     --last-value 
     0 
     --table 
     authors 
     --as-textfile 
     --fields-terminated-by 
     "," 
     --null-string 
     \0 
     --null-non-string 
     \0 
     --target-dir 
     /user/thilina_08838/source/test 
     -m 
     1 

----------- + ------------- + ------ + + MySQLのテーブル の構造であります - ---- + --------- + ------- + |フィールド|タイプ| Null |キー|デフォルト|余分な| + ----------- + ------------- + ------ + ----- + --------- + ------- + | id | int(11)|はい| NULL | | |名前| varchar(20)|はい| NULL | | |電子メール| varchar(20)|はい| NULL | | |タイムスタンプ|日時|はい| NULL | | + ----------- + ------------- + ------ + ----- + --------- + ------- +

答えて

0

保存されたsqoopインポートジョブを使用して簡単に自動化することができます。

sqoop job --create jobname --import --connect 
    jdbc:mysql://172.26.122.123:3306/books 
    --username 
    hadoop 
    --password 
    ******** 
    --incremental 
    append 
    --check-column 
    id 
    --last-value 
    0 
    --table 
    authors 
    --as-textfile 
    --fields-terminated-by 
    "," 
    --null-string 
    \0 
    --null-non-string 
    \0 
    --target-dir 
    /user/thilina_08838/source/test 
    -m 
    1 

あなたの増分リフレッシュの頻度に応じて、cronジョブやETLワークフローを入れて、その中にsqoop --exec jobnameを呼び出すことができます。

詳細は下記を参照してください。

Sqoop saved job documentation

+0

我々はClouderaのHadoopののoozieのUIでそれを行うことができますどのように? –

+0

あなたはどのクロウデラバージョンを使用していますか? –

関連する問題