Compartilhar via


Configurar armazenamento em cache

Observação

Desativaremos o Microsoft Azure HDInsight no AKS em 31 de janeiro de 2025. Para evitar o encerramento abrupto das suas cargas de trabalho, você precisará migrá-las para o Microsoft Fabric ou para um produto equivalente do Azure antes de 31 de janeiro de 2025. Os clusters restantes em sua assinatura serão interrompidos e removidos do host.

Somente o suporte básico estará disponível até a data de desativação.

Importante

Esse recurso está atualmente na visualização. Os Termos de uso complementares para versões prévias do Microsoft Azure 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, confira Informações sobre a versão prévia do Azure HDInsight no AKS. Caso tenha perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para ver mais atualizações sobre a Comunidade do Azure HDInsight.

Consultar o armazenamento de objetos usando o conector do Hive é um caso de uso comum para o 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 trabalhos e processados por esses trabalhos. 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 a capacidade de cache de resultado final no Trino, que fornece os seguintes benefícios:

  • Reduz a carga no armazenamento de objetos.
  • Melhora o desempenho da consulta.
  • Reduzir o custo da consulta.

Opções de cache

Opções diferentes para cache:

  • Cache do resultado final: quando habilitado (na seção de configuração do componente coordenador), o resultado para qualquer consulta em qualquer catálogo é armazenado em cache em uma VM coordenadora.
  • Cache do 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 nas VMs de trabalho.

Cache do resultado final

O cache do 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 cache do resultado final se verdadeiro.
query.cache.ttl - Define um período durante o qual os dados do cache são mantidos antes de serem removidos. 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.

Observação

Cache do resultado final usa o plano de consulta e o ttl como uma chave de cache.

O cache do 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 da configuração original Habilita/desabilita o cache do resultado final para uma consulta/sessão.
query_cache_ttl Valor da configuração original Define um período durante o qual os dados do cache são mantidos antes de serem removidos.
query_cache_max_result_data_size Valor da 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, caso existam).

Observação

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 quando os dados estavam disponíveis e retornados do cache.
trino_cache_cachestats_misscount 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 puderam ser lidos do cache devido a qualquer erro.
trino_cache_cachestats_cachewritefailures Número de vezes em que os dados não puderam ser gravados no cache devido a qualquer erro.

Como usar o portal do Azure

  1. Entre no portal do Azure.

  2. Na barra de pesquisa do portal do Azure, digite "HDInsight no cluster AKS" e selecione "Azure HDInsight em clusters AKS" na lista suspensa.

    Captura de tela mostrando a opção de pesquisa para começar a usar o HDInsight no Cluster do AKS.

  3. Selecione o nome do cluster na página da lista.

    Captura de tela mostrando a seleção do HDInsight no Cluster do AKS que você precisa na lista.

  4. Navegue até a folha Gerenciamento de Configuração.

    Captura de tela mostrando o gerenciamento de configuração do portal do Azure.

  5. Vá para config.properties –> Configurações personalizadas e clique em Adicionar.

    Captura de tela mostrando a configuração personalizada.

  6. Defina as propriedades necessárias e clique em OK.

    Captura de tela mostrando as propriedades de configuração.

  7. Salvar a configuração.

    Captura de tela mostrando como salvar a configuração.

Usando o modelo ARM

Pré-requisitos

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"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }

            }
        }
    ]
}

Cache do Hive/Iceberg/Delta Lake

Todos os três conectores compartilham o mesmo conjunto de parâmetros, conforme descrito em Cache do Hive.

Observação

Determinados parâmetros não são configuráveis e sempre são definidos com 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 do ARM.