Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O rastreamento de linhas Delta Lake permite que o Azure Databricks acompanhe a linhagem ao nível das linhas numa tabela Delta. Esta funcionalidade é necessária para algumas atualizações incrementais para visualizações materializadas.
Important
A monitorização de linhas do Delta Lake está disponível no Databricks Runtime 14.1 e versões superiores.
O rastreamento de linhas é uma funcionalidade de tabela e utiliza um protocolo de escrita de tabela mais avançado do que alguns clientes Delta Lake. As versões do protocolo de tabela não podem ser desatualizadas, e as tabelas com rastreamento de linhas ativado não são graváveis por clientes Delta Lake que não suportam todas as funcionalidades ativadas de tabelas do protocolo Delta Writer. Consulte Compatibilidade de recursos e protocolos do Delta Lake.
Ativar o rastreamento de linhas
Você deve habilitar explicitamente o rastreio de linhas definindo a propriedade da tabela delta.enableRowTracking = true.
Você 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;
Você pode alterar uma tabela existente para habilitar o rastreamento de linhas, como no exemplo a seguir:
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);
Important
A habilitação do rastreamento de linhas em tabelas existentes atribui automaticamente IDs de linha e versões de confirmação de linha 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 uma quantidade significativa de tempo.
A clonagem de uma tabela Delta cria um histórico separado, de modo que as IDs de linha e as versões de confirmação de linha em tabelas clonadas não correspondem às da tabela original.
Qual é o esquema dos campos de metadados de rastreamento de linha?
O acompanhamento de linhas adiciona dois campos de metadados ocultos à tabela. Você pode adicionar explicitamente esses campos à sua consulta para retornar os valores.
| Nome da coluna | Tipo | Valores | Explanation |
|---|---|---|---|
_metadata.row_id |
Long | O identificador único da linha. | Uma linha mantém o mesmo ID sempre que é modificada usando uma MERGE declaração ou UPDATE declaração. |
_metadata.row_commit_version |
Long | A versão do log ou tabela Delta na qual a linha foi inserida ou atualizada pela última vez. | Uma linha recebe uma nova versão sempre que é modificada usando uma MERGE instrução ou UPDATE . |
Algumas operações armazenam estes campos de metadados usando o registo de transações. A execução de operações OPTIMIZE ou REORG em uma tabela com o rastreamento de linhas habilitado regrava arquivos de dados para armazenar esses campos.
Desativar o rastreamento de linhas
Você pode desativar o rastreamento de linhas definindo a propriedade da tabela como false.
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);
Important
A desativação do rastreamento de linhas não elimina o recurso correspondente da tabela nem reduz a versão do protocolo da tabela. Também não remove os campos de metadados da tabela de destino.
Com o rastreamento de linhas desativado, os IDs de linhas gerados deixam de ser fiáveis para rastrear linhas únicas.
Limitations
Os IDs de linha e os campos de metadados de versões de commit de linha não podem ser acedidos enquanto se lê o feed de dados de alteração. Consulte o feed de alterações de dados do Delta Lake no Azure Databricks.