Caché de consultas
El almacenamiento en caché es una técnica esencial para mejorar el rendimiento de los sistemas de almacenamiento de datos evitando la necesidad de volver a calcular o capturar los mismos datos varias veces. En Databricks SQL, el almacenamiento en caché puede acelerar significativamente la ejecución de consultas y minimizar el uso del almacenamiento, lo que mejorará la eficacia del uso de recursos y reducirá los costes. Cada capa de almacenamiento en caché mejora el rendimiento de las consultas, minimiza el uso del clúster y optimiza el uso de recursos para lograr una experiencia de almacenamiento de datos libre de problemas.
El almacenamiento en caché proporciona numerosas ventajas en el almacenamiento de datos, entre las que se incluyen:
- Velocidad: al almacenar los resultados de las consultas o los datos a los que se accede con frecuencia en la memoria u otros medios de almacenamiento rápido, el almacenamiento en caché puede reducir considerablemente los tiempos de ejecución de consultas. Este almacenamiento es especialmente beneficioso para las consultas repetitivas, ya que el sistema puede recuperar rápidamente los resultados almacenados en caché en lugar de volver a calcularlos.
- Uso reducido del clúster: el almacenamiento en caché minimiza la necesidad de recursos de proceso adicionales gracias a la reutilización de los resultados calculados anteriormente. Esto reducirá el tiempo de actividad general del almacenamiento y la demanda de clústeres de proceso adicionales, lo que provocará un ahorro de costes y una mejor asignación de recursos.
Tipos de caché de consultas en Databricks SQL
Databricks SQL realiza varios tipos de almacenamiento en caché de consultas.
Almacenamiento en caché de la interfaz de usuario de Databricks SQL: almacenamiento en caché por usuario de todos los resultados de consultas y paneles en la interfaz de usuario de Databricks SQL. Cuando los usuarios abran por primera vez un panel o una consulta SQL, la caché de la interfaz de usuario de Databricks SQL mostrará el resultado de la consulta más reciente, incluyendo los resultados de las ejecuciones programadas.
La memoria caché de la interfaz de usuario de SQL de Databricks tiene como máximo un ciclo de vida de 7 días. La memoria caché se encuentra dentro del sistema de archivos de Azure Databricks de su cuenta. Para eliminar los resultados de consulta, vuelva a ejecutar la consulta que ya no quiere almacenar. Una vez que se vuelve a ejecutar, los resultados de consulta antiguos se quitan de la caché. Además, la memoria caché se invalida una vez que se actualicen las tablas subyacentes.
Almacenamiento en caché de resultados: almacenamiento en caché por clúster de los resultados de consulta para todas las consultas mediante almacenes de SQL. El almacenamiento en caché de resultados incluye tanto cachés de resultados locales como remotas, que funcionan conjuntamente para mejorar el rendimiento de las consultas almacenando los resultados de la consulta en medios de almacenamiento remoto o en memoria.
- Caché local: la caché local es una caché en memoria que almacena los resultados de las consultas durante la vigencia del clúster o hasta que la memoria caché está llena, lo que ocurra primero. Esta memoria caché resulta útil para acelerar las consultas repetitivas, lo que eliminará la necesidad de volver a calcular los mismos resultados. Sin embargo, una vez que se detenga o se reinicie el clúster, se limpiará la memoria caché y se quitarán todos los resultados de la consulta.
- Caché de resultados remota: la caché de resultados remota es un sistema de caché solo sin servidor que conserva los resultados de la consulta si los conserva como datos del sistema del área de trabajo. Como resultado, esta caché no se invalida al detenerse o reiniciarse un almacenamiento de SQL. La caché de resultados remotos aborda un punto problemático común en la consulta de almacenamiento en caché, lo que solo permanece disponible mientras se ejecuten los recursos de proceso. La caché remota es una caché compartida persistente en todos los almacenes de un área de trabajo de Databricks.
El acceso a la caché remota de resultados requiere que se esté ejecutando un almacenamiento. Al procesar consultas, un clúster buscará primero en su caché local y, luego, en la caché remota si fuera necesario. Solo si el resultado de la consulta no está almacenado en ninguno de los dos tipos de caché, se ejecuta la consulta. De lo contrario, las caché local y remota tendrán un ciclo de vida de 24 horas que comienza con la entrada de caché. La caché remota de resultados persiste aunque se detenga o reinicie un almacenamiento de SQL. Ambas cachés se invalidan cuando se actualizan las tablas subyacentes.
La caché de resultados remota está disponible para las consultas que usan clientes ODBC/JDBC y la API de instrucciones SQL.
Para deshabilitar el almacenamiento en caché de resultados de consulta, puede ejecutar
SET use_cached_result = false
en el editor SQL.Importante
Debe usar esta opción solo en pruebas o como punto de referencia.
Almacenamiento en caché en disco: almacenamiento en caché SSD local para los datos leídos del almacenamiento de datos para las consultas mediante almacenes de SQL. La caché de disco está diseñada para mejorar el rendimiento de las consultas mediante el almacenamiento de datos en disco, lo que permite lecturas de datos aceleradas. Los datos se almacenan automáticamente en caché cuando se capturan los archivos, utilizando un formato intermedio rápido. Al almacenar copias de los archivos en el almacenamiento local adjunto a los nodos de proceso, la memoria caché de disco garantizará que los datos se encuentren más cerca de los trabajos, lo que da lugar a una mejora del rendimiento de las consultas. Consulte Optimización del rendimiento con el almacenamiento en caché en Azure Databricks.
Además de su función principal, la memoria caché de disco detecta automáticamente los cambios en los archivos de datos subyacentes. Cuando detecta cambios, la memoria caché se invalida. La caché de disco comparte las mismas características de ciclo de vida que la caché de resultados local. Esto significa que, cuando se detenga o reinicie el clúster, la memoria caché se limpiará y deberá volver a llenarse.
El almacenamiento en caché de resultados de consulta y la caché de disco afectan a las consultas de la interfaz de usuario de Databricks SQL y BI y otros clientes externos.