Estoy cargando un archivo bastante gigantesco en una base de datos postgresql. Para hacer esto, primero lo uso split
en el archivo para obtener archivos más pequeños (30 Gb cada uno) y luego cargo cada archivo más pequeño en la base de datos usando GNU Parallel
y psql copy
.
El problema es que toma aproximadamente 7 horas dividir el archivo y luego comienza a cargar un archivo por núcleo. Lo que necesito es una manera de decirle split
que imprima el nombre del archivo a la salida estándar cada vez que termine de escribir un archivo para poder conectarlo Parallel
y comience a cargar los archivos en el momento en que split
termine de escribirlo. Algo como esto:
split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {}
He leído las split
páginas del manual y no puedo encontrar nada. ¿Hay alguna manera de hacer esto con split
alguna otra herramienta?