Обработка операций вставки, обновления и удаления

Применимо к: SQL Server Integration Runtime служб SSIS в Фабрика данных 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 .

Разбиение операций вставки, обновления и удаления для обработки с помощью преобразования «Условное разбиение»

  1. На вкладке Поток данных добавьте преобразование «Условное разбиение».

  2. Соедините выход источника OLE DB с преобразованием «Условное разбиение».

  3. На нижней панели Редактора преобразования «Условное разбиение»введите три следующие строки, чтобы обозначить три выхода.

    1. Введите строку с условием CDC_OPERATION == "I" , чтобы направить вставленные строки на выход для вставок.

    2. Введите строку с условием CDC_OPERATION == "U" , чтобы направить обновленные строки на выход для обновлений.

    3. Введите строку с условием CDC_OPERATION == "D" , чтобы направить удаленные строки на выход для удалений.

Следующий шаг

Когда строки разбиты для обработки, следующим шагом является применение изменений к назначению.

Следующий раздел:Применение изменений в назначении

См. также

Преобразование "Условное разбиение"
Разбиение набора данных с помощью преобразования «Условное разбиение»