Konfigurera cachelagring

Viktigt!

Den här funktionen finns i förhandsgranskning. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller fler juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. Om du vill ha frågor eller funktionsförslag skickar du en begäran på AskHDInsight med informationen och följer oss för fler uppdateringar i Azure HDInsight Community.

Att fråga efter objektlagring med hive-anslutningsappen är ett vanligt användningsfall för Trino. Den här processen innebär ofta att stora mängder data skickas. Objekt hämtas från HDFS eller ett annat objektarkiv som stöds av flera arbetare och bearbetas av dessa arbetare. Upprepade frågor med olika parametrar, eller till och med olika frågor från olika användare, får ofta åtkomst till och överför samma objekt.

HDInsight på AKS har lagt till cachelagring av slutresultatet för Trino, vilket ger följande fördelar:

  • Minska belastningen på objektlagring.
  • Förbättra frågeprestandan.
  • Minska frågekostnaden.

Cachelagring alternativ

Olika alternativ för cachelagring:

  • Slutresultatcachelagring: När det är aktiverat (i avsnittet konfiguration av koordinatorkomponent) visas ett resultat för alla frågor för alla katalogcacheminnen på en virtuell koordinatordator.
  • Cachelagring av Hive/Iceberg/Delta Lake-katalogen: När den är aktiverad (för en specifik katalog av motsvarande typ) cachelagrar en delad data för varje fråga i klustret på virtuella arbetsdatorer.

Cachelagring av slutresultatet

Cachelagring av slutresultatet kan konfigureras på två sätt:

Tillgängliga konfigurationsparametrar är:

Property Standardvärde beskrivning
query.cache.enabled falskt Aktiverar cachelagring av slutresultatet om det är sant.
query.cache.ttl - Definierar en tid tills cachedata sparas före borttagningen. Till exempel: "10m",1h"
query.cache.disk-usage-percentage 80 Procentandel diskutrymme som används för cachelagrade data.
query.cache.max-result-data-size 0 Maximal datastorlek för ett resultat. Om det här värdet har överskridits cachelagras inte resultatet.

Kommentar

Cachelagring med slutresultat använder frågeplan och ttl som cachenyckel.

Cachelagring av slutresultatet kan också styras via följande sessionsparametrar:

Sessionsparameter Standardvärde beskrivning
query_cache_enabled Ursprungligt konfigurationsvärde Aktiverar/inaktiverar cachelagring av slutresultatet för en fråga/session.
query_cache_ttl Ursprungligt konfigurationsvärde Definierar en tid tills cachedata sparas före borttagningen.
query_cache_max_result_data_size Ursprungligt konfigurationsvärde Maximal datastorlek för ett resultat. Om det här värdet har överskridits cachelagras inte resultatet.
query_cache_forced_refresh falskt När värdet är true tvingar resultatet av frågekörningen att cachelagras, d.s.a. resultatet ersätter befintliga cachelagrade data om det finns).

Kommentar

Sessionsparametrar kan ställas in för en session (till exempel om Trino CLI används) eller kan anges i multi-instruktion före frågetext. Exempel:

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;

Cachelagring av slutresultat genererar JMX-mått som kan visas med hjälp av Managed Prometheus och Grafana. Följande mått är tillgängliga:

Mätvärde Beskrivning
trino_cache_cachestats_requestcount Totalt antal frågor som går igenom cachelagret. Det här numret inkluderar inte frågor som körs med cache av.
trino_cache_cachestats_hitcount Antalet cacheträffar, dvs. antalet frågor när data var tillgängliga och returnerade från cacheminnet.
trino_cache_cachestats_misscount Antal cachemissar, dvs. antal frågor när data inte var tillgängliga och måste cachelagras.
trino_cache_cachestats_hitrate Procentuell representation av cacheträffar mot det totala antalet frågor.
trino_cache_cachestats_totalevictedcount Antal cachelagrade frågor som avlägsnats från cacheminnet.
trino_cache_cachestats_totalbytesfromsource Antal byte som lästs från källan.
trino_cache_cachestats_totalbytesfromcache Antal byte som lästs från cacheminnet.
trino_cache_cachestats_totalcachedbytes Totalt antal cachelagrade byte.
trino_cache_cachestats_totalevictedbytes Totalt antal borttagna byte.
trino_cache_cachestats_spaceused Cachens aktuella storlek.
trino_cache_cachestats_cachereadfailures Antal gånger då data inte kan läsas från cacheminnet på grund av något fel.
trino_cache_cachestats_cachewritefailures Antal gånger då data inte kan skrivas in i cacheminnet på grund av något fel.

Med Azure Portal

  1. Logga in på Azure-portalen.

  2. I sökfältet i Azure-portalen skriver du "HDInsight på AKS-kluster" och väljer "Azure HDInsight på AKS-kluster" i listrutan.

    Skärmbild som visar sökalternativet för att komma igång med HDInsight i AKS-kluster.

  3. Välj klusternamnet på listsidan.

    Skärmbild som visar hur du väljer DEN HDInsight på AKS-kluster som du behöver i listan.

  4. Gå till bladet Konfigurationshantering .

    Skärmbild som visar konfigurationshantering i Azure-portalen.

  5. Gå till config.properties –> Anpassade konfigurationer och klicka sedan på Lägg till.

    Skärmbild som visar anpassad konfiguration.

  6. Ange de egenskaper som krävs och klicka på OK.

    Skärmbild som visar konfigurationsegenskaper.

  7. Spara konfigurationen.

    Skärmbild som visar hur du sparar konfigurationen.

Använda ARM-mall

Förutsättningar

Du måste definiera egenskaperna i koordinatorkomponenten i properties.clusterProfile.serviceConfigsProfiles avsnittet i ARM-mallen. I följande exempel visas var du kan lägga till egenskaperna.

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

            }
        }
    ]
}

Cachelagring av Hive/Iceberg/Delta Lake

Alla tre anslutningsapparna delar samma uppsättning parametrar som beskrivs i Hive-cachelagring .

Kommentar

Vissa parametrar kan inte konfigureras och anges alltid till standardvärdena:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80

I följande exempel visas var du kan lägga till egenskaperna för att aktivera Hive-cachelagring med hjälp av ARM-mallen.

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

            }
        }
    ]
}

Distribuera den uppdaterade ARM-mallen för att återspegla ändringarna i klustret. Lär dig hur du distribuerar en ARM-mall.