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