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


Определение переменной состояния

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

Внимание

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

Эта процедура описывает, как определить переменную пакета, в которой хранится информация состояния CDC.

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

Изменение значения переменной состояния CDC вручную не рекомендуется, однако полезно понять его содержимое.

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

Компонент Description
<state-name> Это имя текущего состояния CDC.
CS Это обозначает точку начала текущего диапазона обработки (Current Start).
<cs-lsn> Это последний регистрационный номер транзакции в журнале, обработанный во время предыдущего запуска CDC.
CE Это обозначает конечную точку текущего диапазона обработки (Current End). Наличие компонента CE в состоянии CDC указывает на то, что пакет CDC обрабатывается в данный момент или что произошел сбой пакета CDC до полного завершения обработки всего диапазона CDC.
<ce-lsn> Это последний номер LSN, который должен быть обработан во время текущего выполнения CDC. Всегда предполагается, что последний номер последовательности для обработки является максимальным (0xFFF...).
IR Это обозначает начальный диапазон обработки.
<ir-start> Это номер LSN изменения прямо перед началом первоначальной загрузки.
<ir-end> Это номер LSN изменения непосредственно после завершения первоначальной загрузки.
TS Это обозначает отметку времени последнего обновления состояния CDC.
<timestamp> Это десятичное представление 64-разрядного свойства System.DateTime.UtcNow.
ER Оно отображается в случае сбоя последней операции и содержит краткое описание причины ошибки. При наличии этого компонента он всегда отображается последним.
<short-error-text> Это краткое описание ошибки.

Номера LSN и последовательные номера кодируются в виде шестнадцатеричной строки длиной до 20 знаков, представляющей значение LSN Binary(10).

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

State Description
(INITIAL) Это начальное состояние перед запуском любого пакета в текущей группе CDC. Это состояние также имеет место, если состояние CDC пусто.
ILSTART (запуск начальной загрузки) Это состояние, когда запускается начальная загрузка пакета после вызова задачи «Управление CDC» операцией MarkInitialLoadStart .
ILEND (завершение начальной загрузки) Это состояние, когда начальная загрузка пакета успешно завершается после вызова задачи «Управление CDC» операцией MarkInitialLoadEnd .
ILUPDATE (обновление начальной загрузки) Это состояние после выполнения пакета обновления тонкого канала после начальной загрузки во время продолжения обработки диапазона начальной обработки. Это происходит после вызова задачи «Управление CDC» операцией GetProcessingRange .

Если используется столбец __$reprocessing, для него установлено значение 1, чтобы указать, что пакет может повторно обрабатывать строки, уже на целевом объекте.
TFEND (завершение обновления тонкого канала) Это состояние, ожидаемое для регулярного выполнения CDC. Оно показывает, что предыдущее выполнение завершилось успешно и можно начинать новое выполнение с новым диапазоном обработки.
TFSTART Это состояние в неинициальном запуске пакета обновления веб-канала, после вызова операции GetProcessingRange для задачи управления CDC.

Это означает, что запущен обычный запуск CDC, но не завершен или еще не завершен (MarkProcessedRange).
TFREDO (повторная обработка обновления тонкого канала) Это состояние операции GetProcessingRange , наступающее после TFSTART. Это означает, что предыдущий запуск не завершился успешно.

Если используется столбец __$reprocessing, для него установлено значение 1, чтобы указать, что пакет может повторно обрабатывать строки, уже на целевом объекте.
ОШИБКА Группа CDC находится в состоянии ERROR.

Ниже приведены примеры значений переменной состояния CDC.

  • ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/

  • ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/

  • TFEND/CS/0x0000025B000001BC0003/TS/2011-07-17T12:05:58.1001145/

  • TFSTART/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:43.9344900/

  • TFREDO/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:59.5544900/

Определение переменной состояния CDC

  1. В SQL Server Data Tools откройте пакет служб SQL Server 2019 Integration Services (SSIS), имеющий поток CDC, в котором необходимо определить переменную.

  2. Выберите вкладку обозревателя пакетов и добавьте новую переменную.

  3. Присвойте переменной имя, которое поможет обозначить ее как переменную состояния.

  4. Назначьте переменной тип данных String .

Не присваивайте переменной значение как часть его определения. Значение должно быть задано задачей «Управление CDC».

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

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

См. также

CDC Control Task
CDC Control Task Editor