Como é a compatibilidade do Databricks gerenciar Delta Lake recurso?
O Delta Lake é um projeto independente de código aberto sob a governança da Linux Foundation. Databricks introduz suporte para o novo recurso Delta Lake e otimizações que se baseiam em Delta Lake nas versões Databricks Runtime.
Databricks As otimizações que utilizam o Delta Lake recurso respeitam os protocolos usados no OSS Delta Lake para fins de compatibilidade.
Muitas otimizações do Databricks exigem a habilitação dos recursos do Delta Lake em uma tabela. Os recursos do Delta Lake são sempre compatíveis com versões anteriores, portanto, as tabelas gravadas por uma versão mais baixo do Databricks Runtime sempre podem ser lidas e gravadas por uma versão superior do Databricks Runtime. Habilitar alguns recursos quebra a compatibilidade com cargas de trabalho em execução em uma versão mais baixo do Databricks Runtime. Para recursos que quebram a compatibilidade, você deve atualizar todas as cargas de trabalho que fazem referência às tabelas atualizadas para usar uma versão compatível do Databricks Runtime.
O senhor pode descartar deletionVectors
, v2Checkpoint
, columnMapping
, typeWidening-preview
, e collations-preview
no Databricks. Consulte Drop Delta table recurso.
Todas as operações de alteração de protocolo entram em conflito com todas as gravações concorrente.
As leituras de transmissão falham quando encontram um commit que altera os metadados da tabela. Se quiser que a transmissão continue, o senhor deve reiniciá-la. Para conhecer os métodos recomendados, consulte Considerações sobre produção para transmissão estruturada.
Quais recursos do Delta Lake requerem atualizações do Databricks Runtime?
O seguinte Delta Lake recurso quebra a compatibilidade futura. Os recursos são ativados em uma base de tabela por tabela. Esta tabela lista a versão mais baixa do Databricks Runtime ainda suportada pelo Databricks.
Recurso | Requer a versão do Databricks Runtime ou posterior | Documentação |
---|---|---|
| Databricks Runtime 9.1 LTS | |
Alterar feed de dados | Databricks Runtime 9.1 LTS | Usar o feed de dados de alteração do Delta Lake no Databricks |
Colunas geradas | Databricks Runtime 9.1 LTS | |
Mapeamento de coluna | Databricks Runtime 10.4 LTS0. | Renomeie e solte colunas com mapeamento de coluna Delta Lake |
Colunas de identidade | Databricks Runtime 10.4 LTS0. | |
Recurso de tabela | Databricks Runtime 12.2 LTS | |
Vetores de deleção | Databricks Runtime 12.2 LTS | |
Carimbo de data/hora NTZ | Databricks Runtime 13.3 LTS | |
UniForm | Databricks Runtime 13.3 LTS | |
Clusters líquidos | Databricks Runtime 13.3 LTS | |
Acompanhamento de linha | Databricks Runtime 14.1 | |
Ampliação de tipo | Databricks Runtime 15.2 | |
Variante | Databricks Runtime 15.3 | |
Agrupamentos | Databricks Runtime 16.1 |
Consulte Databricks Runtime notas sobre as versões e a compatibilidade.
A DLT e o site Databricks SQL atualizam automaticamente os ambientes de tempo de execução com versões regulares para oferecer suporte a novos recursos. Consulte as notas da DLT sobre a versão e o processo de atualização da versão e Databricks SQL notas sobre a versão.
O que é uma especificação de protocolo de tabela?
Toda tabela Delta tem uma especificação de protocolo que indica o conjunto de recursos que a tabela suporta. A especificação do protocolo é usada pelos aplicativos que leem ou gravam a tabela para determinar se eles podem lidar com todos os recursos que a tabela suporta. Se um aplicativo não souber como lidar com um recurso listado como compatível no protocolo de uma tabela, esse aplicativo não poderá ler ou gravar essa tabela.
A especificação do protocolo é separada em dois componentes: o protocolo de leitura e o protocolo de gravação .
A maioria dos upgrades de versão de protocolo é irreversível, e o upgrade da versão do protocolo pode interromper os leitores, gravadores ou ambos da tabela Delta Lake. Databricks Recomenda que o senhor atualize tabelas específicas somente quando necessário, como, por exemplo, para optar pelo novo recurso em Delta Lake. O senhor também deve verificar se todas as suas ferramentas de produção atuais e futuras suportam tabelas Delta Lake com a nova versão do protocolo.
Os downgrades de protocolo estão disponíveis para alguns recursos. Consulte Drop Delta table recurso.
Protocolo de leitura
O protocolo de leitura lista todos os recursos que uma tabela suporta e que um aplicativo deve entender para ler a tabela corretamente. A atualização do protocolo de leitura de uma tabela exige que todos os aplicativos de leitura suportem o recurso adicionado.
Todos os aplicativos que gravam em uma tabela Delta devem ser capazes de criar um Snapshot da tabela. Dessa forma, as cargas de trabalho que gravam em tabelas Delta devem respeitar os requisitos do protocolo de leitura e gravação.
Se o senhor encontrar um protocolo que não seja compatível com uma carga de trabalho no Databricks, deverá fazer upgrade para um Databricks Runtime superior compatível com esse protocolo.
Protocolo de gravação
O protocolo de gravação lista todos os recursos que uma tabela suporta e que um aplicativo deve entender para gravar corretamente na tabela. A atualização do protocolo de gravação de uma tabela exige que todos os aplicativos de gravação suportem o recurso adicionado. Ela não afeta aplicativos somente de leitura, a menos que o protocolo de leitura também seja atualizado.
Quais protocolos devem ser atualizados?
Alguns recursos exigem a atualização do protocolo de leitura e do protocolo de gravação. Outros recursos exigem apenas a atualização do protocolo de gravação.
Por exemplo, o suporte às restrições do CHECK
é um recurso do protocolo de gravação: somente os aplicativos de gravação precisam conhecer as restrições do CHECK
e aplicá-las.
Por outro lado, o mapeamento de colunas exige a atualização dos protocolos de leitura e gravação. Como os dados são armazenados de forma diferente na tabela, os aplicativos de leitura devem entender o mapeamento de colunas para que possam ler os dados corretamente.
Versões mínimas de leitor e escritor
Você deve atualizar explicitamente a versão do protocolo da tabela ao ativar o mapeamento de colunas.
Quando o senhor ativa o Delta recurso em uma tabela, o protocolo da tabela é atualizado automaticamente. A Databricks não recomenda alterar as propriedades das tabelas minReaderVersion
e minWriterVersion
. Alterar essas propriedades da tabela não impede a atualização do protocolo. Definir esses valores para um valor menor não reduz a tabela. Consulte Drop Delta table recurso.
O que são recursos de tabela?
Em Databricks Runtime 12.2 LTS e acima, Delta Lake a tabela recurso introduz sinalizadores granulares que especificam quais recursos são suportados por uma determinada tabela. Em Databricks Runtime 11.3 LTS e abaixo, Delta Lake recurso foram ativados em pacotes chamados versões de protocolo . Os recursos de tabela são os sucessores das versões de protocolo e foram projetados com o objetivo de aumentar a flexibilidade dos clientes que leem e gravam Delta Lake. Consulte O que é uma versão de protocolo?.
A tabela recurso apresenta os requisitos de versão do protocolo. Ver recurso por versão de protocolo.
Um recurso de tabela Delta é um marcador que indica que a tabela suporta um determinado recurso. Cada recurso é um recurso de protocolo de gravação (o que significa que ele atualiza apenas o protocolo de gravação) ou um recurso de protocolo de leitura/gravação (o que significa que os protocolos de leitura e gravação são atualizados para ativar o recurso).
Para saber mais sobre o recurso de tabela suportado em Delta Lake, consulte o protocoloDelta Lake.
O recurso de tabela altera a forma como o recurso Delta Lake é ativado?
Se o senhor só interagir com as tabelas Delta por meio do Databricks, poderá continuar a rastrear o suporte para o recurso Delta Lake usando os requisitos mínimos do Databricks Runtime. Databricks suporta a leitura de tabelas Delta que foram atualizadas para a tabela recurso em todas as versões Databricks Runtime LTS , desde que todos os recursos usados pela tabela sejam suportados por essa versão.
Se o senhor ler e gravar em tabelas do Delta usando outros sistemas, talvez seja necessário considerar como o recurso de tabela afeta a compatibilidade, pois há o risco de o sistema não entender as versões atualizadas do protocolo.
O recurso de tabela foi introduzido no formato Delta Lake para a versão 7 do gravador e para a versão 3 do leitor. O site Databricks tem um código retroativo para todas as versões suportadas do site Databricks Runtime LTS para adicionar suporte ao recurso de tabela, mas somente para os recursos já suportados nesse site Databricks Runtime. Isso significa que, embora o senhor possa optar por usar o recurso de tabela para habilitar as colunas geradas e ainda trabalhar com essas tabelas em Databricks Runtime 9.1 LTS, as tabelas com colunas de identidade habilitadas (o que requer Databricks Runtime 10.4 LTS) ainda não são compatíveis com esse Databricks Runtime.
O que é uma versão de protocolo?
Uma versão de protocolo é um número de protocolo que indica um grupo específico de recursos da tabela. Em Databricks Runtime 11.3 LTS e abaixo, o senhor não pode ativar o recurso de tabela individualmente. As versões de protocolo agrupam um grupo de recursos.
Delta As tabelas especificam uma versão de protocolo separada para o protocolo de leitura e o protocolo de gravação. A transação log para uma tabela Delta contém informações de versão de protocolo que dão suporte à evolução da Delta Lake. Veja os detalhes da tabela Review Delta Lake com detalhes descritivos.
As versões do protocolo agrupam todos os recursos dos protocolos anteriores. Ver recurso por versão de protocolo.
A partir da versão 7 do writer e da versão 3 do reader, o site Delta Lake introduziu o conceito de recurso de tabela. Usando o recurso de tabela, agora o senhor pode optar por habilitar apenas os recursos que são suportados por outros clientes em seu ecossistema de dados. Consulte O que são recursos de tabela?
recurso por versão de protocolo
A tabela a seguir mostra as versões mínimas de protocolo necessárias para Delta Lake recurso.
Se o senhor estiver preocupado apenas com a compatibilidade do Databricks Runtime, consulte Quais recursos do Delta Lake requerem atualizações do Databricks Runtime? Delta Sharing suporta apenas a leitura de tabelas com recurso que requer minReaderVersion
= 1
.
Recurso |
|
| Documentação |
---|---|---|---|
Funcionalidade básica | 2 | 1 | |
| 3 | 1 | |
Alterar feed de dados | 4 | 1 | Usar o feed de dados de alteração do Delta Lake no Databricks |
Colunas geradas | 4 | 1 | |
Mapeamento de coluna | 5 | 2 | Renomeie e solte colunas com mapeamento de coluna Delta Lake |
Colunas de identidade | 6 | 2 | |
Leitura de recurso de tabela | 7 | 1 | |
Gravação de recurso de tabela | 7 | 3 | |
Acompanhamento de linha | 7 | 1 | |
Vetores de deleção | 7 | 3 | |
Carimbo de data/hora NTZ | 7 | 3 | |
Clusters líquidos | 7 | 3 | |
UniForm | 7 | 2 | |
Ampliação de tipo | 7 | 3 | |
Variante | 7 | 3 | |
Agrupamentos | 7 | 3 |