Saya memuat file yang sangat besar ke database postgresql. Untuk melakukan ini saya pertama kali menggunakan splitdalam file untuk mendapatkan file yang lebih kecil (masing-masing 30Gb) dan kemudian saya memuat setiap file yang lebih kecil ke database menggunakan GNU Paralleldan 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 splituntuk mencetak nama file ke std output setiap kali selesai menulis file sehingga saya dapat mengirimnya ke pipa Paralleldan mulai memuat file pada saat splitselesai menulisnya. Sesuatu seperti ini:
split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {}
Saya telah membaca splithalaman manual dan saya tidak dapat menemukan apa pun. Apakah ada cara untuk melakukan ini dengan splitatau alat lain?