我想从netezza将数据导出为CSV。数据由数百万行记录组成。数据应在反逗号内,并且应以^作为分隔符。例如:“ a” ^“ b” ^“ c”
每当您要从Netezza导出数据时,都将要使用其外部表功能。
如果要导出到本地安装到Netezza主机的文件系统,则可以使用以下命令:
CREATE external TABLE '/tmp/test_export.txt' USING (delimiter '^') AS
SELECT *
FROM test_export;
Run Code Online (Sandbox Code Playgroud)
如果要通过诸如Aginity Workbench之类的工具通过JDBC,ODBC或OLE-DB连接到Netezza,并且想要将数据本地导出到工作站,则可以使用以下方法:
CREATE external TABLE 'c:\test_export.txt' USING (delimiter '^' remotesource odbc) AS
SELECT *
FROM test_export;
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有外部表选项可以让您也用引号将每列换行。您将必须使用SQL中的串联来明确地执行此操作,如下所示:
CREATE external TABLE 'c:\test_export.txt' USING (delimiter '^' remotesource odbc) AS
SELECT '"' || col1 || '"',
'"' || col2 || '"'
FROM test_export;
Run Code Online (Sandbox Code Playgroud)
您还可以将nzsql CLI界面与以下选项一起使用,以实现相似的功能,但是速度慢得多。例如,在我的系统上,使用外部表方法导出大约200万行,这将创建一个大小约为3.5 GB的导出文件,需要20秒。使用CLI方法需要3秒钟约180秒。
nzsql -d DB_NAME -F "^" -t -A -o export.txt -c "select * from test_export"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10184 次 |
| 最近记录: |