2017-11-18 167 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版本? –