我有一个要求。 我需要将数据从Teradata数据库 a 获取到Hadoop中。 我只能访问该数据库中的视图,并且需要从该视图中提取数据。由于我没有对该数据库的读写权限。我无法在sqoop导入查询中使用--split-by列选项。 因此,我可以说sqoop使用数据库 b 来存储拆分数据,然后将数据移至Hadoop
查询:
sqoop import \
--connect "jdbc:sqlserver://xx.aa.dd.aa;databaseName=a" \
--connection-manager org.apache.sqoop.manager.SQLServerManager \
--username XXXX \
--password XXXX \
--num-mappers 20 \
--query "select * from (select ID,name,x,y,z from TABLE1 where DT between '2018/01/01' and '2018/01/31') as temp_table where updt_date <'2018/01/31' AND \$CONDITIONS" \
--split-by id \
--target-dir /user/XXXX/sqoop_import/XYZ/2018/TABLE1