У меня есть несколько 30ГБ / 1 млрд. Файлов записей, которые мне нужно загрузить в Netezza. Я подключаюсь, используя pyodbc
, и выполняю следующие команды.
create temp table tbl1(id bigint, dt varchar(12), ctype varchar(20), name varchar(100)) distribute on (id)
insert into tbl1
select * from external 'C:\projects\tmp.CSV'
using (RemoteSource 'ODBC' Delimiter '|' SkipRows 1 MaxErrors 10 QuotedValue DOUBLE)
Вот фрагмент из файла nzlog
Found bad records
bad #: input row #(byte offset to last char examined) [field #, declaration] diagnostic,
"text consumed"[last char examined]
----------------------------------------------------------------------------------------
1: 2(0) [1, INT8] contents of field, ""[0x00<NUL>]
2: 3(0) [1, INT8] contents of field, ""[0x00<NUL>]
, а файл nzbad имеет "NUL" между каждым символом.
Я создал новый файл с первыми 2 миллионами строк. Затем я запустил iconv
на нем
iconv -f UCS-2LE -t UTF-8 tmp.CSV > tmp_utf.CSV
Новый файл загружается без ошибок, используя те же команды. Можно ли как-нибудь загрузить файлы без преобразования iconv
? Для запуска iconv
.
требуется очень много времени.