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.
Note
La fusion à faible remaniement est généralement disponible (GA) dans Databricks Runtime 10.4 LTS et versions ultérieures et en préversion publique dans Databricks Runtime 9.1 LTS. Databricks recommande que les clients en préversion migrent vers Databricks Runtime 10.4 LTS ou version ultérieure.
La commande MERGE permet d’effectuer des mises à jour simultanées, des insertions et des suppressions d’une table Delta Lake. Azure Databricks a une implémentation optimisée de MERGE qui améliore considérablement les performances des charges de travail courantes en réduisant le nombre d’opérations de permutation.
La fusion avec peu de brassage de Databricks améliore les performances en traitant les lignes non modifiées dans un mode de traitement distinct et plus efficace, au lieu de les traiter avec les lignes modifiées. Par conséquent, la quantité de données aléatoires est réduite de manière significative, ce qui entraîne une amélioration des performances. La fusion aléatoire faible réduit également la nécessité pour les utilisateurs de réexécuter OPTIMIZE après avoir effectué une MERGE opération.
Optimisation des performances
De nombreuses MERGE charges de travail ne mettent à jour qu’un nombre relativement faible de lignes dans une table. Toutefois, les tables Delta ne peuvent être mises à jour que par fichier. Lorsque la MERGE commande doit mettre à jour ou supprimer un petit nombre de lignes stockées dans un fichier particulier, elle doit également traiter et réécrire toutes les lignes restantes stockées dans le même fichier, même si ces lignes ne sont pas modifiées. La fusion avec un faible degré de remaniement optimise le traitement des lignes non modifiées. Auparavant, ils étaient traités de la même façon que les lignes modifiées, en les passant par plusieurs phases de remaniement et calculs coûteux. Dans une fusion à faible remaniement, les lignes non modifiées sont traitées sans remaniements, traitement intensif ou autre surcharge supplémentaire.
Disposition des données optimisées
La fusion moins aléatoire s'exécute plus rapidement et améliore les opérations suivantes. L’implémentation précédente MERGE a modifié entièrement la disposition des données non modifiées, ce qui dégrade les performances des opérations suivantes. La fusion aléatoire faible conserve la disposition des données existantes des enregistrements non modifiés, y compris la disposition de clustering liquide , sur une base optimale, les performances se dégradent plus lentement après l’exécution d’une ou plusieurs MERGE commandes.
Note
La fusion avec faible réorganisation cherche à préserver la structure des données sur les données existantes qui ne sont pas modifiées. La disposition des données mises à jour ou nouvellement insérées peut ne pas être optimale. Il peut donc être nécessaire de s’exécuter OPTIMIZE sur des tables avec clustering liquide activé.
Availability
La fusion aléatoire faible est activée par défaut dans Databricks Runtime 10.4 et versions ultérieures. Dans les versions antérieures de Databricks Runtime prises en charge, elle peut être activée en configurant spark.databricks.delta.merge.enableLowShuffle à true. Cet indicateur n’a aucun effet dans Databricks Runtime 10.4 et versions ultérieures.
Classement Z hérité
Pour les tables utilisant l’ordre Z, la fusion avec faible réarrangement tente également de conserver la disposition de l’ordre Z existant sur des données non modifiées dans la mesure du possible. La disposition des données mises à jour ou nouvellement insérées peut ne pas être optimale. Il peut donc être nécessaire d’exécuter OPTIMIZE ZORDER BY après une MERGE opération. Databricks recommande d’utiliser le clustering liquide pour toutes les nouvelles tables.