Pular para o conteúdo principal

Limitações do Delta Lake no S3

O Delta Lake no Databricks apresenta limitações específicas ao armazenar tabelas no Amazon S3, incluindo restrições de versionamento de buckets, restrições de gravação em vários clusters e riscos decorrentes da exclusão direta de arquivos.

Controle de versão de bucket e Delta Lake

A Databricks recomenda que você não ative o versionamento de buckets para buckets que armazenam dados do Delta Lake, incluindo tabelas gerenciadas pelo Unity Catalog. O Delta Lake implementa seu próprio sistema de versionamento e coleta de lixo.

Ao ativar o versionamento de buckets, o S3 retém cópias de metadados e arquivos de dados que os processos manuais e automatizados do Databricks consideram excluídos. Isso inclui arquivos de dados que VACUUM excluiria permanentemente e logs de transação limpos automaticamente durante as operações regulares da tabela Delta Lake.

importante

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 você notar lentidão no desempenho de tabelas armazenadas em buckets com versionamento ativado, mencione que o versionamento de buckets está ativado ao entrar em contato com o suporte do Databricks.

Limitações de gravação em vários clusters

atenção

Para evitar possíveis problemas de corrupção e perda de dados, o Databricks recomenda que você não modifique a mesma tabela Delta Lake armazenada no S3 de diferentes workspaces.

O modelo de consistência eventual usado no Amazon S3 pode levar a problemas potenciais quando vários sistemas ou clusters modificam dados na mesma tabela simultaneamente.

Databricks e Delta Lake suportam gravações multi-clusters por default, o que significa que consultas gravando em uma tabela a partir de múltiplos clusters ao mesmo tempo não corromperão a tabela. Para tabelas Delta Lake armazenadas no S3, esta garantia é limitada a um único workspace do Databricks.

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

Você pode desativar as gravações em vários clusters definindo spark.databricks.delta.multiClusterWrites.enabled como false. Se estiverem desativados, as gravações em uma única tabela devem originar-se de um único cluster.

atenção

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

Dados obsoletos após a exclusão de arquivos com rm -rf

Não use rm -rf para excluir uma tabela do Delta Lake. Consulte Soltar ou substituir uma tabela.