Partilhar via


Configurar a colocação em cache

Nota

Vamos desativar o Azure HDInsight no AKS em 31 de janeiro de 2025. Antes de 31 de janeiro de 2025, você precisará migrar suas cargas de trabalho para o Microsoft Fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho. Os clusters restantes na sua subscrição serão interrompidos e removidos do anfitrião.

Apenas o apoio básico estará disponível até à data da reforma.

Importante

Esta funcionalidade está atualmente em pré-visualização. Os Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure incluem mais termos legais que se aplicam a funcionalidades do Azure que estão em versão beta, em pré-visualização ou ainda não disponibilizadas para disponibilidade geral. Para obter informações sobre essa visualização específica, consulte Informações de visualização do Azure HDInsight no AKS. Para perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para obter mais atualizações na Comunidade do Azure HDInsight.

Consultar o armazenamento de objetos usando o conector Hive é um caso de uso comum para o Trino. Este processo envolve frequentemente o envio de grandes quantidades de dados. Os objetos são recuperados do HDFS ou de outro armazenamento de objetos suportado 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 o recurso de cache de resultados finais para o Trino, que oferece os seguintes benefícios:

  • Reduza a carga no armazenamento de objetos.
  • Melhore o desempenho da consulta.
  • Reduza o custo da consulta.

Opções de cache

Diferentes opções para cache:

  • Cache de resultado final: Quando habilitado (na seção de configuração do componente coordenador), um resultado para qualquer consulta para qualquer cache de catálogo em uma VM coordenadora.
  • Cache de catálogo Hive/Iceberg/Delta Lake: quando habilitado (para um catálogo específico do tipo correspondente), um dado dividido para cada consulta é armazenado em cache no cluster em VMs de trabalho.

Cache de resultados finais

O cache de resultados finais pode ser configurado de duas maneiras:

Os parâmetros de configuração disponíveis são:

Property Predefinição Description
query.cache.enabled false Habilita o cache de resultado final, se verdadeiro.
query.cache.ttl - Define um tempo até que os dados do cache sejam mantidos antes da remoção. Por exemplo: "10m","1h"
query.cache.disk-usage-percentage 80 Porcentagem de espaço em disco usado para dados armazenados em cache.
query.cache.max-result-data-size 0 Tamanho máximo dos 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 ttl como uma chave de cache.

O cache de resultados finais também pode ser controlado através dos seguintes parâmetros de sessão:

Parâmetro de sessão Predefinido Description
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 do cache sejam mantidos antes da remoção.
query_cache_max_result_data_size Valor de configuração original Tamanho máximo dos dados para um resultado. Se esse valor for excedido, o resultado não será armazenado em cache.
query_cache_forced_refresh false 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 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 visualizadas usando o Managed Prometheus e o Grafana. As seguintes métricas estão disponíveis:

Métrico Description
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 acertos do cache, ou seja, número de consultas quando os dados estavam disponíveis e retornados do cache.
trino_cache_cachestats_misscount Número de falhas de cache, ou seja, número de consultas quando os dados não estavam disponíveis e precisavam 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 em cache removidas do cache.
trino_cache_cachestats_totalbytesfromsource Número de bytes lidos da fonte.
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.

Através do portal do Azure

  1. Inicie sessão no portal do Azure.

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

    Captura de ecrã a mostrar a opção de pesquisa para introdução ao HDInsight no AKS Cluster.

  3. Selecione o nome do cluster na página de listagem.

    Captura de tela mostrando a seleção do HDInsight no cluster 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. Salve a configuração.

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

Com o modelo do ARM

Pré-requisitos

Você precisa definir as propriedades no componente coordenador na properties.clusterProfile.serviceConfigsProfiles seção no modelo 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 Hive/Iceberg/Delta Lake

Todos os três conectores compartilham o mesmo conjunto de parâmetros conforme descrito no cache do Hive .

Nota

Certos parâmetros não são configuráveis e sempre são definidos para 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 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 ARM atualizado para refletir as alterações no cluster. Saiba como implantar um modelo ARM.