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.
Leer datos desde el almacenamiento de objetos en la nube es más lento que leer desde el disco local. Sin caché, las consultas y notebooks que leen los mismos archivos de datos de Parquet los recuperan repetidamente desde el almacenamiento de objetos en la nube cada vez.
Azure Databricks utiliza caché de disco para acelerar las lecturas de datos. Cuando un nodo obtiene un archivo de datos Parquet desde almacenamiento remoto, almacena automáticamente una copia en su almacenamiento local en un formato intermedio rápido. Las lecturas posteriores de los mismos datos se ejecutan localmente y son significativamente más rápidas. La caché funciona para todos los archivos de datos de Parquet, incluidas las tablas Delta Lake.
Nota
En los almacenes de SQL y Databricks Runtime 14.2 y versiones posteriores, se ignora el comando CACHE SELECT. En su lugar, se usa un algoritmo de almacenamiento en caché de disco mejorado.
Prácticas recomendadas
La caché de disco ayuda especialmente con cargas de trabajo que leen los mismos datos muchas veces, como consultas repetidas o iterativas en las mismas tablas. Azure Databricks lo activa automáticamente en tipos de instancias de trabajadores que lo soportan. Para ayudar a que la caché de disco acelere las lecturas, sigue estas prácticas:
- Elige un tipo de instancia worker que soporte caché de disco. Consulte Selección de tipos de instancia para usar el almacenamiento en caché de disco.
- Usa la caché de disco en lugar de la caché de Apache Spark para lecturas repetidas de datos de Parquet y Delta Lake. Consulta Comparar la caché de disco y la caché de Spark.
Se ha cambiado el nombre de caché delta a caché de disco
El almacenamiento en caché de disco de Azure Databricks se denominaba antes caché delta y caché DBIO. El comportamiento del almacenamiento en caché de disco es una característica propietaria de Azure Databricks. Este cambio de nombre busca resolver la confusión de que formaba parte del protocolo Delta Lake.
Compara la caché de disco y la caché de Spark
La caché de disco de Azure Databricks difiere del almacenamiento en caché de Apache Spark. Databricks recomienda usar almacenamiento en caché automático en disco.
En la tabla siguiente se resumen las principales diferencias entre el almacenamiento en caché de disco y de Apache Spark para que pueda elegir la herramienta más adecuada para su flujo de trabajo:
| Característica | Caché de disco | cache de Apache Spark |
|---|---|---|
| Almacenado como | Archivos locales en un nodo de trabajo. | Bloques en memoria, pero depende del nivel de almacenamiento. |
| Se aplica a | Cualquier tabla de Parquet almacenada en ABFS y otros sistemas de archivos. | Cualquier DataFrame o RDD. |
| Activado | Automáticamente en la primera lectura (si la caché está habilitada). | Manualmente. Requiere cambios en el código. |
| Evaluado | De forma perezosa. | De forma perezosa. |
| Disponibilidad | Activado por defecto en ciertos tipos de nodos. Lo activas o desactivas con flags de configuración. | Siempre está disponible. |
| Desalojado | Automáticamente según LRU o tras cualquier cambio en los archivos, manualmente al reiniciar un clúster. | Automáticamente según LRU, manualmente con unpersist. |
Coherencia de la caché de disco
La caché de disco detecta automáticamente cuándo se crean, eliminan, modifican o sobrescriben archivos de datos y actualiza su contenido en consecuencia. Puede escribir, modificar y eliminar datos de tabla sin necesidad de invalidar explícitamente los datos almacenados en caché. Las entradas obsoletas se invalidan automáticamente y se expulsan de la caché.
Seleccionar tipos de instancia para usar el almacenamiento en caché de disco
La manera recomendada (y más sencilla) de usar el almacenamiento en caché de disco es elegir un tipo de worker con volúmenes SSD al configurar el clúster. Estos trabajadores se habilitan y se configuran para el almacenamiento en caché de disco.
La caché de disco está configurada para usar como máximo la mitad del espacio disponible en los discos SSD locales proporcionados con los nodos de trabajo. Para conocer las opciones de configuración, consulte Configure la caché de disco.
Configurar la caché de disco
Databricks recomienda que elijas tipos de instancias de worker aceleradas en caché para tus recursos de cómputo. Estas instancias se configuran automáticamente de forma óptima para la caché de disco.
Nota
Cuando se retira un nodo de trabajo, se pierde la caché de Spark almacenada en ese nodo de trabajo. Por lo tanto, si el escalado automático está habilitado, hay cierta inestabilidad con la caché. A continuación, Spark tendría que volver a leer las particiones que faltan en el origen, según sea necesario.
Configurar el uso del disco
Para configurar cómo la caché de disco utiliza el almacenamiento local de los nodos trabajadores, especifica estos ajustes de configuración de Spark durante la creación del clúster:
-
spark.databricks.io.cache.maxDiskUsage: espacio en disco por nodo reservado para datos en caché en bytes. -
spark.databricks.io.cache.maxMetaDataCache: espacio en disco por nodo reservado para metadatos en caché en bytes. -
spark.databricks.io.cache.compression.enabled: si los datos en caché se deben almacenar en formato comprimido.
Configuración de ejemplo:
spark.databricks.io.cache.maxDiskUsage 50g
spark.databricks.io.cache.maxMetaDataCache 1g
spark.databricks.io.cache.compression.enabled false
Activar o desactivar la caché de disco
Para ver la configuración actual de la caché de disco, ejecuta:
spark.conf.get("spark.databricks.io.cache.enabled")
Para habilitar y deshabilitar la caché de disco, ejecute lo siguiente:
spark.conf.set("spark.databricks.io.cache.enabled", "[true | false]")
La deshabilitación de la caché no conlleva la eliminación de los datos que ya están en el almacenamiento local. En su lugar, impide que las consultas agreguen nuevos datos a la caché y lean los datos de la caché.