Use o acompanhamento de linhas para Delta tables

Delta Lake O acompanhamento de linha permite que o site Databricks rastreie a linhagem em nível de linha em uma tabela Delta. Esse recurso é necessário para algumas atualizações incrementais da exibição materializada.

Importante

Delta Lake O acompanhamento de linha está disponível em Databricks Runtime 14.1 e acima.

O acompanhamento de linhas é um recurso de tabela e usa um protocolo de gravação de tabela superior ao de alguns clientes do site Delta Lake. Não é possível fazer downgrade das versões do protocolo de tabela, e as tabelas com acompanhamento de linha ativado não podem ser gravadas por clientes Delta Lake que não sejam compatíveis com todos os recursos de tabela do protocolo de gravação Delta ativados. Consulte Como Databricks o Delta Lake senhor pode gerenciar a compatibilidade do recurso ?

Habilitar acompanhamento de linha

O senhor deve ativar explicitamente o acompanhamento da linha definindo a propriedade delta.enableRowTracking = true da tabela.

O senhor pode fazer isso durante a criação da tabela, como no exemplo a seguir:

CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;

O senhor pode alterar uma tabela existente para permitir o acompanhamento de linhas, como no exemplo a seguir:

ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);

Importante

A ativação do acompanhamento de linha em tabelas existentes atribui automaticamente IDs de linha e versões de linha commit a todas as linhas existentes na tabela. Esse processo pode resultar na criação de várias novas versões da tabela e pode levar um tempo significativo.

A clonagem de uma tabela Delta cria um histórico separado, portanto, os IDs de linha e as versões de linha commit nas tabelas clonadas não correspondem aos da tabela original.

Qual é o esquema dos campos de metadados de acompanhamento de linha?

O acompanhamento de linha adiciona dois campos de metadados ocultos à tabela. O senhor pode adicionar explicitamente esses campos à sua consulta para retornar os valores.

Nome da coluna

Tipo

Valores

Explicação

_metadata.row_id

Long

O identificador exclusivo da linha.

Uma linha mantém o mesmo ID sempre que é modificada por meio de uma instrução MERGE ou UPDATE.

_metadata.row_commit_version

Long

O endereço Delta log ou a versão da tabela em que a linha foi inserida ou atualizada pela última vez.

Uma linha recebe uma nova versão sempre que é modificada por meio de uma instrução MERGE ou UPDATE.

Algumas operações armazenam esses campos de metadados usando o log de transações. A execução de operações OPTIMIZE ou REORG em uma tabela com acompanhamento de linha ativado reescreve os arquivos de dados para armazenar esses campos.

Desativar o acompanhamento da linha

O senhor pode desativar o acompanhamento de linhas definindo a propriedade table como false.

ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);

Importante

A desativação do acompanhamento de linhas não remove o recurso de tabela correspondente e não faz o downgrade da versão do protocolo da tabela. Ele também não remove os campos de metadados da tabela de destino.

Com o acompanhamento de linhas desativado, os IDs de linha gerados não são mais confiáveis para acompanhar linhas exclusivas.

Limitações

Os campos de metadados IDs de linha e versões de linha commit não podem ser acessados durante a leitura do feed de dados de alteração. Consulte Usar o feed de dados de alterações do Delta Lake na Databricks.