Csv 当源为gzip时,Vertica COPY拒绝所有数据

Csv 当源为gzip时,Vertica COPY拒绝所有数据,csv,gzip,vertica,vsql,Csv,Gzip,Vertica,Vsql,我正在尝试使用vsql CLI将文件上载到vertica。我的命令看起来像这样(都是一行,但为了便于阅读,我在这里用反斜杠将其拆分): 当我运行该命令时,它执行时没有错误,但是没有加载行,数据直接进入被拒绝的文件 当我在同一文件的未压缩版本上运行此csv load命令时,它会将数据加载到表中而不会被拒绝: vsql "-c set timezone to 'UTC'; \ copy etl.test_data1 (col1,col2,col3)\ from loca

我正在尝试使用vsql CLI将文件上载到vertica。我的命令看起来像这样(都是一行,但为了便于阅读,我在这里用反斜杠将其拆分):

当我运行该命令时,它执行时没有错误,但是没有加载行,数据直接进入被拒绝的文件

当我在同一文件的未压缩版本上运行此csv load命令时,它会将数据加载到表中而不会被拒绝:

vsql "-c set timezone to 'UTC';     \   
    copy etl.test_data1 (col1,col2,col3)\
    from local 'test_data1.csv' \
    delimiter ','       \
    exceptions '/home/error/etl.test_data1.err' \
    NULL AS 'NULL'        \
    NO ESCAPE    \
    rejected data '/home/rejected/etl.test_data1.rejected'" \
    -p5433 -hverticahostname -Uusername -ddatabase -vON_ERROR_STOP=ON
我尝试在没有显式分隔符设置的情况下运行该命令,结果相同。我尝试使用unixgzip命令和使用pythongzip模块对其进行编码来生成gzip,得到了相同的结果(以防文件被破坏)

我最终希望通过job上传的文件非常大,csv不是常规上传的性能选项。关于gzip负载失败的原因有什么建议吗


编辑:注释中的解决方案;在csv上执行gzip不会更改分隔符——仍然需要使用“,”作为分隔符,而不是制表符

尝试将命令放入文件中以通过?这将避免一些分隔符转义问题,并提供更多管道选项。另一个选项是仅为上传而对文件进行gzip,并在通过副本导入之前对其进行gunzip。Vertica的哪个版本?第二个(工作)版本不能在同一文件的gunzip版本上,因为您使用了不同的分隔符,gunzip不会更改CSV的分隔符。。。也许您必须使用相同的分隔符(逗号)而不是制表符(?)@mauro是的,您是正确的,这一直是分隔符问题。GZIP分隔符E'\009'适用于制表符分隔的文件。
vsql "-c set timezone to 'UTC';     \   
    copy etl.test_data1 (col1,col2,col3)\
    from local 'test_data1.csv' \
    delimiter ','       \
    exceptions '/home/error/etl.test_data1.err' \
    NULL AS 'NULL'        \
    NO ESCAPE    \
    rejected data '/home/rejected/etl.test_data1.rejected'" \
    -p5433 -hverticahostname -Uusername -ddatabase -vON_ERROR_STOP=ON