从非默认模式 Netezza 导入 Sqoop

Sqoop import from NON-DEFAULT schema Netezza

我想使用以下命令在特定的非默认架构中导入 Netezza table:

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: ERROR: relation does not exist NZDATABASE.ADMIN.MY_SCHEMA.MY_TABLE

版本:

我没有测试它的环境,但您可以尝试另外两个选项:

  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
  1. 将 --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