Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Disponível no Databricks Runtime 14.1 e posteriores, o rastreamento de linhas atribui identificadores de linha estáveis e versões de consolidação da linha a cada linha, o que permite o rastreio da linhagem ao nível da linha. Algumas atualizações incrementais para vistas materializadas requerem esta funcionalidade.
Todas as tabelas Apache Iceberg v3 incluem rastreamento de linhas. Consulte Usar recursos do Apache Iceberg v3. Para tabelas Delta Lake, tens de ativar explicitamente o rastreio de linhas.
Note
Ativar o rastreamento de linhas melhora o protocolo de escritor de tabelas e pode afetar a compatibilidade com clientes externos Delta Lake. Consulte Compatibilidade de recursos e protocolos do Delta Lake.
Ativar o rastreamento de linhas nas tabelas Delta Lake
Para permitir o rastreamento de linhas numa tabela Delta Lake, defina a propriedade delta.enableRowTracking = true da tabela durante a criação da tabela:
CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;
Para permitir o rastreio de linhas numa tabela Delta Lake existente, use o seguinte exemplo:
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. Este processo pode resultar na criação de várias novas versões da tabela e demorar um tempo significativo a ser concluído.
Warning
Se a sua tabela estiver sujeita a operações de escrita contínuas, como cargas de trabalho do Structured Streaming, interrompa as operações de escrita antes de ativar o controlo de linhas e retome-as após a conclusão da operação. Usar ALTER TABLE para permitir o rastreamento de linhas atualiza metadados da tabela, fazendo com que quaisquer operações de escrita simultâneas falhem com a MetadataChangedException durante toda a operação. Ver exceções de conflito.
Clonar uma tabela cria um histórico separado, por isso os IDs de linhas e as versões de commit de linhas nas tabelas clonadas não correspondem aos da tabela original.
Campos de metadados
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 | Values | 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.
Desative o rastreamento de linhas nas tabelas Delta Lake
Para desligar o rastreamento de linhas numa tabela Delta Lake, defina a propriedade da tabela para false.
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);
Important
Desativar o rastreamento de linhas não remove a funcionalidade correspondente da tabela e não degrada a versão do protocolo de tabela. Também não remove os campos de metadados da tabela de destino. Para remover completamente a funcionalidade de tabela e fazer downgrade do protocolo, use DROP FEATURE. Consulte Remover uma funcionalidade da tabela Delta Lake e fazer downgrade do protocolo da tabela.
Após desligar o rastreio de linhas, os IDs de linha gerados deixam de ser fiáveis para rastrear linhas únicas.
Limitações
Os IDs de linha e os campos de metadados das versões de commit de linha não podem ser acessados durante a leitura do feed de dados de alteração. Veja Usar feed de dados de alterações no Azure Databricks.