Решение для импорта огромного текстового файла с разделителями в SQL Server

Я собираюсь импортировать 30 ГБ текстовый файл с разделителями в SQL Server с помощью мастера импорта и экспорта. символ с разделителями - | (конвейер) Я везде искал в интернете, но пока не нашел решения. Есть некоторые проблемы, такие же, как у меня, но не точное сообщение об ошибке:

- Executing (Error)
Messages
Error 0xc020209c: Data Flow Task 1: The column data for column "Username" overflowed the disk I/O buffer.
 (SQL Server Import and Export Wizard)

Error 0xc0202091: Data Flow Task 1: An error occurred while skipping data rows.
 (SQL Server Import and Export Wizard)

Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.
 The PrimeOutput method on component "Source - Sessions_txt" (1) returned error code 0xC0202091.  
The component returned a failure code when the pipeline engine called PrimeOutput(). 
The meaning of the failure code is defined by the component,
 but the error is fatal and the pipeline stopped executing.  
There may be error messages posted before this with more information about the failure.

(SQL Server Import and Export Wizard)

Я попытался сначала импортировать его в файл Excel, затем импортировать файл Excel в SQL Server, но количество строк составляет около 300 000 000 записей!

Я считаю, что проблема заключается в первоначальной настройке диалогового окна импорта в мастере импорта и экспорта SQL Server. Я ценю любое решение, которое вы предлагаете.

Благодарю.

2 ответа

Решение

Я лично, вероятно, написал бы консольное приложение, чтобы читать файл построчно и выполнять массовое копирование каждые X тысяч строк. Программа может записывать ход выполнения, чтобы, если в середине файла произошла ошибка, вы могли исправить проблему и продолжить обработку снова, не начиная с нуля. Это довольно простая программа для написания, чтобы вы могли быстро собрать что-нибудь вместе.

Вы можете получить данные Столбец для столбца {столбец}, переполнившие буфер ввода-вывода диска, если вы не используете разделитель строк. Например, если ваш разделитель строк установлен как {CR}{LF}, но каждая строка вашего файла заканчивается только {LF}, то SSIS попытается прочитать весь файл как одну строку!

Другие вопросы по тегам