2017-11-18 166 views
0

有沒有什麼辦法可以使用除時間戳以外的列值自動執行sqoop導入。我試圖在我的表格中使用一列(ID)。但它沒有奏效。以下是示例代碼,我正在使用cloudera hadoop UI進行自動化。問題是最後一個沒有自動更新的值。使用cloudera hadoop自動化sqoop增量UI

  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表 的結構+ ----------- + ------------- + ------ + - ---- + --------- + ------- + |字段|類型|空| Key |默認|額外| + ----------- + ------------- + ------ + ----- + --------- + ------- + | id | int(11)|是| | NULL | | |名稱| varchar(20)|是| | NULL | | |電子郵件| varchar(20)|是| | NULL | | |時間戳| datetime |是| | 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

你使用哪種cloudera版本? –