Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os protocolos de tabela delta lake especificam quais recursos um cliente deve dar suporte para ler ou gravar uma tabela. Esta página aborda versões de protocolo, recursos de tabela, requisitos de compatibilidade e como Azure Databricks gerencia atualizações de protocolo. Consulte também Examinar detalhes da tabela com detalhes de descrição.
Protocolo de tabela e compatibilidade
Cada tabela delta lake tem uma especificação de protocolo que indica o conjunto de recursos necessários para ler e gravar na tabela. Os aplicativos usam a especificação de protocolo para determinar se podem dar suporte a todos os recursos que a tabela usa. Se um aplicativo não puder dar suporte a um recurso no protocolo atual de uma tabela, esse aplicativo não poderá ler ou gravar essa tabela.
A maioria dos novos recursos do Delta Lake exige que você atualize o protocolo de tabela.
A tabela a seguir lista os principais termos que descrevem os protocolos delta lake:
| Prazo | Description |
|---|---|
| Cliente Delta Lake | Qualquer sistema que lê ou grava em uma tabela delta lake. |
| Leia o protocolo | Especifica o suporte necessário para um cliente delta lake ler uma tabela. |
| Protocolo de gravação | Especifica o suporte necessário para que um cliente do Delta Lake grave em uma tabela. |
minReaderVersion |
Valor inteiro do protocolo de leitor. Os valores válidos são 1, 2 ou 3. |
minWriterVersion |
Valor inteiro do protocolo de gravador. Valores válidos são inteiros 2 por meio 7de . |
| O recurso tabela | Uma alternativa refinada às versões de protocolo usadas quando minReaderVersion = 3 e minWriterVersion = 7. Os recursos de tabela são mapeados para recursos do Delta Lake habilitados opcionalmente. |
| Recurso de Escrita | Um recurso de tabela que requer suporte ao cliente de gravação, mas não bloqueia o acesso somente leitura. |
| Recurso leitor | Um recurso de tabela que requer suporte ao cliente de leitura e gravação. Consulte versões do Protocolo e recursos de tabela. |
Os protocolos de gravação e os recursos de gravador afetam apenas a compatibilidade com clientes gravadores, permitindo o acesso somente leitura à tabela a partir de cargas de trabalho herdadas.
Nem todos os recursos do Delta Lake são compatíveis uns com os outros.
Alguns recursos de tabela não podem ser descartados depois de habilitados. Confira Remover um recurso de tabela do Delta Lake e fazer downgrade do protocolo de tabela.
Versões de protocolo e recursos de tabela
Todas as tabelas delta lake incluem uma versão de protocolo baseada em inteiro representada por minReaderVersion e minWriterVersion. Cada versão agrupa vários recursos e os recursos são cumulativos entre versões. Para cumprir o protocolo Delta Lake, os clientes devem implementar o suporte para todos os recursos em uma determinada versão, incluindo todos os recursos lançados anteriormente.
No Databricks Runtime 12.2 LTS e posteriores, os recursos de tabela substituem o protocolo baseado em inteiro por sinalizadores granulares que indicam quais recursos uma tabela usa. Isso permite verificações de compatibilidade mais refinadas entre clientes e tabelas.
Os recursos do gravador de tabela afetam a forma como os dados são gravados. Eles exigem minWriterVersion=7 , mas não bloqueiam clientes leitores.
Os recursos do leitor de tabela afetam a forma como os dados são lidos. Todos os recursos de leitor também são recursos de gravador e exigem minReaderVersion=3 e minWriterVersion=7. Um cliente não pode gravar em uma tabela que não pode ler.
Quando os recursos da tabela estão habilitados, eles aparecem no protocolo como readerFeatures ou writerFeatures. O Delta Lake resolve o protocolo de tabela para a versão mais baixa que dá suporte a todos os recursos habilitados. Veja o protocolo mais baixo possível.
Note
Azure Databricks inclui suporte parcial sem interrupções para recursos de tabela em todas as versões do Databricks Runtime com suporte. Os clientes delta lake do OSS escolhem como implementar o suporte para determinados recursos.
Alterações de protocolo
O protocolo de uma tabela é alterado nas seguintes condições:
- Se um novo recurso estiver habilitado, o protocolo será atualizado.
- Se um recurso de tabela for descartado, o protocolo será rebaixado.
Desativar um recurso de tabela não resulta em um downgrade de protocolo. Você deve remover o recurso para removê-lo totalmente do protocolo. Nem todos os recursos de tabela podem ser descartados. Confira Remover um recurso de tabela do Delta Lake e fazer downgrade do protocolo de tabela.
Todas as operações de alteração de protocolo entram em conflito com gravações simultâneas. As leituras de streaming falham quando encontram uma confirmação que altera os metadados da tabela. Para continuar, reinicie os fluxos afetados. Para obter métodos recomendados, confira Considerações de produção para Streaming Estruturado.
Note
O Databricks recomenda que você nunca altere diretamente as propriedades e minWriterVersion a minReaderVersion tabela. Alterar essas propriedades não impede atualizações de protocolo e defini-las para um valor mais baixo não faz downgrade da tabela. Confira Remover um recurso de tabela do Delta Lake e fazer downgrade do protocolo de tabela.
O que dispara uma atualização de protocolo
Quando você habilita um recurso, o protocolo de tabela é atualizado automaticamente.
As atualizações de protocolo são disparadas das seguintes maneiras:
- Habilite automaticamente com base na sintaxe usada em instruções ou
ALTERinstruçõesCREATE. Por exemplo,CLUSTER BYem umaCREATE TABLEinstrução habilita automaticamente o clustering líquido eGENERATED ALWAYS AShabilita colunas geradas. - Habilite explicitamente por meio das propriedades da tabela. Por exemplo, a configuração
'delta.enableDeletionVectors' = truepermite vetores de exclusão. - Habilitar um recurso pode habilitar automaticamente os recursos necessários. Por exemplo, habilitar o UniForm automaticamente habilita o mapeamento de colunas e habilitar o clustering líquido automaticamente habilita o ponto de verificação V2. Examine a documentação de Azure Databricks relevante para determinar quais recursos de tabela um determinado recurso requer.
Os recursos de leitor atualizam os protocolos de leitura e gravação. Por exemplo, o mapeamento de coluna é um recurso de leitor e requer a atualização de ambos os protocolos porque os dados são armazenados de forma diferente no armazenamento.
Recursos de gravador, como CHECK restrições, atualizam apenas o protocolo de gravação.
Warning
A maioria das atualizações de versão de protocolo é irreversível e pode interromper leitores de tabela, gravadores ou ambos existentes do Delta Lake. Atualize tabelas específicas somente quando necessário e verifique se todas as ferramentas de produção atuais e futuras dão suporte à nova versão do protocolo.
Downgrades de protocolo estão disponíveis para alguns recursos. Confira Remover um recurso de tabela do Delta Lake e fazer downgrade do protocolo de tabela.
Protocolo mais baixo possível
O Delta Lake resolve o protocolo de tabela para a versão mais baixa que dá suporte a todos os recursos habilitados. Isso só pode diminuir minReaderVersion ou minWriterVersionnunca criá-los. Os recursos de tabela nunca são removidos automaticamente. Use DROP FEATURE para remover um recurso de tabela do protocolo.
Se todos os recursos habilitados tiverem suporte total em uma versão de protocolo com base em inteiros inferiores, a tabela poderá reverter para essa versão e remover readerFeatures ou writerFeatures a partir do protocolo. Isso não desabilitará nenhum recurso. Versões de protocolo mais baixas aumentam a compatibilidade porque todos os clientes devem respeitá-las.
Compatibilidade do Azure Databricks e do Databricks Runtime
Azure Databricks apresenta suporte para novos recursos do Delta Lake em versões do Databricks Runtime:
- As tabelas escritas por uma versão inferior do Databricks Runtime têm suporte completo de leitura e gravação em versões mais altas do Databricks Runtime.
- Tabelas escritas por uma versão mais alta do Databricks Runtime podem usar recursos de tabela sem suporte em versões inferiores do Databricks Runtime.
- Alguns recursos permitem gravações de versões inferiores do Databricks Runtime sem aplicar totalmente todas as otimizações para o recurso habilitado.
Se você usar apenas tabelas delta lake por meio de Azure Databricks, você só precisará acompanhar o suporte a recursos usando requisitos mínimos do Databricks Runtime. Se você ler ou gravar tabelas de sistemas externos, deverá verificar se esses clientes dão suporte aos recursos de tabela habilitados em suas tabelas.
Suporte a recursos de tabela com backported
No Databricks Runtime 12.2 LTS e posteriores, os recursos de tabela substituíram o protocolo baseado em inteiro por sinalizadores granulares que indicam quais recursos uma tabela usa.
Azure Databricks tem suporte de recurso de tabela com backported para Databricks Runtime 11.3 LTS e inferior, em vez de dar suporte apenas a versões de protocolo inteiro, mas apenas para recursos já compatíveis com essa versão.
Por exemplo, você pode ler e gravar em uma tabela com colunas geradas habilitadas usando recursos de tabela no Databricks Runtime 9.1 LTS. No entanto, você não pode usar o Databricks Runtime 9.1 LTS para ler e gravar em uma tabela com colunas de identidade habilitadas usando recursos de tabela porque as colunas de identidade exigem Databricks Runtime 10.4 LTS e superior.
Ao usar recursos de tabela com suporte de backported, algumas operações disponíveis em uma determinada versão do Databricks Runtime podem não estar disponíveis na versão do Delta Lake do OSS correspondente. Se sua arquitetura incluir clientes delta lake do OSS, teste a compatibilidade antes de habilitar recursos de tabela em tabelas de produção.
Recursos do Delta Lake e versões necessárias do Databricks Runtime
A tabela a seguir lista a versão mais baixa do Databricks Runtime com suporte total para cada recurso, de modo que todos os recursos disponíveis para leituras e gravações sejam compatíveis.
| Característica | Requer a versão do Databricks Runtime ou posterior | Documentation |
|---|---|---|
CHECK restrições |
Todas as versões com suporte do Databricks Runtime |
CHECK Restrição |
| Alterar feed de dados | Todas as versões com suporte do Databricks Runtime | Usar o feed de dados de alterações no Azure Databricks |
| Colunas geradas | Todas as versões com suporte do Databricks Runtime | Colunas geradas pelo Delta Lake |
| Mapeamento de colunas | Todas as versões com suporte do Databricks Runtime | Renomear e remover colunas usando o mapeamento de colunas do Delta Lake |
| Colunas de Identidade | Todas as versões com suporte do Databricks Runtime | Colunas de identidade |
| Recursos de tabela | Todas as versões com suporte do Databricks Runtime | Versões de protocolo e recursos de tabela |
| Vetores de deleção | Todas as versões com suporte do Databricks Runtime | Vetores de exclusão no Databricks |
| TimestampNTZ | Databricks Runtime 13.3 LTS |
TIMESTAMP_NTZ tipo |
| Uniforme | Databricks Runtime 13.3 LTS | Ler tabelas delta lake com clientes Iceberg usando UniForm |
| Agrupamento de líquidos | Databricks Runtime 13.3 LTS | Usar agrupamento líquido para tabelas |
| Acompanhamento de filas | Azure Databricks Runtime 14.3 LTS | Acompanhamento de linha no Azure Databricks |
| Ampliação de tipo | Databricks Runtime 15.4 LTS | Ampliação de tipo |
| Variant | Databricks Runtime 15.4 LTS | Suporte de tipo variant para Apache Iceberg e Delta Lake |
| Collations | Databricks Runtime 16.1 | Suporte à ordenação para Delta Lake |
| Pontos de verificação protegidos | Databricks Runtime 16.3 | Remover um recurso da tabela Delta Lake e rebaixar o protocolo da tabela |
| Confirmações de catálogo | Databricks Runtime 16.4 LTS | Confirmações de catálogo |
Veja Versões e compatibilidade das notas de versão do Databricks Runtime.
Note
O Lakeflow Spark Declarative Pipelines e o Databricks SQL atualizam automaticamente ambientes de runtime com versões regulares para dar suporte a novos recursos. Confira as notas de versão do Lakeflow Spark Declarative Pipelines e o processo de atualização de versão e notas de versão do Databricks SQL.
Funcionalidades por versão de protocolo
Note
Para compatibilidade do Databricks Runtime, consulte Azure Databricks e compatibilidade do Databricks Runtime.
O Delta Lake usa valores separados de minReaderVersion e minWriterVersion para especificar capacidades de protocolo. O protocolo Delta Lake de código aberto foi padronizado em funcionalidades de tabela, mas alguns clientes ainda usam a versão de protocolo legado. Como alguns clientes podem não dar suporte a todos os recursos, o Databricks recomenda que você verifique com a documentação do cliente e teste a compatibilidade antes de habilitar novos recursos em tabelas de produção.
O Apache Iceberg usa um único format-version em vez de versões de leitor e gravador separados. Uma versão de formato Iceberg indica quais recursos estão disponíveis, mas não exige seu uso. Os recursos são ativados opcionalmente, exceto pelo rastreamento de linhas, que é obrigatório na versão de formato 3. Quando um recurso mostra N/A na coluna Iceberg, é um recurso específico do Delta sem um equivalente de Iceberg direto.
A tabela a seguir lista os requisitos de versão do protocolo para os recursos da tabela Delta Lake e Apache Iceberg. O tipo de recurso indica se um recurso deve ser respeitado apenas para gravações ou para leituras e gravações.
| Característica | Delta minWriterVersion |
Delta minReaderVersion |
Iceberg format-version |
Tipo de funcionalidade |
|---|---|---|---|---|
| Funcionalidade básica | 2 | 1 | 1 | Escritor |
CHECK Restrições |
3 | 1 | N/A | Escritor |
| Alterar feed de dados | 4 | 1 | N/A | Escritor |
| Colunas geradas | 4 | 1 | N/A | Escritor |
| Mapeamento de coluna | 5 | 2 | N/A | Leitor e gravador |
| Colunas de identidade | 6 | 1 | N/A | Escritor |
| Acompanhamento de linhas | 7 | 1 | 3 | Escritor |
| Vetores de deleção | 7 | 3 | 3 | Leitor e gravador |
| TimestampNTZ | 7 | 3 | 1 | Leitor e gravador |
| Agrupamento líquido | 7 | 3 | 1 | Leitor e gravador (1) |
| Leitores de iceberg (UniForm) | 7 | 2 | N/A | Gravador (2) |
| Ampliação de tipo | 7 | 3 | N/A | Leitor e gravador |
| Variante | 7 | 3 | 3 | Leitor e gravador |
| Fragmentação de variante | 7 | 3 | 3 | Leitor e gravador |
| Colações | 7 | 3 | N/A | Leitor e gravador |
| Pontos de verificação protegidos | 7 | 1 | N/A | Escritor |
| Confirmações de catálogo | 7 | 3 | N/A | Leitor e gravador |
(1): o clustering líquido implementa o particionamento oculto.