我正在尝试使用自由格式查询执行sqoop作业增量导入。这是使用的查询
sqoop job --create importjobinl -- import --connect jdbc:mysql://localhost/test --username training --password training --query 'select id,name,unix_timestamp(time_updated) from intest where $CONDITIONS' --target-dir /user/new/lll/`date +%d%T|sed 's/://g'` -m 1 --check-column time_updated --incremental append --last-value '1441526438'
作业没有被创建它显示。
Incremental imports require a table.
Try --help for usage instructions.
当我使用--table
intest而不是--query
时,它会起作用,但我想使用--query
使用unix_timestamp将日期转换为epochtime,因为mysql表中的值是yyyy- mm-dd格式
使用的版本:Sqoop 1.2.0-cdh3u0
答案 0 :(得分:0)
Sqoop 1.4.2添加了免费表单查询的Sqoop增量导入 JIRA链接:Sqoop Incremental import Support for free form queries
由于您使用的是Sqoop 1.2.0,因此您可能无法使用此功能
答案 1 :(得分:0)
运行以下语句,以增加加载到您的hive表,其中包括免费查询。
sqoop import --connect jdbc:mysql://localhost/test --username training --password training --query "select * from intest where $CONDITIONS" --hive-import --hive-table db_name_x.table_name_x --incremental lastmodified -check-column date_x --target-dir /user/xyz -m 1