Когда я запускаю сценарий Postgres_load_data, загружаются первые три таблицы, и после этого я получаю сообщение: не удалось выполнить статистику файла CHARTEVENTS.csv: неизвестная ошибка. Есть ли у кого-нибудь такая ситуация и может помочь.
Проверяли ли вы целостность вашей копии chartevents.csv
используя файлы контрольной суммы, представленные на странице загрузки проекта? Возможно, он был поврежден во время загрузки или распаковки.
Да, я использовал команду md5 checkum_md5_zipped.txt и все в порядке со всеми таблицами ...
Я также пробовал с заархивированными данными и запускал postgres_load_data script_7zip. В этом случае я получаю: в данных найдена новая строка без кавычек. Подсказки: используйте поле CSV в кавычках для представления новой строки.
Я также проверил md5 checkum_md5_unzipped.txt, и все в порядке.
Похоже, есть несоответствие между выполняемым вами скриптом и имеющимися у вас данными. Я бы удостоверился:
.csv.gz
Раньше было действительно сложно выполнять удаленную отладку без дополнительной информации, такой как снимок экрана с настройками вашей папки, информация о вашей системе, точные команды, которые вы выполняли, и точное сообщение об ошибке.
Привет,
Спасибо за ваш ответ.
Отлично, это очень полезно, спасибо за дополнительную информацию. Я думаю, это так просто, как если бы файла нет в папке. Можете ли вы дважды проверить, что в вашей папке C:/Users/Lejla/Desktop/MIMICIII
есть файл CHARTEVENTS.csv
?
Возможно, вы пытались извлечь все сжатые файлы, но это не удалось для chartevents, поэтому у вас есть только файл .csv.gz
(причины могут быть в том, что размер извлеченного файла составляет 33 ГБ, и у вас закончилось место, или у вас есть файловая система - FAT32 (!) или кто знает). В этом случае вам может потребоваться отредактировать сценарий загрузки, чтобы загружать его непосредственно из .csv.gz
. Вы можете сделать это, заменив:
\copy CHARTEVENTS from 'CHARTEVENTS.csv' delimiter ',' csv header NULL ''
с участием
\copy CHARTEVENTS from PROGRAM '7z e -so CHARTEVENTS.csv.gz' delimiter ',' csv header NULL ''
Большое спасибо за ответ. На этот раз я попробовал поработать с zip файлом и запустить для него скрипт. На этот раз у меня есть другие
сообщение ... Возможно поможет.
Вы не против показать содержимое каталога?
Я не против. Вот содержимое моей папки
Хорошо, could not stat file "CHARTEVENTS.csv": Unknown error
на самом деле является ошибкой в 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
после всего, чтобы убедиться, что вы правильно загрузили все данные.
изменить: для вашей более поздней ошибки, когда вы используете этот подход 7zip, я не уверен, почему он не загружается. Попробуйте повторно загрузить только файл ADMISSIONS.csv.gz и посмотрите, вызывает ли он по-прежнему ту же ошибку. Может быть, есть новая версия 7zip, которая требует, чтобы я обновил скрипт или что-то в этом роде!
Привет,
Спасибо за подробное объяснение. Я установил PostgreSQL 10.5, и теперь процесс запущен. Я думаю, что загрузка всей таблицы займет много времени, но я больше не получаю «Неизвестную ошибку». Большое спасибо за помощь.
Здорово!
Хорошо,
could not stat file "CHARTEVENTS.csv": Unknown error
на самом деле является ошибкой в 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
после всего, чтобы убедиться, что вы правильно загрузили все данные.изменить: для вашей более поздней ошибки, когда вы используете этот подход 7zip, я не уверен, почему он не загружается. Попробуйте повторно загрузить только файл ADMISSIONS.csv.gz и посмотрите, вызывает ли он по-прежнему ту же ошибку. Может быть, есть новая версия 7zip, которая требует, чтобы я обновил скрипт или что-то в этом роде!
Мне помогло использование PostgreSQL 10.11 ... спасибо
Отлично, это очень полезно, спасибо за дополнительную информацию. Я думаю, это так просто, как если бы файла нет в папке. Можете ли вы дважды проверить, что в вашей папке
C:/Users/Lejla/Desktop/MIMICIII
есть файлCHARTEVENTS.csv
?Возможно, вы пытались извлечь все сжатые файлы, но это не удалось для chartevents, поэтому у вас есть только файл
.csv.gz
(причины могут быть в том, что размер извлеченного файла составляет 33 ГБ, и у вас закончилось место, или у вас есть файловая система - FAT32 (!) или кто знает). В этом случае вам может потребоваться отредактировать сценарий загрузки, чтобы загружать его непосредственно из.csv.gz
. Вы можете сделать это, заменив:
\copy CHARTEVENTS from 'CHARTEVENTS.csv' delimiter ',' csv header NULL ''
с участием
\copy CHARTEVENTS from PROGRAM '7z e -so CHARTEVENTS.csv.gz' delimiter ',' csv header NULL ''
Спасибо, у меня это сработало:
\ скопировать my_table_name из программы 'cmd / c type input_data.csv' delimiter ',' csv header;
input_data.csv размером 11 ГБ.
Проблема с «невозможно копировать большие файлы» актуальна для версий 11 и 12. Но для 10 это нормально. Как переопределить это без сжатия файлов данных, но, возможно, обновить / поменять местами некоторые файлы Postgresql-программы с v.10 на v 11 и 12?
Обходной путь:
скопировать t (c, d) из программы 'cmd / c "type x: \ pathto \ file.txt"' с (форматировать текст);
- довольно медленно для моих нужд. Мне нужна скорость команды копирования по умолчанию
Вы можете использовать другие инструменты командной строки, чтобы разбить файл на несколько файлов, а затем загружать отдельные файлы по одному. В системах unix это можно сделать с помощью split
и вы можете установить GNU coreutils для Windows, чтобы использовать его.
Я думаю, что столкнулся с той же проблемой, что и вы, но я использую самую новую версию 12. Есть ли способ ее решить? Использовать сжатые файлы?
Да, если я правильно помню, размер сжатых файлов <4 ГБ, и вы избегаете этой ошибки, используя сжатые сценарии загрузки (7z или gzip).
Хорошо, сейчас я попробую этот метод, большое спасибо за ваш ответ
Итак, никакого обходного пути БЕЗ использования сжатия или разделения вообще? Использование 10-й версии команды COPY Postgresql для движка 11, 12?
Как я уже заметил:
Мне нужна скорость команды копирования по умолчанию, но для больших файлов + версия 12
и это жизненно важно для моих нужд.
Что ж, PostgreSQL - это открытый исходный код, так что вы можете попробовать внести исправление самостоятельно :)
Вот соответствующее обсуждение: https://www.postgresql.org/message-id/20181104000405.GA1743%40paquier.xyz
В противном случае у вас есть три обходных пути, предложенных в этом потоке (изменить версию, использовать сжатые файлы, разделить файл на несколько частей). Я уверен, что есть и другие обходные пути.
Разве не очевидно перенести рабочую часть кода версии 10 функции КОПИРОВАНИЯ в 11 и 12? Или он настолько жестко запрограммирован, что вызывает сбой у всех? :)
@ghYura - это ресурс, поддерживаемый сообществом, поэтому, если у вас есть предложения по улучшению кодовой базы, я бы предложил сделать запрос на перенос.
Я получал ошибку при загрузке CSV в таблицы в версиях 12.X и 13.X, но в PostgreSQL версии 10.15 это работает как шарм. Спасибо всем за помощь :)
Самый полезный комментарий
Хорошо,
could not stat file "CHARTEVENTS.csv": Unknown error
на самом деле является ошибкой в 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
после всего, чтобы убедиться, что вы правильно загрузили все данные.изменить: для вашей более поздней ошибки, когда вы используете этот подход 7zip, я не уверен, почему он не загружается. Попробуйте повторно загрузить только файл ADMISSIONS.csv.gz и посмотрите, вызывает ли он по-прежнему ту же ошибку. Может быть, есть новая версия 7zip, которая требует, чтобы я обновил скрипт или что-то в этом роде!