是否可以在 Ubuntu 上使用 Netezza ODBC 驱动程序?

Posted

技术标签:

【中文标题】是否可以在 Ubuntu 上使用 Netezza ODBC 驱动程序?【英文标题】:Is it possible to use Netezza ODBC driver on Ubuntu? 【发布时间】:2015-03-12 22:49:15 【问题描述】:

SUSE 和 RedHat 正式支持 Netezza ODBC 驱动程序。我正在尝试让驱动程序在 Ubuntu 14.04 上运行。

我一直在通过以下方式测试连接:

sudo isql -v NZSQL

最初返回的:

[unixODBC]Error occurred while loading translation library

我尝试通过运行来调试:

sudo strace isql -v NZSQL

这表明 isql 正在搜索一个不存在的 libc.mo 文件。我可以通过将语言环境设置为 en_AU 并创建一些指向该 libc.mo 文件的符号链接来解决此问题。

现在 isql 因通信超时而失败。

目前

sudo strace isql -v NZSQL

挂了几分钟

connect(3, sa_family=AF_INET, sin_port=htons(5480), sin_addr=inet_addr("SERVER-IP-HERE"), 16) = -1 EINPROGRESS (Operation now in progress)
poll([fd=3, events=POLLOUT], 1, 4294967295) = 1 ([fd=3, revents=POLLOUT|POLLERR|POLLHUP])

然后失败

sendto(3, "\0\0\0\10\0\1\0\3", 8, MSG_NOSIGNAL, NULL, 0) = -1 ETIMEDOUT (Connection timed out)
sendto(3, "X", 1, MSG_NOSIGNAL, NULL, 0) = -1 EPIPE (Broken pipe)

这是傻事吗?有没有人在 Ubuntu 上成功使用 Netezza ODBC 驱动程序?关于如何解决此问题的任何建议?

【问题讨论】:

【参考方案1】:

简短的回答是肯定的。我目前在 Ubuntu 14.04 上运行 Netezza ODBC 驱动程序。

您可能需要为翻译(例如英语)文件创建符号链接,正如我在此处的 OP 中提到的:

I tried to debug by running:
sudo strace isql -v NZSQL
This showed that isql was searching for a non-existent libc.mo file. I was able to resolve this by setting locale to en_AU and creating some symlinks to that libc.mo file.

上述超时是由于防火墙问题无关 - Netezza 服务器拒绝来自我的 IP 的连接,这与驱动程序无关。

【讨论】:

以上是关于是否可以在 Ubuntu 上使用 Netezza ODBC 驱动程序?的主要内容,如果未能解决你的问题,请参考以下文章

IBM Netezza - 过程使用的表

Netezza 从 SQL Server 加载表

Netezza 是不是具有 ODBC DESCRIBE 函数?

我可以从 Netezza 导出 SQL 查询结果吗?

返回 Netezza 查询结果

在 Netezza 服务器中通过 R/Python 进行机器学习