从NON-DEFAULT模式Netezza导入Sqoop

问题描述 投票:0回答:1

我想使用以下命令在特定的非默认架构中导入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版驱动程序
hive sqoop netezza
1个回答
0
投票

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

  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
© www.soinside.com 2019 - 2024. All rights reserved.