Combinación de orden aleatorio bajo en Azure Databricks

Delta Lake actualiza una tabla reescribiendo archivos de datos completos. Cuando un comando MERGE actualiza o elimina unas pocas filas de un archivo, también debe reescribir cada fila no modificada de ese archivo. Sin la combinación con orden aleatorio bajo, esas filas no modificadas pasan por las mismas fases de orden aleatorio que las filas modificadas. Esto ralentiza MERGE y desordena la disposición de datos existente, por lo que las consultas posteriores también se ralentizan.

La combinación con orden aleatorio bajo es la implementación optimizada de Azure Databricks de MERGE. Procesa las filas sin modificar por separado de las filas modificadas, sin barajado ni otros cálculos costosos. Como resultado, MERGE redistribuye muchos menos datos y se ejecuta más rápido.

La fusión low shuffle está activada por defecto, así que no necesitas cambiar tus MERGE sentencias para beneficiarte de ella. Ayuda especialmente cuando MERGE actualiza un número relativamente pequeño de filas en una tabla grande.

Disposición de datos tras una combinación

La implementación anterior MERGE cambió por completo la disposición de los datos no modificados, lo que ralentizó las operaciones posteriores. La combinación con orden aleatorio bajo intenta conservar el diseño existente de las filas no modificadas, incluido el diseño de agrupación en clústeres líquida. Como resultado, el rendimiento se degrada más lentamente tras uno o más comandos MERGE, y necesitas ejecutar OPTIMIZE menos a menudo.

La disposición de las filas actualizadas o recién insertadas puede no ser óptima. Puede que aún necesites ejecutar OPTIMIZE en tablas con liquid clustering activado.

En las tablas que usan la ordenación Z, la combinación con orden aleatorio bajo también intenta conservar el diseño de orden Z existente de las filas no modificadas. Puede que aún necesites ejecutar OPTIMIZE ZORDER BY después de una MERGE operación. Databricks recomienda usar clústeres líquidos para todas las tablas nuevas.