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


CDC-источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компонент источника CDC для Microsoft поддерживает все типы данных 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 2012 Integration Services (SSIS) щелкните правой кнопкой мыши источник CDC и выберите элемент Показать расширенный редактор.

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

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

См. также