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

时间:2013-03-23 22:45:33

标签: python netezza

我有一个巨大的csv文件,其中包含数百万条记录,我想使用python脚本将其加载到Netezza数据库中我尝试过简单的插入查询,但速度非常慢。 可以给我一些示例python脚本或者一些想法我该如何做同样的事情?

谢谢

3 个答案:

答案 0 :(得分:3)

如果您安装了Netezza管理工具,则可以对nzload进行shell调用。

这样的事情:

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")

另请参阅:Calling an external command in Python

答案 1 :(得分:1)

您可以使用nz_load4加载数据,这是支持实用程序/ nz / support / contrib / bin

语法与nzload相同,默认情况下nz_load4将使用4个线程加载数据,你可以使用-tread选项最多32个线程 有关详细信息,请使用nz_load4 -h

这将根据线程数创建日志文件,如果

答案 2 :(得分:0)

您需要在要运行nzload的计算机上安装nzcli - 您的sysadmin应该能够将它放在您的unix / linux应用程序服务器上。有一个详细的过程来设置它,缓存密码等 - 系统管理员应该能够做到这一点。

设置完成后,您可以创建NZ控制文件以指向您的数据文件并执行加载。 Netezza数据加载指南详细说明了如何完成所有这些工作(可以通过IBM获得)。

如果你有CREATE EXTERNAL TABLE privledge,你也可以通过aginity完成它 - 你可以用INSERT INTO FROM EXTERNAL ... REMOTESOURCE ODBC从ODBC连接加载文件。