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

StackOverflow https://stackoverflow.com/questions/1422565

  •  07-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

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

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

Спасибо,

Крис

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top