Definir uma variável de estado

Aplica-se a: SQL Server SSIS Integration Runtime em Azure Data Factory

Importante

Os componentes de fluxo CDC, incluindo CDC Control Task, CDC Source e CDC Splitter, foram preteridos. Para obter detalhes, consulte o anúncio.

Este procedimento descreve como definir uma variável de pacote onde o estado CDC é armazenado.

A variável de estado CDC é carregada, inicializada e atualizada pela tarefa de Controlo CDC e é usada pelo componente de fluxo de dados de origem CDC para determinar o intervalo de processamento atual para registos de alteração. A variável de estado CDC pode ser definida em qualquer contentor comum à tarefa de Controlo CDC e à fonte CDC. Isto pode ser ao nível do pacote, mas também pode ocorrer noutros contentores, como um contentor loop.

Modificar manualmente o valor da variável de estado do CDC não é recomendado, no entanto pode ser útil para compreender o seu conteúdo.

A tabela seguinte fornece uma descrição de alto nível dos componentes do valor da variável de estado CDC.

Componente Description
<Nome do Estado> Este é o nome do atual estado do CDC.
CS Isto marca o ponto de início da faixa de processamento atual (Início Atual).
<CS-LSN> Este é o último LSN (Número de Sequência de Log) processado na execução anterior do CDC.
CE Isto marca o ponto final do intervalo de processamento atual (Fim Atual). A presença do componente CE no estado CDC indica que ou um pacote CDC está atualmente em processamento ou que um pacote CDC falhou antes de processar totalmente o seu alcance de processamento CDC.
<CE-LSN> Este é o último LSN a ser processado na atual Corrida do CDC. Assume-se sempre que o último número de sequência a ser processado é o máximo (0xFFF...).
IR Isto marca o intervalo inicial de processamento.
<ir-start> Este é um LSN de uma alteração pouco antes do início da carga inicial.
<ir-end> Este é um LSN de uma alteração imediatamente após o fim da carga inicial.
TS Isto marca o carimbo temporal da última atualização estadual do CDC.
<Carimbo temporal> Esta é uma representação decimal da propriedade System.DateTime.UtcNow de 64 bits.
ER Isto aparece quando a última operação falhou e inclui uma breve descrição da causa do erro. Se este componente estiver presente, aparecerá sempre por último.
<texto de erro curto> Esta é a descrição curta do erro.

Os LSNs e números de sequência são codificados cada um como uma cadeia hexadecimal de até 20 dígitos representando o valor LSN de Binary(10).

A tabela seguinte descreve os possíveis valores de estado do CDC.

Estado Description
(INICIAL) Este é o estado inicial antes de qualquer pacote ser executado no grupo atual do CDC. Isto também acontece quando o estado do CDC está vazio.
ILSTART (Carregamento Inicial Iniciado) Este é o estado em que o pacote de carregamento inicial começa, após a chamada de operação MarkInitialLoadStart para a tarefa de Controlo CDC.
ILEND (Carga Inicial Terminada) Este é o estado em que o pacote de carregamento inicial termina com sucesso, após a chamada de operação MarkInitialLoadEnd para a tarefa de Controlo CDC.
ILUPDATE (Atualização de Carregamento Inicial) Este é o estado nas execuções do pacote de atualização de fluxo de gotejamento após a carga inicial, enquanto ainda se processa o intervalo inicial de processamento. Isto ocorre após a chamada de operação GetProcessingRange para a tarefa de Controlo do CDC.

Se usar a coluna __$reprocessing, está definida para 1 para indicar que o pacote pode estar a reprocessar linhas já no destino.
TFEND (AtualizaçãoTrickle-Feed Terminada) Este é o estado esperado para as corridas regulares do CDC. Ele indica que a execução anterior foi concluída com êxito e que uma nova execução com um novo intervalo de processamento pode ser iniciada.
TFSTART Este é o estado numa execução não inicial do pacote de atualização do feed de goteo, após a chamada de operação GetProcessingRange para a tarefa de Controlo do CDC.

Isto indica que uma corrida regular do CDC foi iniciada mas não terminou ou ainda não terminou, de forma limpa (MarkProcessedRange).
TFREDO (Reprocessamento Trickle-Feed Atualizações) Este é o estado de um GetProcessingRange que ocorre após TFSTART. Isto indica que a corrida anterior não foi concluída com sucesso.

Se usar a coluna __$reprocessing, está definida para 1 para indicar que o pacote pode estar a reprocessar linhas já no destino.
ERROR O grupo CDC está num estado de ERRO.

Seguem-se exemplos de valores de variáveis de estado 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/

Para definir uma variável de estado CDC

  1. No SQL Server Data Tools, abra o pacote SQL Server 2019 Integration Services (SSIS) que tem o fluxo CDC onde precisa de definir a variável.

  2. Selecione o separador Explorador de Pacotes e adicione uma nova variável.

  3. Dá à variável um nome que consigas reconhecer como a tua variável de estado.

  4. Dê à variável um tipo de dado String .

Não dê um valor à variável como parte da sua definição. O valor deve ser definido pela tarefa de Controlo do CDC.

Se planeia usar a tarefa de Controlo CDC com Persistência Automática de Estado, a variável de Estado CDC é lida da tabela de estados da base de dados que especifica e é atualizada de volta para essa mesma tabela quando o seu valor muda. Para mais informações sobre a tabela de Estados, consulte Tarefa de Controlo CDC e Editor de Tarefas de Controlo CDC.

Se não estiver a usar a tarefa CDC Control com Persistência Automática de Estados, então deve carregar o valor da variável do armazenamento persistente onde o seu valor foi guardado na última execução do pacote e escrevê-lo novamente no armazenamento persistente quando o processamento do intervalo de processamento atual estiver concluído.