如何通过Python脚本使用NZ Loader(Netezza Loader)?

2 投票
3 回答
4758 浏览
提问于 2025-04-17 20:05

我有一个非常大的csv文件,里面有几百万条记录,我想用Python脚本把它加载到Netezza数据库里。我试过简单的插入查询,但速度慢得让人受不了。
你能给我一些示例Python脚本或者一些建议,告诉我该怎么做吗?

谢谢你

3 个回答

0

你需要在想要运行 nzload 的机器上安装 nzcli - 你的系统管理员应该能把它放到你的 Unix/Linux 应用服务器上。安装的过程比较详细,包括缓存密码等等,系统管理员也能处理这些。

一旦安装完成,你就可以创建 NZ 控制文件,指向你的数据文件,然后执行加载操作。Netezza 数据加载指南里有详细的说明,教你怎么做这些(可以通过 IBM 获取)。

如果你有 CREATE EXTERNAL TABLE 的权限,也可以通过 aginity 来操作 - 你可以使用 INSERT INTO FROM EXTERNAL ... REMOTESOURCE ODBC 从 ODBC 连接加载文件。

1

你可以使用 nz_load4 来加载数据,这个工具在 /nz/support/contrib/bin 目录下。

它的用法和 nzload 一样,默认情况下,nz_load4 会使用 4 个线程来加载数据。如果你想要更多的线程,可以通过 -tread 选项最多设置到 32 个线程。

想要了解更多细节,可以使用 nz_load4 -h 命令。

这个工具会根据线程的数量生成日志文件,比如如果...

3

如果你安装了Netezza管理工具,你可以通过命令行来调用 nzload

像这样:

os.system("nzload -host myhost -u myuser -pw mypassword -db MYDB -t MYTABLE -skipRows 1 -nullValue NULL -quotedValue DOUBLE -df \"C:\\myinputfile.txt\" -delim \"|\" -dateDelim \"-\" -lf c:\\logs\\nzload.log -bf c:\\logs\\nzloadbad.log")

另外,你可以参考这个链接: 在Python中调用外部命令

撰写回答