我想将多个csv文件导入Exasol数据库。实际上,这是一个巨大的文件,我已经对其进行了分块处理,以大幅度提高导入性能。 Exasol支持并行导入多个文件:
IMPORT INTO target_table
FROM CSV AT 'https://someurl'
FILE 'file1.csv'
FILE 'file2.csv'
...
;
问题是,我想忽略导入错误并以某种方式记录它们。我很想使用Exasol支持的错误表,但不幸的是,不能在单个语句中用于多个文件
IMPORT INTO target_table
FROM CSV AT 'https://someurl'
FILE 'file1.csv'
FILE 'file2.csv'
...
REJECT LIMIT 100 --ignore 99 errors, this does completes the import, but nothing is logged
ERRORS INTO IMPORT_ERROR_TABLE --does not work for mutiple file import statement
;
我无法对我的csv文件进行分块,并且一切都会正常运行,但是我不愿意这样做,因为性能如此。 ;-)
关于做什么的任何建议?在一次导入多个文件期间,您将如何检查错误?我愿意征求意见。
答案 0 :(得分:0)
您可以尝试将错误发送到FILE而不是TABLE中。此选项可能适用于多个文件。
或者,还有很长的路要走。您可以创建一个UDF脚本,并使用它来并行读取和解析所有文件。对于Java,您可以使用Univocity CSV解析器。您将能够微调日志记录和转换,并具有令人难以置信的总体灵活性。但这需要编码。
如果可以接受UDF脚本,我可以与您共享一些代码。