已执行了如下所示的类似的sqoop命令。下面提到的自由格式查询,我想将其保存在一个文件中并运行sqoop命令,因为我的实时查询非常复杂且更大。
想知道,有没有一种方法可以将查询保留在文件中并执行sqoop命令,该命令将引用文件内的自由格式查询并执行? 就像我们对--password-file的情况一样。预先感谢。
sqoop import --connect "jdbc:mysql://<localhost>:port" --username "admin" --password-file "<passwordfile>" --query "select * from employee" --split-by employee_id --target-dir "<target directory>" --incremental append --check-column employee_id --last-value 0 --fields-terminated-by "|"
答案 0 :(得分:1)
为方便起见,可以使用Sqoop --options-file
参数读取不方便输入命令的命令行选项,因此您可以使用选项文件读取查询。使用选项文件,Sqoop命令应与此类似:
sqoop import --connect $connect_string --username $username --password $pwd --options-file /home/user/sqoop_poc/query.txt --target-dir $target_dir --m 1
选项文件中的条目应如下所示:
--query
select * from TEST_OPTION where ID <= 10 AND $CONDITIONS
有关选项文件的更多详细信息,请参见Sqoop User Guide。