Импорт Sqoop из NON-DEFAULT схемы Netezza - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу импортировать таблицу Netezza в определенной схеме, отличной от схемы по умолчанию, с помощью следующей команды:

sqoop import \
    --connect jdbc:netezza://netezza-host-name:5480/NZDATABASE \
    --table MY_SCHEMA.MY_TABLE \
    --username user \
    -P \
    --hive-import \
    --hive-database demo \
    --create-hive-table \
    --hive-table MY_NEW_TABLE

Однако это не удается, поскольку проверяется только схема по умолчанию "ADMIN":

org.netezza.error.NzSQLException: ОШИБКА: отношение не существует NZDATABASE.ADMIN.MY_SCHEMA.MY_TABLE

версии:

  • Sqoop 1.4.7
  • nzjdbc.jar, выпуск 7.2.1.8, драйвер

1 Ответ

0 голосов
/ 26 сентября 2019

У меня нет среды для тестирования, но есть еще два варианта, которые вы можете попробовать:

  1. Укажите имя схемы в строке подключения JDBC:
jdbc:netezza://netezza-host-name:5480/NZDATABASE?currentSchema=MY_SCHEMA

or

jdbc:netezza://netezza-host-name:5480/NZDATABASE?searchpath=MY_SCHEMA

or

jdbc:netezza://netezza-host-name:5480/NZDATABASE;schema=MY_SCHEMA
Передайте аргумент --schema в подсистему:
`-- --schema MY_TABLE` - two sets of '--' are needed there 

, поэтому полная команда будет иметь следующий вид:

sqoop import \
    --connect jdbc:netezza://netezza-host-name:5480/NZDATABASE \
    --table MY_TABLE \
    -- --schema MY_TABLE \
    --username user \
    -P \
    --hive-import \
    --hive-database demo \
    --create-hive-table \
    --hive-table MY_NEW_TABLE
...