Aller au contenu principal

Limitations de Delta Lake sur S3

Delta Lake sur Databricks comporte des considérations spécifiques lors du stockage de tables dans Amazon S3, notamment le versionnage des buckets, les écritures concurrentes et les risques liés à la suppression directe de fichiers.

Gestion de versions de bucket et Delta Lake​

Databricks vous recommande de ne pas activer la gestion des versions de compartiments pour les compartiments qui stockent des données Delta Lake, y compris les tables gérées par Unity Catalog. Delta Lake implémente sa propre gestion des versions et son propre nettoyage de la mémoire.

Lorsque vous activez le versioning de compartiment, S3 conserve des copies des métadonnées et des fichiers de données que les processus manuels et automatisés sur Databricks considèrent comme supprimés. Ceci inclut les fichiers de données que VACUUM supprimerait définitivement et les Logs de transaction nettoyés automatiquement pendant les Opérations de table Delta Lake régulières.

important

Si vous choisissez d'utiliser le versionnement de buckets, Databricks recommande de conserver trois versions et de mettre en œuvre une politique de gestion du cycle de vie qui conserve les versions pendant 7 jours ou moins pour tous les buckets S3 avec le versionnement activé.

Si vous rencontrez un ralentissement des performances sur les tables stockées dans des compartiments avec versioning activé, mentionnez que le versioning des compartiments est activé lorsque vous contactez le support Databricks.

Écritures concurrentes vers des tables Delta Lake sur S3​

Databricks sélectionne automatiquement le mécanisme d’écriture pour les commit de Log de transaction Delta Lake sur S3. Vous n'avez pas besoin de configurer le mécanisme d'écriture.

Databricks prend en charge les écritures concurrentes à partir de plusieurs clusters et Workspace. Pour les compute classiques en cours d'exécution depuis avant le 9 juin 2026, redémarrez le compute avant d'écrire simultanément.

Les rédacteurs personnalisés et externes doivent utiliser des écritures conditionnelles S3 atomiques ou un mécanisme de commit équivalent compatible avec tous les rédacteurs. Les écritures simultanées ne sont pas sûres si un rédacteur quelconque ne dispose pas d’une coordination de commit atomique.

attention

Obsolète

La définition de spark.databricks.delta.multiClusterWrites.enabled sur false est déconseillée et n’est pas prise en charge. Le maintien de cette configuration peut bloquer des opérations ou rendre les écritures simultanées dangereuses.

Supprimez ce paramètre des configurations Spark du compute, des politiques de compute, des définitions de Job, du code de Notebook et des Template de déploiement. Redémarrez le compute après avoir supprimé le paramètre.

Résoudre une configuration d'écritures multi-cluster bloquée​

Vous pouvez recevoir l'erreur suivante lorsqu'une configuration de compute remplace le paramètre obsolète :

Text
This operation has been blocked because spark.databricks.delta.multiClusterWrites.enabled=false was found to be overridden in this session. Using this configuration is unsafe for concurrent writes. Remove this override to access this table.

Pour résoudre cette erreur :

  1. Supprimez spark.databricks.delta.multiClusterWrites.enabled de la configuration du compute, de la politique de compute, de la définition de Job, du code de Notebook ou du Template de déploiement.
  2. Redémarrez le compute et réessayez l’opération.

Si l'opération reste bloquée après le redémarrage du compute, contactez le support Databricks.

Résoudre une écriture inter-cloud bloquée​

Databricks bloque les écritures vers S3 à partir d'un compute en dehors d'AWS lorsque l'écriture ne peut pas fournir de garanties transactionnelles.

Si une écriture inter-cloud est bloquée, exécutez la charge de travail sur un compute AWS ou contactez le support Databricks.

Données obsolètes après la suppression de fichiers avec rm -rf​

N'utilisez pas rm -rf pour supprimer une table Delta Lake. Voir Supprimer ou remplacer une table.