Импортировать небольшое количество записей из очень большого файла CSV в Biztalk 2006 - PullRequest
3 голосов
/ 07 апреля 2010

У меня есть проект Biztalk, который импортирует входящий CSV-файл и выгружает его в таблицу базы данных. Импорт работает нормально, но мне нужно только сохранить около 200-300 записей из файла с числом строк более миллиона. Моя оркестровка отбрасывает эти строки, но проблема в том, что импортируемый мной плоский файл по-прежнему занимает 250 МБ, а при преобразовании в XML с использованием обычного конвейера плоских файлов обработка занимает несколько часов, а иногда приводит к нехватке памяти на сервере.

Могу ли я сделать так, чтобы сам Custom Pipeline отбрасывал строки, которые меня не интересуют? Самый первый элемент в каждой строке CSV - это одна из нескольких строк, и я хочу сохранить только строки, начинающиеся с определенной строки.

Спасибо за любую помощь, которую вы можете оказать.

1 Ответ

4 голосов
/ 08 апреля 2010

Заказной конвейерный компонент, безусловно, будет лучшим решением;но он должен быть выполнен на этапе декодирования до того, как компонент дизассемблера.

Сделать 100% потоковой поддержкой будет сложно (но, безусловно, выполнимо), но в зависимости от размера результирующего обрезанного файла CVS, выможет просто предварительно обработать весь входной файл, как только ваш пользовательский компонент будет запущен, и либо сгенерировать результаты в памяти (в MemoryStream), если она мала, либо записать их в файл, а затем вернуть полученный FileStream в BizTalk, чтобы продолжить обработку сесть.

...