У меня есть требование.
Мне нужно получить данные из базы данных Teradata a в Hadoop.
У меня есть доступ только для просмотра в этой базе данных, и мне нужно извлечь данные из этого представления. Поскольку у меня нет доступа на чтение / запись к этой базе данных. Я не могу использовать опцию --split-by column в моем запросе импорта sqoop.
Так что есть вариант, где я могу сказать 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