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
Logga in på Azure-portalen.
I sökfältet i Azure-portalen skriver du "HDInsight på AKS-kluster" och väljer "Azure HDInsight på AKS-kluster" i listrutan.
Välj klusternamnet på listsidan.
Gå till Konfigurationshantering-sektionen.
Gå till config.properties –> Anpassade konfigurationer och klicka sedan på Lägg till.
Ange de egenskaper som krävs och klicka på OK.
Spara konfigurationen.
Använda ARM-mall
Förutsättningar
- Ett fungerande Trino-kluster med HDInsight på AKS.
- Skapa ARM-mall för klustret.
- Granska hela klustret ARM-mallens exempel.
- Kunskaper om ARM-mallredigering och distribution.
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.