Dela via


Konfigurera cachelagring

Viktig

Azure HDInsight på AKS drogs tillbaka den 31 januari 2025. Läs mer genom detta meddelande.

Du måste migrera dina arbetsbelastningar till Microsoft Fabric- eller en motsvarande Azure-produkt för att undvika plötsliga uppsägningar av dina arbetsbelastningar.

Viktig

Den här funktionen är för närvarande i förhandsversion. 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 beta, 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. För frågor eller funktionsförslag, skicka en begäran om AskHDInsight med detaljerna och följ oss för fler uppdateringar om 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.

Alternativ för cachelagring

Olika alternativ för cachelagring:

  • Cachelagring av slutresultat: När det är aktiverat (i konfigurationsavsnittet för koordinatorkomponent), blir ett resultat för alla frågor för valfri katalog cachat på en virtuell koordinatordator.
  • Cachelagring av Hive/Iceberg/Delta Lake-katalog: När den är aktiverad (för en specifik katalog av motsvarande typ) delas data för varje frågecache i klustret på virtuella arbetsdatorer.

Cachelagring av slutresultatet

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

Tillgängliga konfigurationsparametrar är:

Egenskap Förval Beskrivning
query.cache.enabled falsk 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.

Anteckning

Cachelagring av slutresultat använder frågeplan och ttl som nyckel till cachen.

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

Sessionsparameter Standard 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 falsk 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).

Not

Sessionsparametrar kan ställas in för en session (till exempel om Trino CLI används) eller kan anges i flerinstruktioner före frågetext. Till 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 slutresultatet ger JMX-mått som kan visas med hjälp av Managed Prometheus och Grafana. Följande mått är tillgängliga:

Metrisk 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.

Använda Azure-portalen

  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ökalternativ 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 det HDInsight som du behöver från listan på AKS-klustret.

  4. Gå till Konfigurationshantering-sektionen.

    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 anslutningsdonen har samma uppsättning parametrar som beskrivs i Hive cache.

Not

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.