Использование SSIS для чтения плоских файлов с несколькими типами записей

Мы оцениваем SSIS, чтобы увидеть, подходит ли он для нового проекта, который готовится к выпуску. Один из процессов должен будет обработать плоский файл с разделенными записями. Файл будет содержать заказы. Есть строка заголовка, (необязательно) строка адреса доставки и одна или несколько строк с подробностями. Поля каждой строки разделены, но имеют разный формат.

Я прочитал этот ответ:

Транзакционные данные SSIS (разные типы записей, один файл)

И я могу разделить данные с помощью задачи «Условное разделение», чтобы получить несколько выходных данных, но я не уверен, как оттуда действовать. У меня есть две проблемы, которые мне нужно решить:

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

  2. В файле будет несколько заказов, поэтому разделить его будет сложнее.

Я всегда мог написать приложение на C #, которое будет предварительно обрабатывать файл или считывать файл в промежуточную таблицу, но я не уверен, что мне нравится такой подход.

Может ли кто-нибудь, кто прошел через этот процесс, поделиться некоторыми мыслями о том, как они с этим справились?

Спасибо,

Крис


person Chris Dunaway    schedule 14.09.2009    source источник


Ответы (1)


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

Я предполагаю, что в подробных записях есть headerID? Это должно облегчить ответ на ваш второй вопрос. Если нет, дайте нам знать.

person Sam    schedule 16.09.2009
comment
Спасибо, я проверю это. Я не очень хорошо знаком с местом назначения необработанных данных. Я думал об использовании промежуточных таблиц, но мне было интересно, есть ли альтернатива. Спасибо еще раз. - person Chris Dunaway; 16.09.2009