Saya memuat file yang sangat besar ke database postgresql. Untuk melakukan ini saya pertama kali menggunakan split
dalam file untuk mendapatkan file yang lebih kecil (masing-masing 30Gb) dan kemudian saya memuat setiap file yang lebih kecil ke database menggunakan GNU Parallel
dan psql copy
.
Masalahnya adalah bahwa dibutuhkan sekitar 7 jam untuk membagi file, dan kemudian mulai memuat file per inti. Yang saya butuhkan adalah cara untuk memberi tahu split
untuk mencetak nama file ke std output setiap kali selesai menulis file sehingga saya dapat mengirimnya ke pipa Parallel
dan mulai memuat file pada saat split
selesai menulisnya. Sesuatu seperti ini:
split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {}
Saya telah membaca split
halaman manual dan saya tidak dapat menemukan apa pun. Apakah ada cara untuk melakukan ini dengan split
atau alat lain?