Tôi đang tải một tệp khá lớn vào cơ sở dữ liệu postgresql. Để làm điều này trước tiên tôi sử dụng splittrong tệp để nhận các tệp nhỏ hơn (mỗi tệp 30Gb) và sau đó tôi tải từng tệp nhỏ hơn vào cơ sở dữ liệu bằng cách sử dụng GNU Parallelvà psql copy.
Vấn đề là phải mất khoảng 7 giờ để phân chia tệp, và sau đó nó bắt đầu tải một tệp cho mỗi lõi. Những gì tôi cần là một cách để nói splitđể in tên tệp thành đầu ra std mỗi khi nó hoàn thành việc viết một tệp để tôi có thể dẫn nó đến Parallelvà nó bắt đầu tải các tệp tại thời splitđiểm viết xong. Một cái gì đó như thế này:
split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {}
Tôi đã đọc các splittrang người đàn ông và tôi không thể tìm thấy bất cứ điều gì. Có cách nào để làm điều này với splithoặc bất kỳ công cụ nào khác không?