Pular para o conteúdo principal

Limitações do Delta Lake no S3

Este artigo detalha algumas das limitações que o senhor pode encontrar ao trabalhar com dados armazenados em S3 com Delta Lake em Databricks. O modelo eventualmente consistente usado em Amazon S3 pode levar a possíveis problemas quando vários sistemas ou clusters modificam dados na mesma tabela simultaneamente.

Databricks e Delta Lake suportam gravações em vários clusters por default, o que significa que as consultas que gravam em uma tabela a partir de vários clusters ao mesmo tempo não corromperão a tabela. Para tabelas Delta armazenadas em S3, essa garantia é limitada a um único Databricks workspace.

atenção

Para evitar possíveis problemas de corrupção e perda de dados, o site Databricks recomenda que o senhor não modifique a mesma tabela Delta armazenada em S3 a partir de um espaço de trabalho diferente.

Controle de versão de bucket e Delta Lake

Databricks não recomenda habilitar o controle de versão de bucket para buckets que armazenam dados Delta Lake, incluindo tabelas gerenciais Unity Catalog. O Delta Lake implementa seu próprio controle de versão e coleta de lixo.

Quando o senhor ativa o controle de versão do bucket, o S3 retém cópias de metadados e arquivos de dados que os processos manuais e automatizados nos Databricks consideram excluídos. Isso inclui arquivos de dados que o site VACUUM excluiria permanentemente e logs de transações limpos automaticamente durante as operações regulares da tabela Delta.

important

Se o senhor optar por usar o controle de versão do bucket, a Databricks recomenda manter três versões e implementar uma política de gerenciamento de ciclo de vida que mantenha as versões por 7 dias ou menos para todos os buckets S3 com o controle de versão ativado.

Se o senhor encontrar lentidão no desempenho de tabelas armazenadas em buckets com o controle de versão ativado, indique que o controle de versão do bucket está ativado ao entrar em contato com o suporte da Databricks.

Quais são as limitações das gravações de vários clusters em S3?

Os recursos a seguir não são compatíveis com a execução nesse modo:

O senhor pode desativar as gravações de vários agrupamentos definindo spark.databricks.delta.multiClusterWrites.enabled como false. Se estiverem desativados, as gravações em uma única tabela devem se originar de um único clustering.

atenção

Desativar spark.databricks.delta.multiClusterWrites.enabled e modificar a mesma tabela Delta de vários clusters simultaneamente pode levar à perda ou à corrupção de dados.

Por que uma tabela mostra dados antigos depois que eu excluo os arquivos do Delta Lake com rm -rf e crio uma nova tabela no mesmo local?

O senhor nunca deve usar o site rm -rf para descartar uma tabela Delta. Consulte Soltar ou substituir uma mesa Delta.