Ответ 1
Используйте split
- например. разделить файл каждые 3,4 миллиона строк (должно предоставить вам 10 файлов):
split -l 3400000
У меня есть файл импорта csv с 33 миллионами строк, которые необходимо импортировать в мою базу данных. Я могу импортировать его с помощью консольного приложения С#, а затем хранимых процедур, которые запускаются после таймаута импорта. Следовательно, я хочу разбить файл на 10 меньших файлов.
Я мог бы сделать это на С#, но я подозреваю, что есть гораздо лучший подход с использованием утилит оболочки. Я установил cygwin и могу использовать все обычные утилиты оболочки Linux. Есть ли небольшая комбинация команд, которые я мог бы использовать для разделения файла?
Используйте split
- например. разделить файл каждые 3,4 миллиона строк (должно предоставить вам 10 файлов):
split -l 3400000
расщепление по строке хорошо, но вы также можете разделить по размеру
создает 1MB файлы из оригинала
split -b 1024k <file_name>
создает 1GB файлы из оригинала
split -b 1024m <file_name>
Версия split в coreutils 8.8 (еще не выпущена) будет иметь команду
split -n l/10
Теперь вам нужно указать определенное количество строк в файле
Если ваш файл csv имеет 500 строк для разделения двух частей (250 + 250)
скачать и установить "Терминал Cygwin"
поставить комментарий "split -l 250 filename.csv"