Configuración del almacenamiento en caché
Importante
Azure HDInsight en AKS se retiró el 31 de enero de 2025. Obtenga más información con este anuncio.
Debe migrar las cargas de trabajo a microsoft Fabric o un producto equivalente de Azure para evitar la terminación repentina de las cargas de trabajo.
Importante
Esta característica está actualmente en versión preliminar. Los Términos de uso complementarios para las versiones preliminares de Microsoft Azure incluyen más términos legales que se aplican a las características de Azure que se encuentran en versión beta, en versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general. Para obtener información sobre esta versión preliminar específica, consulte información de la versión preliminar de Azure HDInsight en AKS. Para preguntas o sugerencias de características, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones sobre Comunidad de Azure HDInsight.
Consultar el almacenamiento de objetos mediante el conector de Hive es un caso de uso común para Trino. Este proceso suele implicar el envío de grandes cantidades de datos. Los objetos son recuperados de HDFS u otro almacén de objetos compatible por varios trabajadores y procesados por ellos. Las consultas repetidas con parámetros diferentes, o incluso consultas diferentes de distintos usuarios, a menudo acceden a los mismos objetos y transfieren los mismos objetos.
HDInsight en AKS agregó funcionalidad final de almacenamiento en caché de resultados para Trino, lo que proporciona las siguientes ventajas:
- Reduzca la carga en el almacenamiento de objetos.
- Mejore el rendimiento de las consultas.
- Reduzca el costo de la consulta.
Opciones de almacenamiento en caché
Diferentes opciones para el almacenamiento en caché:
- Caché de resultados finales: cuando se habilita (en la sección de configuración del componente de coordinador), un resultado de cualquier consulta para cualquier catálogo se almacena en caché en una máquina virtual de coordinación.
- almacenamiento en caché de catálogos de Hive/Iceberg/Delta Lake: cuando está habilitado (para un catálogo específico de tipo correspondiente), los datos divididos de cada consulta se almacenan en caché dentro del clúster en las máquinas virtuales de los trabajadores.
Almacenamiento en caché de resultados finales
El almacenamiento en caché de resultados finales se puede configurar de dos maneras:
Los parámetros de configuración disponibles son:
Propiedad | Predeterminado | Descripción |
---|---|---|
query.cache.enabled |
falso | Habilita el almacenamiento en caché de los resultados finales si es verdadero. |
query.cache.ttl |
- | Define un tiempo hasta que los datos de la memoria caché se almacenan antes de ser eliminados. Por ejemplo: "10m","1h" |
query.cache.disk-usage-percentage |
80 | Porcentaje de espacio en disco usado para los datos almacenados en caché. |
query.cache.max-result-data-size |
0 | Tamaño máximo de los datos de un resultado. Si se supera este valor, el resultado no se almacena en caché. |
Nota
El almacenamiento en caché del resultado final usa el plan de consulta y el TTL como clave de caché.
El almacenamiento en caché del resultado final también se puede controlar mediante los siguientes parámetros de sesión:
Parámetro de sesión | Predeterminado | Descripción |
---|---|---|
query_cache_enabled |
Valor de configuración original | Habilita o deshabilita el almacenamiento en caché final de resultados para una consulta o sesión. |
query_cache_ttl |
Valor de configuración original | Establece el tiempo durante el cual se mantienen los datos en la memoria caché antes de su expulsión. |
query_cache_max_result_data_size |
Valor de configuración original | Tamaño máximo de los datos de un resultado. Si se supera este valor, el resultado no se almacena en caché. |
query_cache_forced_refresh |
falso | Cuando se establece en true, obliga a almacenar en caché el resultado de la ejecución de consultas, es decir, el resultado reemplaza los datos almacenados en caché existentes si existe). |
Nota
Los parámetros de sesión se pueden establecer para una sesión (por ejemplo, si se usa la CLI de Trino) o se pueden establecer en varias instrucciones antes del texto de la consulta. Por ejemplo
set session query_cache_enabled=true;
select cust.name, *
from tpch.tiny.orders
join tpch.tiny.customer as cust on cust.custkey = orders.custkey
order by cust.name
limit 10;
El almacenamiento en caché del resultado final genera métricas de JMX que se pueden ver usando Managed Prometheus y Grafana. Están disponibles las siguientes métricas:
Métrico | Descripción |
---|---|
trino_cache_cachestats_requestcount |
Número total de consultas que pasan por la capa de caché. Este número no incluye consultas ejecutadas con la memoria caché desactivada. |
trino_cache_cachestats_hitcount |
Número de aciertos de caché, es decir, número de consultas cuando los datos están disponibles y devueltos desde la memoria caché. |
trino_cache_cachestats_misscount |
Número de errores de caché, es decir, número de consultas cuando los datos no están disponibles y tenían que almacenarse en caché. |
trino_cache_cachestats_hitrate |
Representación porcentual de aciertos de caché en el número total de consultas. |
trino_cache_cachestats_totalevictedcount |
Número de consultas almacenadas en caché expulsadas de la memoria caché. |
trino_cache_cachestats_totalbytesfromsource |
Número de bytes leídos desde el origen. |
trino_cache_cachestats_totalbytesfromcache |
Número de bytes leídos de la memoria caché. |
trino_cache_cachestats_totalcachedbytes |
Número total de bytes almacenados en caché. |
trino_cache_cachestats_totalevictedbytes |
Número total de bytes expulsados. |
trino_cache_cachestats_spaceused |
Tamaño actual de la memoria caché. |
trino_cache_cachestats_cachereadfailures |
Número de veces que los datos no se pueden leer de la memoria caché debido a ningún error. |
trino_cache_cachestats_cachewritefailures |
Número de veces que los datos no se pueden escribir en la memoria caché debido a ningún error. |
Uso de Azure Portal
Inicie sesión en Azure Portal.
En la barra de búsqueda de Azure Portal, escriba "HDInsight en el clúster de AKS" y seleccione "Azure HDInsight en clústeres de AKS" en la lista desplegable.
Seleccione el nombre del clúster en la página de lista.
Vaya a hoja administración de configuración.
Vaya a config.properties:> Configuraciones personalizadas y haga clic en Agregar.
Configure las propiedades necesarias y presione Aceptar.
Guardar la configuración.
Uso de una plantilla de ARM
Prerrequisitos
- Un clúster de Trino operativo con HDInsight en AKS.
- Cree de plantilla de ARM para el clúster.
- Revisar la plantilla ARM del clúster ejemplo completo.
- Familiaridad con creación e implementación de plantillas de ARM.
Debe definir las propiedades en el componente de coordinación en la sección properties.clusterProfile.serviceConfigsProfiles
de la plantilla de ARM.
En el ejemplo siguiente se muestra dónde agregar las propiedades.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"type": "microsoft.hdinsight/clusterpools/clusters",
"apiVersion": "<api-version>",
"name": "<cluster-pool-name>/<cluster-name>",
"location": "<region, e.g. westeurope>",
"tags": {},
"properties": {
"clusterType": "Trino",
"clusterProfile": {
"serviceConfigsProfiles": [
{
"serviceName": "trino",
"configs": [
{
"component": "coordinator",
"files": [
{
"fileName": "config.properties",
"values": {
"query.cache.enabled": "true",
"query.cache.ttl": "10m"
}
}
]
}
]
}
]
}
}
}
]
}
Almacenamiento en caché de Hive/Iceberg/Delta Lake
Los tres conectores comparten el mismo conjunto de parámetros tal y como se describe en almacenamiento en caché de Hive.
Nota
Algunos parámetros no son configurables y siempre se establecen en sus valores predeterminados:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80
En el ejemplo siguiente se muestra dónde agregar las propiedades para habilitar el almacenamiento en caché de Hive mediante la plantilla de ARM.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"type": "microsoft.hdinsight/clusterpools/clusters",
"apiVersion": "<api-version>",
"name": "<cluster-pool-name>/<cluster-name>",
"location": "<region, e.g. westeurope>",
"tags": {},
"properties": {
"clusterType": "Trino",
"clusterProfile": {
"serviceConfigsProfiles": [
{
"serviceName": "trino",
"configs": [
{
"component": "catalogs",
"files": [
{
"fileName": "hive1.properties",
"values": {
"connector.name": "hive"
"hive.cache.enabled": "true",
"hive.cache.ttl": "5d"
}
}
]
}
]
}
]
}
}
}
]
}
Implemente la plantilla de ARM actualizada para reflejar los cambios en el clúster. Aprenda a implementar una plantilla de ARM.