Ir para conteúdo principal

Tabelas de alterações

Você pode usar as ferramentas do endpoint de destino para obter informações usando os metadados nas tabelas de alterações. Esses dados são definidos pelas colunas de cabeçalho adicionadas ao esquema da tabela de alterações. Esses cabeçalhos são descritos na tabela abaixo.

Para cada tabela de destino na tarefa de replicação, uma tabela de alterações com o nome correspondente é mantida no banco de dados com as tabelas de destino. Para obter mais informações, consulte Trabalhando com tabelas de alterações. Uma tabela de alterações contém as colunas da tabela original e as colunas de cabeçalho. As colunas de cabeçalho contêm um prefixo para que o nome não entre em conflito com os nomes das colunas da tabela de origem. O prefixo padrão é header__. Para obter informações sobre como alterar esse prefixo, consulte a listagem de Tabelas de alterações em Metadados em Configurações de tarefas. A tabela a seguir lista as colunas de cabeçalho da tabela de alterações padrão.

Nome da coluna Tipo Descrição

[header__]change_seq

varchar (35)

Um sequenciador de mudanças monotonicamente crescente que é comum a todas as tabelas de alterações de uma tarefa. A sequência de alteração tem o seguinte formato:

YYYYMMDDHHmmSShhxxxxxxxxxxxxxxxxxxx

Em que:

  • AAAA é o ano de quatro dígitos (como 2012)
  • MM é o mês de dois dígitos (intervalo de 01 a 12)
  • DD é o dia de dois dígitos (intervalo de 01 a 31)

  • HH é a hora do dia (varia de 00 a 23)
  • mm é o minuto da hora (intervalo de 00 a 59)
  • SS é o segundo do minuto (intervalo de 00 a 59)
  • hh é o centésimo de segundo (intervalo de 00 a 99)
  • xxxxxxxxxxxxxxxxxxx é um número de alteração de 19 dígitos com prefixo zero (global por tarefa)

A parte do tempo geralmente se refere ao tempo de confirmação da transação que inclui o registro de alteração. O Qlik Talend Data Integration contém uma lógica que mantém a monotonicidade do número de sequência. Portanto, modificar ou ajustar o tempo do ponto final pode fazer com que várias alterações pareçam estar dentro do mesmo carimbo de data/hora, mas com um número de alteração crescente.

O xxx...xxx é geralmente o número de alteração interna do registro de dados, com a diferença de que, para registros BEFORE-IMAGE, é igual ao número de alteração do registro UPDATE correspondente (por exemplo, se o número de alteração de BEFORE-IMAGE for 1000 e o de UPDATE for 1001, ambos terão 1001). Isso permite uma união simples externa à esquerda entre a tabela e ela mesma, em que à esquerda fazemos a varredura até o ponto no tempo, mas removemos operation=before-image, e, à direita, unimos no mesmo change_seq com o change_oper sendo "B".

[header__]change_oper

varchar (1)

O tipo de operação. Pode ser um dos seguintes:

  • I: INSERT
  • D: DELETE
  • U: UPDATE
  • B: Imagem anterior

[header__] change_mask

varbinary (128)

A máscara de alteração indica quais colunas de dados na tabela de alterações estão associadas às colunas que foram alteradas na tabela de origem.

A posição do bit na máscara de alteração é baseada no ordinal da coluna na tabela de alterações. Isso significa que, se houver 5 colunas de cabeçalho, elas ocuparão os bits 0 a 4 e a primeira coluna de dados será o bit 5 na máscara de alteração.

A máscara de alteração é uma coluna binária (uma matriz de bytes) que representa a máscara de alteração em ordem little-endian:

Byte 0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

Byte 1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

Neste exemplo, bit#N indica que a coluna da tabela de alterações do ordinal N se refere a uma coluna que foi alterada na tabela de origem. Se a máscara de atualização for 11000 e o ordinal da coluna for 3, a coluna não foi alterada.

O seguinte descreve a semântica dos bits:

  • Para registros INSERT, todas as colunas inseridas possuem os bits associados definidos.
  • Para registros DELETE, apenas as colunas de chave primária (ou índice exclusivo) têm os bits associados definidos. Isso permite que um aplicador construa uma instrução DELETE sem precisar encontrar os campos de chave primária de outra fonte.
  • Para registros BEFORE-IMAGE, todos os bits estão limpos (a máscara de alteração pode estar vazia).
  • Para registros UPDATE, cada coluna cujo valor mudou entre BEFORE-IMAGE e UPDATE terá o bit associado definido.

Para eficiência de espaço e processamento, o número real de bytes armazenados na máscara de alteração pode ser cortado em nulo. Isso significa que os zeros à direita não precisam ser armazenados. A lógica de tratamento deve levar isso em consideração.

[header__] stream_position

varchar (128)

A posição do fluxo de CDC de origem.

[header__] operation

varchar (12)

A operação associada ao registro de alteração. Pode ser um dos seguintes:

  • INSERT
  • UPDATE
  • DELETE
  • BEFOREIMAGE

[header__] transaction_id

varchar (32)

O ID da transação à qual pertence o registro de alteração.

O valor é uma sequência hexadecimal do ID da transação de 128 bits.

[header__] timestamp

carimbo de data/hora

O carimbo de data/hora UTC da alteração original (o valor pode ser aproximado).

Nota informativa Com a fonte PostgreSQL, o carimbo de data/hora só é conhecido após a ocorrência da confirmação. Portanto, até que as alterações sejam confirmadas nas tabelas de origem, a data padrão será exibida (por exemplo, 1970-01-01).

[header__] partition_name

caractere

O nome da partição criada no destino quando Alterar particionamento de dados está habilitado. O nome da partição consiste na hora de início e término da partição.

Exemplo:

20170313T123000_20170313T170000

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!