我想从 netezza 将数据导出为 CSV。数据由数百万行记录组成。数据应位于引号内,并应使用 ^ 作为分隔符。
例如:“a”^“b”^“c”
每当您想要从 Netezza 导出数据时,您都会需要使用其外部表功能。
如果要导出到 Netezza 主机本地安装的文件系统,则可以使用以下命令:
CREATE external TABLE '/tmp/test_export.txt' USING (delimiter '^') AS
SELECT *
FROM test_export;
如果您通过 Aginity Workbench 等工具通过 JDBC、ODBC 或 OLE-DB 连接到 Netezza,并且希望将数据本地导出到您的工作站,您可以使用以下命令:
CREATE external TABLE 'c:\test_export.txt' USING (delimiter '^' remotesource odbc) AS
SELECT *
FROM test_export;
不幸的是,没有外部表选项可以让您also将每一列用引号引起来。您必须通过 SQL 中的串联显式地执行此操作,如下所示:
CREATE external TABLE 'c:\test_export.txt' USING (delimiter '^' remotesource odbc) AS
SELECT '"' || col1 || '"',
'"' || col2 || '"'
FROM test_export;
您还可以使用 nzsql CLI 界面和以下选项来实现类似的功能,但速度要慢一些。例如,在我的系统上,使用外部表方法导出约200万行,创建约3.5GB大小的导出文件,需要20秒。使用 CLI 方法大约需要 3 秒 180 秒。
nzsql -d DB_NAME -F "^" -t -A -o export.txt -c "select * from test_export"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)