Configurar o cache
Importante
O Azure HDInsight no AKS se aposentou em 31 de janeiro de 2025. Saiba mais neste anúncio.
Você precisa migrar suas cargas de trabalho para microsoft fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho.
Importante
Esse recurso está atualmente em versão prévia. Os termos de uso complementares para o Microsoft Azure Previews incluem mais termos legais que se aplicam aos recursos do Azure que estão em versão beta, em versão prévia ou ainda não lançados em disponibilidade geral. Para obter informações sobre essa versão prévia específica, consulte Azure HDInsight em informações de visualização do AKS. Para enviar perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para receber mais atualizações sobre a Comunidade Azure HDInsight.
Consultar o armazenamento de objetos usando o conector do Hive é um caso de uso comum para Trino. Esse processo geralmente envolve o envio de grandes quantidades de dados. Os objetos são recuperados do HDFS ou de outro repositório de objetos com suporte por vários trabalhadores e processados por esses trabalhadores. Consultas repetidas com parâmetros diferentes ou até mesmo consultas diferentes de usuários diferentes, geralmente acessam e transferem os mesmos objetos.
O HDInsight no AKS adicionou capacidade de cache de resultado final para o Trino, que fornece os seguintes benefícios:
- Reduza a carga sobre o armazenamento de objetos.
- Melhore o desempenho das consultas.
- Reduza o custo da consulta.
Opções de cache
Opções diferentes para cache:
- Cache de resultados finais: Quando habilitado (na seção de configuração do componente coordenador), o resultado de qualquer consulta para qualquer catálogo é armazenado em cache em uma VM coordenadora.
- cache de catálogo do Hive/Iceberg/Delta Lake: Quando habilitado (para um catálogo específico do tipo correspondente), os dados divididos para cada consulta são armazenados em cache dentro do cluster em VMs de trabalho.
Cache de resultado final
O cache de resultado final pode ser configurado de duas maneiras:
Os parâmetros de configuração disponíveis são:
Propriedade | Padrão | Descrição |
---|---|---|
query.cache.enabled |
falso | Habilita o armazenamento em cache do resultado final se a condição for verdadeira. |
query.cache.ttl |
- | Define um tempo até que os dados de cache sejam mantidos antes da remoção. Por exemplo: "10m", "1h" |
query.cache.disk-usage-percentage |
80 | Percentual de espaço em disco usado para dados armazenados em cache. |
query.cache.max-result-data-size |
0 | Tamanho máximo de dados para um resultado. Se esse valor for excedido, o resultado não será armazenado em cache. |
Nota
O cache de resultados finais usa o plano de consulta e o ttl como uma chave de cache.
O cache de resultado final também pode ser controlado por meio dos seguintes parâmetros de sessão:
Parâmetro de sessão | Padrão | Descrição |
---|---|---|
query_cache_enabled |
Valor de configuração original | Habilita/desabilita o cache de resultados finais para uma consulta/sessão. |
query_cache_ttl |
Valor de configuração original | Define um tempo até que os dados de cache sejam mantidos antes da remoção. |
query_cache_max_result_data_size |
Valor de configuração original | Tamanho máximo de dados para um resultado. Se esse valor for excedido, o resultado não será armazenado em cache. |
query_cache_forced_refresh |
falso | Quando definido como true, força o resultado da execução da consulta a ser armazenado em cache, ou seja, o resultado substitui os dados armazenados em cache existentes se existirem). |
Nota
Os parâmetros de sessão podem ser definidos para uma sessão (por exemplo, se a CLI do Trino for usada) ou podem ser definidos em várias instruções antes do texto da consulta. Por exemplo
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;
O cache de resultados finais produz métricas JMX que podem ser exibidas usando Prometheus e Grafana gerenciados. As seguintes métricas estão disponíveis:
Métrica | Descrição |
---|---|
trino_cache_cachestats_requestcount |
Número total de consultas que passam pela camada de cache. Esse número não inclui consultas executadas com o cache desativado. |
trino_cache_cachestats_hitcount |
Número de ocorrências de cache, ou seja, número de consultas em que os dados estavam disponíveis e foram retornados do cache. |
trino_cache_cachestats_misscount |
O número de erros de cache, ou seja, o número de consultas quando os dados não estavam disponíveis e tinham que ser armazenados em cache. |
trino_cache_cachestats_hitrate |
Representação percentual de acertos de cache em relação ao número total de consultas. |
trino_cache_cachestats_totalevictedcount |
Número de consultas armazenadas em cache removidas do cache. |
trino_cache_cachestats_totalbytesfromsource |
Número de bytes lidos da origem. |
trino_cache_cachestats_totalbytesfromcache |
Número de bytes lidos do cache. |
trino_cache_cachestats_totalcachedbytes |
Número total de bytes armazenados em cache. |
trino_cache_cachestats_totalevictedbytes |
Número total de bytes removidos. |
trino_cache_cachestats_spaceused |
Tamanho atual do cache. |
trino_cache_cachestats_cachereadfailures |
Número de vezes em que os dados não podem ser lidos do cache devido a qualquer erro. |
trino_cache_cachestats_cachewritefailures |
Número de vezes em que os dados não podem ser gravados no cache devido a qualquer erro. |
Usando o portal do Azure
Entre no portal do Azure.
Na barra de pesquisa do portal do Azure, digite "HDInsight no cluster do AKS" e selecione "Azure HDInsight em clusters AKS" na lista suspensa.
Selecione o nome do cluster na página de lista.
Navegue até a seção Gerenciamento de Configuração.
Vá para config.properties –> Configurações personalizadas e clique em Adicionar.
Defina as propriedades necessárias e clique em OK.
Salvar a configuração.
Usando o modelo do ARM
Pré-requisitos
- Um cluster Trino operacional com HDInsight no AKS.
- Crie modelo do ARM para seu cluster.
- Examine o cluster completo exemplo de de modelo do ARM.
- Familiaridade com a criação e implantação de templates ARM .
Você precisa definir as propriedades no componente coordenador na seção properties.clusterProfile.serviceConfigsProfiles
no modelo do ARM.
O exemplo a seguir demonstra onde adicionar as propriedades.
{
"$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"
}
}
]
}
]
}
]
}
}
}
]
}
Armazenamento em cache do Hive/Iceberg/Delta Lake
Todos os três conectores compartilham o mesmo conjunto de parâmetros, como descrito em cache do Hive.
Nota
Determinados parâmetros não são configuráveis e sempre são definidos como seus valores padrão:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80
O exemplo a seguir demonstra onde adicionar as propriedades para habilitar o cache do Hive usando o modelo do 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"
}
}
]
}
]
}
]
}
}
}
]
}
Implante o modelo do ARM atualizado para refletir as alterações em seu cluster. Saiba como implantar um modelo ARM.