Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota
Está disponible con carácter general (GA) en Databricks Runtime 10.4 LTS y versiones posteriores y en versión preliminar pública en Databricks Runtime 9.1 LTS. Databricks recomienda que los clientes en versión preliminar migren a Databricks Runtime 10.4 LTS o superior.
El comando MERGE se usa para realizar actualizaciones simultáneas, inserciones y eliminaciones de una tabla de Delta Lake. Azure Databricks tiene una implementación optimizada de MERGE que mejora considerablemente el rendimiento de las cargas de trabajo comunes al reducir el número de operaciones de intercambio.
La combinación de orden aleatorio bajo de Databricks proporciona un mejor rendimiento mediante el procesamiento de filas sin modificar en un modo de procesamiento independiente y más simplificado, en lugar de procesarlas junto con las filas modificadas. Como resultado, la cantidad de datos aleatorios se reduce significativamente, lo que conduce a un rendimiento mejorado. La fusión con bajo intercambio también reduce la necesidad de que los usuarios vuelvan a ejecutar OPTIMIZE después de realizar una operación MERGE.
Rendimiento optimizado
Muchas cargas de trabajo MERGE solo actualizan una cantidad relativamente pequeña de filas en una tabla. Sin embargo, las tablas Delta solo se pueden actualizar por archivo. Cuando el comando MERGE necesita actualizar o eliminar un pequeño número de filas almacenadas en un archivo determinado, también debe procesar y volver a escribir todas las filas restantes almacenadas en el mismo archivo, aunque estas filas no estén modificadas. La combinación de orden aleatorio bajo optimiza el procesamiento de las filas sin modificar. Anteriormente, se procesaban igual que las filas modificadas, pasándolas por varias fases de reordenamiento y cálculos costosos. En la combinación de orden aleatorio bajo, las filas sin modificar se procesan sin órdenes aleatorios, procesamientos costosos ni ninguna otra sobrecarga adicional.
Diseño de datos optimizado
La combinación de baja reorganización es más rápida de ejecutar y beneficia a las operaciones posteriores. La implementación anterior MERGE cambió completamente el diseño de los datos no modificados, lo que degradó el rendimiento en las operaciones posteriores. La combinación de baja mezcla preserva el diseño de datos existente de los registros sin modificar, incluido el diseño de agrupamiento líquido, en la medida de lo posible, y el rendimiento se degrada de manera más gradual después de ejecutar uno o más comandos.
Nota
La combinación de orden aleatorio bajo solo conservará el diseño de los datos existentes que no se modifiquen. Es posible que el diseño de los datos actualizados o recién insertados no sea óptimo, por lo que puede ser necesario ejecutar OPTIMIZE en tablas con agrupamiento dinámico habilitado.
Disponibilidad
La combinación de orden aleatorio bajo está habilitada de manera predeterminada en Databricks Runtime 10.4 y versiones posteriores. En versiones anteriores admitidas de Databricks Runtime, se puede habilitar estableciendo la configuración spark.databricks.delta.merge.enableLowShuffle en true. Esta marca no tiene ningún efecto en Databricks Runtime 10.4 y versiones posteriores.
Ordenación Z heredada
En el caso de las tablas que utilizan el orden Z, el proceso de combinación con poco intercambio también intenta conservar el diseño de orden Z existente en los datos no modificados, haciendo el mejor esfuerzo posible. Es posible que el diseño de datos de los datos actualizados o recién insertados no sea óptimo, por lo que puede ser necesario ejecutar OPTIMIZE ZORDER BY después de una MERGE operación. Databricks recomienda usar clústeres líquidos para todas las tablas nuevas.