Поделиться через


Источник «CDC»

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

Внимание

Компоненты потока CDC, включая задачу управления CDC, источник CDC и разделитель CDC, устарели. Дополнительные сведения см. в объявлении.

Источник CDC считывает диапазон данных об изменениях из таблиц изменений SQL Server и передает изменения ниже по другим компонентам служб SSIS.

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

Источник CDC извлекает данные из базы данных SQL Server с помощью таблицы базы данных, представления или инструкции SQL.

Источник CDC использует следующие конфигурации.

  • Диспетчер соединений SQL Server ADO.NET для доступа к базе данных CDC SQL Server. Дополнительные сведения о настройке подключения к источнику CDC см. в разделе о редакторе источника CDC (страница "Диспетчер соединений").

  • Таблица, включенная для CDC.

  • Имя экземпляра отслеживания выбранной таблицы (если таковых существует несколько).

  • Режим обработки изменений.

  • Имя переменной пакета состояния CDC, на основе которой определен диапазон обработки CDC. Источник CDC не изменяет значение этой переменной.

Данные, возвращаемые источником CDC, являются теми же, что возвращают следующие функции CDC SQL Server: cdc.fn_cdc_get_all_changes_<capture-instance-name> или cdc.fn_cdc_get_net_changes_<capture-instance-name> (если они доступны). Единственным необязательным добавлением является столбец __$initial_processing , который указывает, может ли текущий диапазон обработки перекрывать диапазон начальной загрузки таблицы. Дополнительные сведения о начальной обработке см. в разделе CDC Control Task.

Источник CDC имеет один обычный вывод и один вывод ошибок.

Обработка ошибок

Источник CDC имеет вывод ошибок. Вывод ошибок компонента включает следующие выходные столбцы.

  • Код ошибки. Значение всегда равно -1.

  • Столбец с ошибкой. Входной столбец, вызывающий ошибку (это относится к ошибкам преобразования).

  • Столбцы строки с ошибкой. Данные записи, которые вызывают ошибку.

В зависимости от настройки поведения в случае ошибки, источник CDC поддерживает возврат ошибок (преобразование данных, усечение), которые обнаруживаются в процессе извлечения в выводе ошибок.

Поддержка типов данных

Компонент источника CDC для Майкрософт поддерживает все типы данных SQL Server, которые сопоставляются с правильными типами данных служб SSIS.

Устранение нарушений в работе с источником CDC

Ниже приведена информация об устранении нарушений в работе с источником CDC.

Этот скрипт используется для выявления проблем и воспроизведения их в среде SQL Server Management Studio

Операцией источника CDC управляет операция задачи «Управление CDC», выполняемая перед вызовом источника CDC. Задача «Управление CDC» подготавливает значение переменной пакета состояния CDC для включения начального и конечного номеров LSN. Задача выполняет функции, эквивалентные следующему скрипту:

use <cdc-enabled-database-name>  
               declare @start_lsn binary(10), @end_lsn binary(10)  
               set @start_lsn = sys.fn_cdc_increment_lsn(  
                       convert(binary(10),'0x' + '<value-from-state-cs>', 1))  
               set @end_lsn =   
                       convert(binary(10),'0x' + '<value-from-state-ce>', 1)  
               select * from cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,  
@end_lsn, '<mode>')  

где:

  • <cdc-enabled-database-name> — это имя базы данных SQL Server, содержащей таблицы изменений.

  • <value-from-state-cs> — это значение, которое появляется в переменной состояния CDC как CS/<value-from-state-cs>/ (CS означает Current-processing-range-Start, то есть начало текущего диапазона обработки).

  • <value-from-state-ce> — это значение, которое появляется в переменной состояния CDC как CE/<value-from-state-cs>/ (CE означает Current-processing-range-End, то есть конец текущего диапазона обработки).

  • <mode> — это режимы обработки CDC. Режимы обработки могут иметь одно из следующих значений: Все, Все со старыми значениями, Суммарные, Суммарные с маской обновления, Суммарные со слиянием.

Этот скрипт помогает изолировать проблемы, воспроизводив их в СРЕДЕ SQL Server Management Studio, где легко воспроизводить и выявлять ошибки.

Сообщение об ошибке SQL Server

Следующее сообщение может быть возвращено SQL Server:

Задано недостаточное количество аргументов для процедуры или функции cdc.fn_cdc_get_net_changes_<..>.

Эта ошибка не указывает, что отсутствует какой-то аргумент. Она означает, что начало или конец диапазона значений номеров LSN в переменной состояния CDC является недопустимым.

Настройка CDC-источника

Источник CDC можно настраивать программным путем или с помощью конструктора служб SSIS.

Дополнительные сведения см. в одном из следующих разделов:

Диалоговое окно Расширенный редактор содержит свойства, которые можно задавать программным путем.

Открытие диалогового окна Расширенный редактор .

  • На экране Поток данных проекта SQL Server 2019 Integration Services (SSIS) щелкните правой кнопкой мыши источник CDC и выберите "Показать Расширенный редактор".

Дополнительные сведения о свойствах, которые можно установить в диалоговом окне Расширенный редактор , см. в разделе CDC Source Custom Properties.

В этом разделе

Редактор источника «CDC» (страница «Диспетчер соединений»)

Используйте страницу диспетчер подключений диалогового окна редактора исходного кода CDC, чтобы выбрать диспетчер соединений ADO.NET для базы данных SQL Server, из которую источник CDC считывает строки изменения строк (база данных CDC). После выбора базы данных CDC необходимо выбрать в базе данных отслеживаемую таблицу.

Дополнительные сведения об источнике CDC см. в разделе CDC Source.

Список задач

Открытие страницы диспетчера соединений в редакторе источника CDC

  1. В SQL Server Data Tools откройте пакет СЛУЖБ SQL Server 2019 Integration Services (SSIS), имеющий источник CDC.

  2. На вкладке Поток данных дважды щелкните источник CDC.

  3. В окне Редактор источника CDCнажмите кнопку Диспетчер соединений.

Параметры

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

Новый
Нажмите кнопку Создать. Откроется диалоговое окно Настройка редактора диспетчера соединений ADO.NET , где можно создать новый диспетчер соединений.

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

Экземпляр системы отслеживания
Выберите или введите имя экземпляра отслеживания CDC в сочетании с таблицей CDC, которая должна быть считана.

Отслеживаемая исходная таблица может иметь один или два отслеживаемых экземпляра для обеспечения возможности беспрепятственных переходов определения таблицы во время изменений схемы. Если для исходной таблицы отслеживания определено больше одного экземпляра отслеживания, выберите экземпляр отслеживания, который должен здесь использоваться. По умолчанию экземпляр отслеживания для таблицы [схема].[таблица] имеет имя <схема>_<таблица>, но фактически используемые экземпляры отслеживания могут иметь другие имена. Фактической таблицей, из которой выполняется чтение, является таблица CDC cdc .<экземпляр отслеживания>_CT.

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

  • Все: возвращает изменения в текущем диапазоне CDC без значений перед обновлением .

  • Все со старыми значениями: возвращает изменения в текущем диапазоне обработки CDC, включая старые значения (перед обновлением). С каждой операции Update связаны две строки: одна со значениями перед обновлением и еще одна со значениями после обновления.

  • Суммарные: возвращает только по одной строке изменения в расчете на каждую исходную строку, измененную в текущем диапазоне обработки CDC. Если исходная строка была обновлена несколько раз, вырабатывается комбинированное изменение (например, результат операций insert и update формируется как единственное обновление, а результат операций update и delete — как единственное удаление). При работе в режиме обработки изменений «Суммарные» обеспечивается возможность разбивать изменения на выводы Delete, Insert и Update и обрабатывать их параллельно, поскольку единственная исходная строка появляется более чем в одном выводе.

  • Суммарные с маской обновления: этот режим аналогичен обычному режиму "Суммарные", но предусматривает также добавление столбцов логических значений с шаблоном имени __$<имя_столбца>_Changed, которые указывают измененные столбцы в текущей строке изменения.

  • Суммарные со слиянием: этот режим аналогичен обычному режиму "Суммарные", но с операциями Insert и Update, объединенными в одной операции Merge (UPSERT).

Примечание.

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

Переменная, содержащая состояние CDC
Выберите строковую переменную пакета службы SSIS, в которой хранится состояние CDC для текущего контекста CDC. Дополнительные сведения о переменной состояния CDC см. в разделе Определение переменной состояния.

Включить столбец индикатора повторной обработки
Установите этот флажок, чтобы создать специальный выходной столбец __$reprocessing.

Этот столбец имеет значение true , если диапазон обработки CDC перекрывается с начальным диапазоном обработки (с диапазоном номеров LSN, соответствующих периоду начальной загрузки) или если диапазон обработки CDC подвергается повторной обработке вследствие ошибки в предыдущем прогоне. Этот столбец индикатора позволяет разработчику служб SSIS трактовать ошибки иначе при повторной обработке изменений (например, пропускать действия наподобие удаления несуществующей строки или вставки, которая окончилась неудачей из-за дублирующегося ключа).

Дополнительные сведения см. в статье CDC Source Custom Properties.

Редактор источника «CDC» (страница «Столбцы»)

Страница Столбцы диалогового окна Редактор источника CDC используется для сопоставления выходного столбца с каждым внешним (исходным) столбцом.

Список задач

Открытие страницы «Столбцы» редактора источника CDC

  1. В SQL Server Data Tools откройте пакет СЛУЖБ SQL Server 2019 Integration Services (SSIS), имеющий источник CDC.

  2. На вкладке Поток данных дважды щелкните источник CDC.

  3. В окне Редактор источника CDCнажмите кнопку Столбцы.

Параметры

Доступные внешние столбцы
Список доступных внешних столбцов источника данных. В этой таблице нельзя добавлять или удалять столбцы. Выберите используемые столбцы источника. Выбранные столбцы добавляются в список Внешний столбец в порядке выбора.

Внешний столбец
Представление внешних (исходных) столбцов в порядке, заданном при настройке компонентов, которые обрабатывают данные из источника CDC. Чтобы изменить этот порядок, снимите флажки для выбранных столбцов в списке Доступные внешние столбцы , а затем выберите внешние столбцы в другом порядке. Выбранные столбцы добавляются в список Внешний столбец в порядке выбора.

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

Редактор источника «CDC» (страница «Вывод ошибок»)

Страница Вывод ошибок диалогового окна Редактор источника CDC используется для выбора параметров обработки ошибок.

Список задач

Открытие страницы «Вывод ошибок» редактора источника CDC

  1. В SQL Server Data Tools откройте пакет СЛУЖБ SQL Server 2019 Integration Services (SSIS), имеющий источник CDC.

  2. На вкладке Поток данных дважды щелкните источник CDC.

  3. В окне Редактор источника CDCнажмите кнопку Вывод ошибок.

Параметры

Ввод-вывод
Просмотр имени источника данных.

Столбец
Просмотрите внешние (исходные) столбцы, выбранные на странице Диспетчер соединений диалогового окна Редактор источника CDC .

Ошибка
Выберите порядок обработки ошибок в потоке источником CDC: пропустить ошибку, перенаправить строку или вызвать сбой компонента.

Усечение
Выберите порядок обработки усечений в потоке источником CDC: пропустить ошибку, перенаправить строку или вызвать сбой компонента.

Description
Не используется.

Присвоить указанное значение выбранным ячейкам
Выберите, как источник CDC обрабатывает все выбранные ячейки при возникновении ошибки или усечения: пропустить ошибку, перенаправить строку или вызвать сбой компонента.

Применить
Примените параметры обработки ошибок к выбранным ячейкам.

Параметры обработки ошибок

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

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

Пропуск неудачи
Ошибка или усечение пропускается, и строка данных направляется на выход источника CDC.

Перенаправление потока
Ошибка или строка данных усечения направляется на выход ошибок источника CDC. В этом случае используется обработка ошибок источника CDC. Дополнительные сведения см. в статье CDC Source.