Mimic-code: Не удалось выполнить статистику файла chartevents.csv, неизвестная ошибка

Созданный на 29 окт. 2018  ·  25Комментарии  ·  Источник: MIT-LCP/mimic-code

Предпосылки

Когда я запускаю сценарий Postgres_load_data, загружаются первые три таблицы, и после этого я получаю сообщение: не удалось выполнить статистику файла CHARTEVENTS.csv: неизвестная ошибка. Есть ли у кого-нибудь такая ситуация и может помочь.

Самый полезный комментарий

Хорошо, 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, которая требует, чтобы я обновил скрипт или что-то в этом роде!

Все 25 Комментарий

Проверяли ли вы целостность вашей копии chartevents.csv используя файлы контрольной суммы, представленные на странице загрузки проекта? Возможно, он был поврежден во время загрузки или распаковки.

Да, я использовал команду md5 checkum_md5_zipped.txt и все в порядке со всеми таблицами ...

Я также пробовал с заархивированными данными и запускал postgres_load_data script_7zip. В этом случае я получаю: в данных найдена новая строка без кавычек. Подсказки: используйте поле CSV в кавычках для представления новой строки.

Я также проверил md5 checkum_md5_unzipped.txt, и все в порядке.

Похоже, есть несоответствие между выполняемым вами скриптом и имеющимися у вас данными. Я бы удостоверился:

  1. Все файлы находятся в одном каталоге
  2. Все файлы имеют одинаковое расширение; например, все они .csv.gz
  3. Вы запускаете файл postgres_load_data_7zip.sql либо (i) из той же папки, либо (ii) после настройки mimic_data_dir, чтобы он указывал на каталог данных.

Раньше было действительно сложно выполнять удаленную отладку без дополнительной информации, такой как снимок экрана с настройками вашей папки, информация о вашей системе, точные команды, которые вы выполняли, и точное сообщение об ошибке.

Привет,

Спасибо за ваш ответ.

  1. Все файлы находятся в одном каталоге
  2. Все файлы имеют одинаковое расширение csv
  3. Я запускаю файл posgres_load_data.sql после настройки mimic_data_dir, чтобы он указывал на каталог данных.
    Вот мои точные команды и ошибка, которую я получил.
    step1
    step2
    system_information

Отлично, это очень полезно, спасибо за дополнительную информацию. Я думаю, это так просто, как если бы файла нет в папке. Можете ли вы дважды проверить, что в вашей папке 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 файлом и запустить для него скрипт. На этот раз у меня есть другие
zip_file
сообщение ... Возможно поможет.

Вы не против показать содержимое каталога?

Я не против. Вот содержимое моей папки
directory

Хорошо, 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 это работает как шарм. Спасибо всем за помощь :)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги