かなり巨大なファイルをpostgresqlデータベースにロードしています。これを行うには、最初にファイルで使用splitして小さいファイル(それぞれ30Gb)を取得し、次にとを使用して小さいファイルをデータベースにロードしGNU Parallelますpsql copy。
問題は、ファイルを分割するのに約7時間かかり、その後、コアごとにファイルのロードを開始することです。必要なのは、splitファイルの書き込みが完了するたびにファイル名をstd出力に出力するように指示する方法です。これにより、ファイルをパイプで送信し、書き込みが完了Parallelするとファイルのロードを開始します。splitこのようなもの:
split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {}
マニュアルページを読みましたが、split何も見つかりません。splitまたは他のツールでこれを行う方法はありますか?