Как мне разделить данные плоского файла и загрузить их в родительско-дочерние таблицы в базе данных?

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

Account#    Name        Membership    Email
101         J Burns     Gold          alpha@foo.com
101         J Burns     Gold          bravo@foo.com
101         J Burns     Gold          charlie@yay.com
227         H Gordon    Silver        red@color.com
350         B Clyde     Silver        italian@food.com
350         B Clyde     Silver        mexican@food.com

Какие части, части или тактики SSIS я должен использовать для чтения первых трех столбцов в родительскую таблицу и 4-го столбца (электронная почта) в дочернюю таблицу? У меня есть несколько вариантов родительского ключа, которые мне разрешено использовать:

  • Непосредственно использовать учетную запись № в качестве первичного ключа
  • Использовать суррогатный ключ, сгенерированный SSIS во время процесса импорта
  • Настроить первичный ключ идентификации

Я уверен, что перечислил свои параметры первичного ключа в порядке возрастания сложности. Мне было бы интересно узнать, как сделать первый и последний вариант - я сделаю вывод, как достичь среднего варианта. Еще раз подчеркну: меня явно интересует решение SSIS; Я ищу ответ, который использует язык SSIS, а не процедурный, технологически нейтральный ответ.

Мой вопрос в некоторой степени похож на другой вопрос SO , имеющий ответ неопределенной жизнеспособности. Я надеюсь, что можно будет дать более подробное руководство. Я уже знаю, как решить эту проблему, создав «промежуточный» промежуточный этап, на котором разделение родительского и дочернего на самом деле обрабатывается прямым SQL. Однако мне любопытно, как это можно сделать без такого промежуточного шага.

Мне кажется, такой вид импорта будет настолько распространен, что существует хорошо опубликованный шаблонный способ его обработки - техника, в которой SSIS преуспевает. На данный момент я не нашел точного ответа на этот вопрос.

Обновление №1 : Основываясь на комментариях, я скорректировал образцы данных, чтобы они были более явно денормализованы. Я также удалил «плоский» из «плоского файла», чтобы семантика не мешала решению вопроса.

Обновление №2 : Я усилил свой интерес к решению, используемому на языке SSIS.

7
задан Brent Arias 28 April 2012 в 17:15
поделиться