2016-10-28 8 views
0

Я новичок в обработке ETL. Я пытаюсь заполнить карту данных через ETL и попал в удар. У меня есть 4 задачи ETL (каждая задача заполняет определенную таблицу в Mart), и проблема в том, что мне нужно выполнить их в определенном порядке, чтобы избежать ограничений ограничений, таких как ограничения внешнего ключа. Как я могу это достичь? Любая помощь действительно ценится.Как заказать задачи ETL в Sql Server Data Tools (Integration Services)?

Это хруст моей текущей ETL: This is a snap of my current ETL

ответ

1

Создание отдельного потока данных задачи для каждой таблицы вы, населяющие в потоке управления, а затем просто соединить их вместе в порядке, вам нужно их запустите. Вы должны иметь возможность просто копировать/вставлять компоненты из текущего потока данных в новые созданные вами.

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

Если вы хотите, чтобы некоторые таблицы загружались параллельно, а затем некоторые более поздние таблицы ожидали завершения всех этих операций, я бы предложил добавить контейнер последовательностей и поместить те, которые нужно загрузить параллельно. Затем подключитесь из Контейнера последовательностей к следующим задачам (потокам) потока данных - или даже из одного контейнера последовательностей в другой. Например, вам может понадобиться один контейнер последовательностей, содержащий все процессы загрузки Dimension, за которым следует еще один контейнер последовательности, содержащий все ваши процессы загрузки Fact.

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

+1

Действительно краток! Большое спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^