我想将数据作为CSV从netezza导出。数据由数百万行记录组成。数据应在反逗号内,并且应使用^作为分隔符。例如:"a"^"b"^"c“
发布于 2015-04-18 08:17:04
无论何时您想要从Netezza导出数据,您都会想要使用它的外部表格功能。
如果要导出到Netezza主机本地装载的文件系统,则可以使用以下命令:
CREATE external TABLE '/tmp/test_export.txt' USING (delimiter '^') AS
SELECT *
FROM test_export;如果您通过JDBC、ODBC或OLE-DB通过Aginity Workbench等工具连接到Netezza,并希望将数据本地导出到您的工作站,则可以使用以下命令:
CREATE external TABLE 'c:\test_export.txt' USING (delimiter '^' remotesource odbc) AS
SELECT *
FROM test_export;不幸的是,没有允许您用引号将每一列括起来的外部表选项。您必须在SQL中显式地进行连接,如下所示:
CREATE external TABLE 'c:\test_export.txt' USING (delimiter '^' remotesource odbc) AS
SELECT '"' || col1 || '"',
'"' || col2 || '"'
FROM test_export;您还可以使用带有以下选项的nzsql CLI接口来实现类似的功能,但速度会慢一些。例如,在我的系统上,使用外部表方法导出大约200万行,这将创建一个大小约为3.5 GB的导出文件,需要20秒。使用CLI方法大约需要180秒。
nzsql -d DB_NAME -F "^" -t -A -o export.txt -c "select * from test_export" https://stackoverflow.com/questions/29706103
复制相似问题