かなり巨大なファイルを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
または他のツールでこれを行う方法はありますか?