【发布时间】:2020-05-21 20:21:56
【问题描述】:
我正在尝试使用 AWS Glue 将数据从我的本地 Netezza 数据库提取到 S3。到目前为止我写的代码(不完整)
df = glueContext.read.format("jdbc")\
.option("driver", "org.netezza.Driver")\
.option("url", "jdbc:netezza://NetezzaHost01:5480/Netezza_DB")\
.option("dbtable", "ADMIN.table1")\
.option("user", "myUser")\
.option("password", "myPassword")\
.load()
print(df.count())
我正在使用自定义 JDBC 驱动程序 jar,因为 AWS Glue 本身不支持 Netezza(驱动程序由 IBM 提供)并在触发作业时将其指定为依赖项。
此代码不断失败并出现超时错误:
py4j.protocol.Py4JJavaError: An error occurred while calling o68.load.
: org.netezza.error.NzSQLException: Connection timed out (Connection timed out)
我尝试过的一些方法不起作用: - 使用火花代替胶水阅读 - 使用非常小的表(
我应该补充一点,Netezza 数据库位于公司防火墙后面,但在使用自定义驱动程序时,我看不到任何用于指定安全组的选项(就像您可以使用 Glue 本机连接一样)。
有什么想法吗?
【问题讨论】: