Обработка операций вставки, обновления и удаления
Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure
В потоке данных пакета служб Integration Services, выполняющего добавочную загрузку информации об измененных данных, второй задачей является разделение вставок, обновлений и удалений. Затем можно использовать соответствующие команды, чтобы применить их к назначению.
Примечание.
Первой задачей в проектировании потока данных пакета, выполняющего добавочную загрузку измененных данных, является настройка исходного компонента, который запрашивает измененные данные. Дополнительные сведения об этом компоненте см. в разделе Получение и интерпретация измененных данных. Описание общего процесса создания пакета, выполняющего добавочную загрузку информации об изменениях, см. в разделе Система отслеживания измененных данных (SSIS).
Связывание понятных значений для разделения операций вставки, обновления и удаления
В приведенном примере извлечения измененных данных функция cdc.fn_cdc_get_net_changes_<экземпляр_отслеживания> возвращает только столбец метаданных с именем __$operation. Этот столбец метаданных содержит порядковое значение, которое указывает операцию, вызвавшую изменение.
Примечание.
Дополнительные сведения о запросе, использующем вызовы функции cdc.fn_cdc_get_net_changes_<экземпляр_отслеживания>, см. в статье Создание функции для получения информации об изменениях.
Связать порядковое значение с соответствующей операцией сложнее, чем использовать мнемонический код операции. Например, «D» может представлять операцию удаления, а «I» — операцию вставки. В примере запроса, созданном в разделе Создание функции для получения измененных данных, порядковое значение преобразуется в понятное строковое значение, которое возвращается в новом столбце. Это преобразование показано в следующем сегменте кода:
select
...
case __$operation
when 1 then 'D'
when 2 then 'I'
when 4 then 'U'
else null
end as CDC_OPERATION
Настройка преобразования «Условное разбиение» для направления операций вставки, обновления и удаления в разные выходы
Если требуется направить строки измененных данных на один из трех выходов, преобразование «Условное разбиение» подходит идеально. Это преобразование проверяет значение столбца CDC_OPERATION в каждой строке и определяет, было изменение вставкой, обновлением или удалением.
Примечание.
Столбец CDC_OPERATION содержит понятное строковое значение, полученное из числового значения в столбце __$operation .
Разбиение операций вставки, обновления и удаления для обработки с помощью преобразования «Условное разбиение»
На вкладке Поток данных добавьте преобразование «Условное разбиение».
Соедините выход источника OLE DB с преобразованием «Условное разбиение».
На нижней панели Редактора преобразования «Условное разбиение»введите три следующие строки, чтобы обозначить три выхода.
Введите строку с условием
CDC_OPERATION == "I"
, чтобы направить вставленные строки на выход для вставок.Введите строку с условием
CDC_OPERATION == "U"
, чтобы направить обновленные строки на выход для обновлений.Введите строку с условием
CDC_OPERATION == "D"
, чтобы направить удаленные строки на выход для удалений.
Следующий шаг
Когда строки разбиты для обработки, следующим шагом является применение изменений к назначению.
Следующий раздел: применение изменений к назначению
См. также
Преобразование "Условное разбиение"
Разбиение набора данных с помощью преобразования "Условное разбиение"