ОШИБКА: не удалось обработать файл статистики "XX.csv": неизвестная ошибка - PullRequest
0 голосов
/ 28 ноября 2018

Я запускаю эту команду:

COPY XXX FROM 'D:/XXX.csv'  WITH (FORMAT CSV, HEADER TRUE, NULL 'NULL')

В Windows 7 он успешно импортирует CSV-файлы размером менее 1 ГБ.

Если размер файла превышает 1 ГБ, я получаю «неизвестная ошибка ».

[Code: 0, SQL State: XX000]  ERROR: could not stat file "'D:/XXX.csv'  Unknown error

Как я могу исправить эту проблему?

Ответы [ 4 ]

0 голосов
/ 18 августа 2019

Вы можете обойти это, передав файл через программу.Например, я просто использовал это для копирования из файла 24 ГБ в Windows 10 и PostgreSQL 11.

copy t(c,d) from program 'cmd /c "type x:\path\to\file.txt"' with (format text);

Это копирует текстовый файл file.txt в таблицу t, столбцы c и * 1007.*.

Хитрость здесь в том, чтобы запустить cmd в режиме одной команды с /c и сообщить type из рассматриваемого файла.

0 голосов
/ 16 декабря 2018

С помощью pgAdmin и AWS я использовал CSVSplitter для разделения на файлы размером менее 1 ГБ.Хромой, но работал.Импорт pgAdmin добавляется к существующей таблице.(Изменен управляющий символ с «на», чтобы избежать ошибки из-за не заключенного в кавычки текста в исходном файле. Обычно я применяю кавычки в LibreOffice, но эти файлы слишком велики для открытия.)

0 голосов
/ 12 апреля 2019

Для всех, кто погуглил это сообщение об ошибке Postgres после попытки работы с файлом> 1 ГБ в Postgres 11, я могу подтвердить, что ответ @ 亚军 亚军 выше - точный.Это действительно проблема размера.

Я попробовал другой подход, чем @ 亚军 吴 и @ Loren's: я просто удалил Postgres 11 и установил стабильную версию Postgres 10.7.(Между прочим, я нахожусь на Windows 10, в случае, если это имеет значение.)

Я перезапустил оригинальный код, который вызвал ошибку, и через несколько минут я заполнил новыйтаблица с данными из CSV-файла среднего размера (~ 3 ГБ).Первоначально я пытался использовать CSVSplitter для @Loren, который работал нормально, пока у меня не было почти свободного места на моей машине.(Спасибо, Battlefield 5.)

В моем случае в PGSQL 11 нет ничего такого, на что я бы рассчитывал, кроме версии 10.7, поэтому я думаю, что это может быть хорошим решением для всех остальных.кто сталкивается с этой проблемой.Спасибо всем выше за вклад, особенно в ОП за публикацию этого в первую очередь.Я вылечил огромную, огромную головную боль!

0 голосов
/ 29 ноября 2018

https://github.com/MIT-LCP/mimic-code/issues/493 прокомментировал alistairewj 3 ноября 2018 г. • ► отредактировано

Хорошо, файл статистики CHARTEVENTS.csv не удалось: неизвестная ошибка фактически является ошибкой в ​​PostgreSQL 11. Под капотомон вызывает fstat (), чтобы убедиться, что файл не является каталогом, и, к сожалению, fstat () является 32-битной программой, которая не может обрабатывать большие файлы, такие как chartevents.Я протестировал сборку на Windows с PostgreSQL 10.5 и не получил эту ошибку, поэтому я думаю, что она довольно новая.

Лучший обходной путь - сохранить сжатые файлы (т.е. сохранить их как файлы .csv.gz)и используйте 7zip для загрузки данных непосредственно из сжатых файлов.В тестировании это, похоже, все еще работает.Здесь есть довольно подробное руководство о том, как это сделать: https://mimic.physionet.org/tutorials/install-mimic-locally-windows/

Краткая версия выше состоит в том, что вы сохраняете файлы .csv.gz, добавляете двоичный файл 7zip в путь среды Windows изатем вы вызываете файл postgres_load_data_7zip.sql для загрузки данных.Вы можете использовать файл postgres_checks.sql после всего, чтобы убедиться, что вы загрузили все данные правильно.

edit: Для вашей более поздней ошибки, когда вы используете этот подход 7zip, я не уверен, почему это не такпогрузка.Попробуйте перезагружать только файл ADMISSIONS.csv.gz и посмотрите, не выдаст ли он ту же ошибку.Может быть, есть новая версия 7zip, которая требует от меня обновить скрипт или что-то в этом роде!

...