Ich lade eine ziemlich gigantische Datei in eine Postgresql-Datenbank. Dazu verwende ich zuerst splitin der Datei kleinere Dateien (jeweils 30 GB) und lade dann jede kleinere Datei mit GNU Parallelund in die Datenbank psql copy.
Das Problem ist, dass das Teilen der Datei ungefähr 7 Stunden dauert und dann eine Datei pro Kern geladen wird. Was ich brauche, ist eine Möglichkeit, splitden Dateinamen jedes Mal, wenn er mit dem Schreiben einer Datei fertig ist, in die Standardausgabe zu drucken, damit ich sie weiterleiten kann, Parallelund er beginnt mit dem Laden der Dateien, wenn er splitfertig geschrieben ist. Etwas wie das:
split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {}
Ich habe die splitManpages gelesen und kann nichts finden. Gibt es eine Möglichkeit, dies mit splitoder einem anderen Tool zu tun ?