Как импортировать несколько файлов CSV в Exasol с ведением журнала ошибок - PullRequest
0 голосов
/ 03 мая 2019

Я хочу импортировать несколько файлов 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-файл, и все работало бы, но я бы предпочел этого не делать, потому что производительность. ; -)

Есть предложения, что делать? Как вы будете проверять ошибки при импорте нескольких файлов одновременно? Я открыт для предложений.

1 Ответ

0 голосов
/ 06 мая 2019

Вы можете попытаться отправить ошибки в файл вместо таблицы. Эта опция может работать с несколькими файлами.

Кроме того, есть длинный путь. Вы можете создать скрипт UDF и использовать его для параллельного чтения и анализа всех файлов. Для Java вы можете использовать Univocity CSV parser. Вы сможете точно настроить ведение журнала и преобразования, а также будете иметь невероятную гибкость в целом. Но это требует кодирования.

Я могу поделиться с вами некоторым кодом, если сценарий UDF является приемлемым вариантом.

...