Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Delta Lake met à jour une table en réécrivant des fichiers de données entiers. Lorsqu’une commande MERGE met à jour ou supprime quelques lignes dans un fichier, elle doit également réécrire chaque ligne non modifiée de ce fichier. Sans fusion faible et aléatoire, ces lignes non modifiées passent par les mêmes étapes de shuffle que les lignes modifiées. Cela ralentit MERGE et brouille la disposition des données existante, donc les requêtes ultérieures ralentissent également.
La fusion faible et aléatoire est l’implémentation optimisée d’Azure Databricks de MERGE. Il traite les lignes non modifiées séparément des lignes modifiées, sans mélange ni autres calculs coûteux. En conséquence, MERGE il mélange beaucoup moins de données et s’exécute plus rapidement.
La fusion faible et aléatoire est activée par défaut, donc vous n’avez pas besoin de modifier vos MERGE instructions pour en bénéficier. Cela aide surtout lorsqu’un MERGE met à jour un nombre relativement restreint de lignes dans une grande table.
Disposition des données après une fusion
La précédente implémentation MERGE a complètement modifié la disposition des données non modifiées, ce qui a ralenti les opérations ultérieures. La fusion faible et aléatoire tente de préserver la disposition existante des rangées non modifiées, y compris la disposition de liquid clustering. En conséquence, les performances se dégradent plus lentement après une ou plusieurs commandes MERGE, et vous devez exécuter OPTIMIZE moins souvent.
La disposition des lignes mises à jour ou nouvellement insérées n’est peut-être pas optimale. Vous devrez peut-être encore exécuter OPTIMIZE sur des tables avec le clustering liquide activé.
Pour les tables utilisant l’ordre Z, la low shuffle merge tente également de préserver la disposition existante en ordre Z des lignes non modifiées. Vous pourriez encore avoir besoin d’exécuter OPTIMIZE ZORDER BY après une opération MERGE. Databricks recommande d’utiliser le clustering liquide pour toutes les nouvelles tables.