Ketika saya menjalankan skrip Postgres_load_data, tiga tabel pertama dimuat dan setelah itu saya mendapat pesan: could not stat file CHARTEVENTS.csv: unknown error. Apakah ada yang memiliki situasi ini dan dapat membantu.
Sudahkah Anda memeriksa integritas salinan chartevents.csv
menggunakan file checksum yang disediakan pada halaman unduhan untuk proyek tersebut? Mungkin rusak saat mengunduh atau dekompresi.
Ya, saya menggunakan perintah md5 checksum_md5_zipped.txt dan semuanya baik-baik saja dengan semua tabel...
Saya juga mencoba dengan data zip dan menjalankan postgres_load_data script_7Zip. Dalam hal ini saya mendapatkan: baris baru yang tidak dikutip ditemukan di data. Petunjuk: gunakan bidang CSV yang dikutip untuk mewakili baris baru.
Saya juga memeriksa md5 checksum_md5_unzip.txt dan semuanya baik-baik saja.
Sepertinya ada ketidakcocokan antara skrip yang Anda jalankan dan data yang Anda miliki. Saya akan memastikan:
.csv.gz
Setelah itu, sangat sulit untuk melakukan debug dari jarak jauh tanpa info lebih lanjut seperti tangkapan layar dari pengaturan folder Anda, informasi sistem Anda, perintah yang tepat yang Anda jalankan dan pesan kesalahan yang tepat.
Halo,
Terima kasih atas jawaban Anda.
Hebat itu sangat membantu, terima kasih atas info tambahannya. Saya pikir ini sesederhana file yang tidak ada di folder. Bisakah Anda memeriksa ulang apakah folder Anda C:/Users/Lejla/Desktop/MIMICIII
memiliki file CHARTEVENTS.csv
?
Mungkin Anda mencoba mengekstrak semua file terkompresi, tetapi gagal untuk chartevents sehingga Anda hanya memiliki file .csv.gz
(alasannya mungkin karena file yang diekstrak berukuran 33 GB dan Anda kehabisan ruang, atau sistem file adalah FAT32 (!), Atau siapa tahu). Dalam hal ini, Anda mungkin ingin mengedit skrip pemuatan untuk memuatnya langsung dari .csv.gz
. Anda dapat melakukannya dengan mengganti:
\copy CHARTEVENTS from 'CHARTEVENTS.csv' delimiter ',' csv header NULL ''
dengan
\copy CHARTEVENTS from PROGRAM '7z e -so CHARTEVENTS.csv.gz' delimiter ',' csv header NULL ''
Terima kasih banyak atas jawabannya. Saya mencoba kali ini untuk bekerja dengan file Zip, dan menjalankan skrip untuk itu. Kali ini saya mendapat yang lain
pesan ... Mungkin itu akan membantu.
Apakah Anda keberatan menunjukkan isi direktori?
Saya tidak keberatan. ini isi folder saya
Oke, could not stat file "CHARTEVENTS.csv": Unknown error
sebenarnya adalah bug di PostgreSQL 11. Di bawah tenda itu membuat panggilan ke fstat()
untuk memastikan file tersebut bukan direktori, dan sayangnya fstat()
adalah program 32-bit yang tidak dapat menangani file besar seperti chartevents. Saya menguji build di Windows dengan PostgreSQL 10.5 dan saya tidak mendapatkan kesalahan ini, jadi saya pikir ini cukup baru.
Solusi terbaik adalah menjaga file tetap terkompresi (yaitu menyimpannya sebagai file .csv.gz
) dan menggunakan 7zip untuk memuat data langsung dari file terkompresi. Dalam pengujian ini sepertinya masih berfungsi. Ada tutorial yang cukup mendetail tentang cara melakukannya di sini: https://mimic.physionet.org/tutorials/install-mimic-locally-windows/
Versi singkat di atas adalah bahwa Anda menyimpan file .csv.gz
, Anda menambahkan biner 7zip ke jalur lingkungan windows Anda, dan kemudian Anda memanggil file postgres_load_data_7zip.sql
untuk memuat data. Anda dapat menggunakan file postgres_checks.sql
setelah semuanya untuk memastikan Anda memuat semua data dengan benar.
edit: Untuk kesalahan Anda nanti, di mana Anda menggunakan pendekatan 7zip ini, saya tidak yakin mengapa itu tidak dimuat. Coba unduh ulang hanya file ADMISSIONS.csv.gz dan lihat apakah masih menimbulkan kesalahan yang sama. Mungkin ada versi baru 7zip yang mengharuskan saya untuk memperbarui skrip atau sesuatu!
Halo,
Terima kasih atas penjelasan detailnya. Saya menginstal PostgreSQL 10.5 dan sekarang proses sedang berjalan. Saya pikir itu akan memakan banyak waktu untuk memuat semua tabel tetapi saya tidak mendapatkan "Kesalahan tidak dikenal" lagi. Terima kasih banyak atas semua bantuannya.
Besar!
Oke,
could not stat file "CHARTEVENTS.csv": Unknown error
sebenarnya adalah bug di PostgreSQL 11. Di bawah tenda itu membuat panggilan kefstat()
untuk memastikan file tersebut bukan direktori, dan sayangnyafstat()
adalah program 32-bit yang tidak dapat menangani file besar seperti chartevents. Saya menguji build di Windows dengan PostgreSQL 10.5 dan saya tidak mendapatkan kesalahan ini, jadi saya pikir ini cukup baru.Solusi terbaik adalah menjaga file tetap terkompresi (yaitu menyimpannya sebagai file
.csv.gz
) dan menggunakan 7zip untuk memuat data langsung dari file terkompresi. Dalam pengujian ini sepertinya masih berfungsi. Ada tutorial yang cukup mendetail tentang cara melakukannya di sini: https://mimic.physionet.org/tutorials/install-mimic-locally-windows/Versi singkat di atas adalah bahwa Anda menyimpan file
.csv.gz
, Anda menambahkan biner 7zip ke jalur lingkungan windows Anda, dan kemudian Anda memanggil filepostgres_load_data_7zip.sql
untuk memuat data. Anda dapat menggunakan filepostgres_checks.sql
setelah semuanya untuk memastikan Anda memuat semua data dengan benar.edit: Untuk kesalahan Anda nanti, di mana Anda menggunakan pendekatan 7zip ini, saya tidak yakin mengapa itu tidak dimuat. Coba unduh ulang hanya file ADMISSIONS.csv.gz dan lihat apakah masih menimbulkan kesalahan yang sama. Mungkin ada versi baru 7zip yang mengharuskan saya untuk memperbarui skrip atau sesuatu!
Menggunakan PostgreSQL 10.11 membantu saya... terima kasih
Hebat itu sangat membantu, terima kasih atas info tambahannya. Saya pikir ini sesederhana file yang tidak ada di folder. Bisakah Anda memeriksa ulang apakah folder Anda
C:/Users/Lejla/Desktop/MIMICIII
memiliki fileCHARTEVENTS.csv
?Mungkin Anda mencoba mengekstrak semua file terkompresi, tetapi gagal untuk chartevents sehingga Anda hanya memiliki file
.csv.gz
(alasannya mungkin karena file yang diekstrak berukuran 33 GB dan Anda kehabisan ruang, atau sistem file adalah FAT32 (!), Atau siapa tahu). Dalam hal ini, Anda mungkin ingin mengedit skrip pemuatan untuk memuatnya langsung dari.csv.gz
. Anda dapat melakukannya dengan mengganti:
\copy CHARTEVENTS from 'CHARTEVENTS.csv' delimiter ',' csv header NULL ''
dengan
\copy CHARTEVENTS from PROGRAM '7z e -so CHARTEVENTS.csv.gz' delimiter ',' csv header NULL ''
Terima kasih, ini berhasil untuk saya:
\copy my_table_name dari program 'cmd /c ketik input_data.csv' delimiter ',' header csv;
input_data.csv seperti ukuran 11GB.
Masalah dengan "tidak dapat menyalin file besar" tersedia untuk versi 11 dan 12. Tapi untuk 10 ok. Bagaimana cara menimpanya tanpa mengompresi file data, tetapi mungkin untuk menambahkan/menukar beberapa file program Postgresql dari v.10 ke v 11 dan 12?
Solusi:
salin t(c,d) dari program 'cmd /c "ketik x:\pathto\file.txt"' dengan (format teks);
-cukup lambat untuk kebutuhan saya. Saya membutuhkan kecepatan perintah Salin default
Anda dapat mempertimbangkan untuk menggunakan alat baris perintah lain untuk membagi file menjadi beberapa file, dan kemudian memuat file satu per satu. Pada sistem unix ini dapat dilakukan dengan menggunakan split
dan Anda dapat menginstal GNU coreutils untuk Windows untuk menggunakannya.
Saya pikir saya mengalami masalah yang sama seperti Anda, tetapi saya menggunakan versi 12 yang sangat baru. Apakah ada cara untuk menyelesaikannya? Gunakan file terkompresi?
Ya, jika saya ingat dengan benar file terkompresi <4 GB dan Anda menghindari kesalahan ini dengan menggunakan skrip beban terkompresi (7z atau gzip).
Oke, saya akan mencoba metode ini sekarang, terima kasih banyak atas balasan Anda
Jadi, tidak ada solusi TANPA menggunakan kompresi atau pemisahan sama sekali? Penggunaan perintah COPY versi 10 dari Postgresql untuk mesin 11, 12?
Seperti yang saya sebutkan:
Saya membutuhkan kecepatan perintah Salin default tetapi untuk file besar + versi 12
dan ini sangat penting untuk kebutuhan saya.
Nah, PostgreSQL adalah open source, jadi Anda dipersilakan untuk mencoba dan berkontribusi memperbaikinya sendiri :)
Berikut pembahasan terkait: https://www.postgresql.org/message-id/20181104000405.GA1743%40paquier.xyz
Jika tidak, Anda memiliki tiga solusi yang diusulkan di utas ini (ubah versi, gunakan file terkompresi, bagi file menjadi beberapa bagian). Saya yakin ada solusi lain juga.
Bukankah jelas untuk memigrasikan bagian yang berfungsi dari kode fungsi COPY v. 10 menjadi 11 dan 12? Atau begitu hardcoded, yang menyebabkan crash untuk semua? :)
@ghYura ini adalah sumber daya yang dikelola komunitas, jadi jika Anda memiliki saran untuk meningkatkan basis kode maka saya sarankan membuat permintaan tarik.
Saya mendapatkan kesalahan saat memuat CSV ke dalam tabel di versi 12.X dan 13.X tetapi berfungsi seperti pesona di PostgreSQL versi 10.15. Terima kasih, semuanya atas bantuannya :)
Komentar yang paling membantu
Oke,
could not stat file "CHARTEVENTS.csv": Unknown error
sebenarnya adalah bug di PostgreSQL 11. Di bawah tenda itu membuat panggilan kefstat()
untuk memastikan file tersebut bukan direktori, dan sayangnyafstat()
adalah program 32-bit yang tidak dapat menangani file besar seperti chartevents. Saya menguji build di Windows dengan PostgreSQL 10.5 dan saya tidak mendapatkan kesalahan ini, jadi saya pikir ini cukup baru.Solusi terbaik adalah menjaga file tetap terkompresi (yaitu menyimpannya sebagai file
.csv.gz
) dan menggunakan 7zip untuk memuat data langsung dari file terkompresi. Dalam pengujian ini sepertinya masih berfungsi. Ada tutorial yang cukup mendetail tentang cara melakukannya di sini: https://mimic.physionet.org/tutorials/install-mimic-locally-windows/Versi singkat di atas adalah bahwa Anda menyimpan file
.csv.gz
, Anda menambahkan biner 7zip ke jalur lingkungan windows Anda, dan kemudian Anda memanggil filepostgres_load_data_7zip.sql
untuk memuat data. Anda dapat menggunakan filepostgres_checks.sql
setelah semuanya untuk memastikan Anda memuat semua data dengan benar.edit: Untuk kesalahan Anda nanti, di mana Anda menggunakan pendekatan 7zip ini, saya tidak yakin mengapa itu tidak dimuat. Coba unduh ulang hanya file ADMISSIONS.csv.gz dan lihat apakah masih menimbulkan kesalahan yang sama. Mungkin ada versi baru 7zip yang mengharuskan saya untuk memperbarui skrip atau sesuatu!