Caching configureren
Belangrijk
Deze functie is momenteel beschikbaar in preview. De aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews bevatten meer juridische voorwaarden die van toepassing zijn op Azure-functies die bèta, in preview of anderszins nog niet beschikbaar zijn in algemene beschikbaarheid. Zie Azure HDInsight op AKS Preview-informatie voor meer informatie over deze specifieke preview. Voor vragen of suggesties voor functies dient u een aanvraag in op AskHDInsight met de details en volgt u ons voor meer updates in de Azure HDInsight-community.
Het opvragen van objectopslag met behulp van de Hive-connector is een veelvoorkomend gebruiksvoorbeeld voor Trino. Dit proces omvat vaak het verzenden van grote hoeveelheden gegevens. Objecten worden opgehaald uit HDFS of een ander ondersteund objectarchief door meerdere werkrollen en verwerkt door deze werknemers. Herhaalde query's met verschillende parameters of zelfs verschillende query's van verschillende gebruikers, hebben vaak toegang tot en overdracht van dezelfde objecten.
HDInsight in AKS heeft de mogelijkheid voor het opslaan van eindresultaten toegevoegd voor Trino, wat de volgende voordelen biedt:
- Verminder de belasting van objectopslag.
- Verbeter de queryprestaties.
- Verlaag de querykosten.
Cacheopties
Verschillende opties voor opslaan in cache:
- Eindresultaat opslaan in cache: wanneer deze functie is ingeschakeld (in de sectie configuratie van coördinatoronderdelen), wordt een resultaat voor elke query voor cataloguscaches op een coördinator-VM weergegeven.
- Hive/Iceberg/Delta Lake-cataloguscache: wanneer deze optie is ingeschakeld (voor een specifieke catalogus van het bijbehorende type), worden gegevens gesplitst voor elke querycache in het cluster op werkrol-VM's.
Eindresultaat opslaan in cache
Het opslaan van uiteindelijke resultaten kan op twee manieren worden geconfigureerd:
Beschikbare configuratieparameters zijn:
Eigenschappen | Standaard | Beschrijving |
---|---|---|
query.cache.enabled |
false | Hiermee schakelt u het opslaan van eindresultaten in als waar. |
query.cache.ttl |
- | Definieert een tijd totdat cachegegevens worden bewaard vóór verwijdering. Bijvoorbeeld: "10m","1h" |
query.cache.disk-usage-percentage |
80 | Percentage schijfruimte dat wordt gebruikt voor gegevens in de cache. |
query.cache.max-result-data-size |
0 | Maximale gegevensgrootte voor een resultaat. Als deze waarde is overschreden, wordt het resultaat niet in de cache opgeslagen. |
Notitie
Het opslaan van uiteindelijke resultaten maakt gebruik van een queryplan en ttl als cachesleutel.
Het opslaan van uiteindelijke resultaten kan ook worden beheerd via de volgende sessieparameters:
Sessieparameter | Default | Beschrijving |
---|---|---|
query_cache_enabled |
Oorspronkelijke configuratiewaarde | Hiermee schakelt u het opslaan van eindresultaten voor een query/sessie in of uit. |
query_cache_ttl |
Oorspronkelijke configuratiewaarde | Definieert een tijd totdat cachegegevens worden bewaard vóór verwijdering. |
query_cache_max_result_data_size |
Oorspronkelijke configuratiewaarde | Maximale gegevensgrootte voor een resultaat. Als deze waarde is overschreden, wordt het resultaat niet in de cache opgeslagen. |
query_cache_forced_refresh |
false | Als deze optie is ingesteld op true, wordt het resultaat van de uitvoering van query's in de cache opgeslagen. Het resultaat vervangt bestaande gegevens in de cache als deze bestaat). |
Notitie
Sessieparameters kunnen worden ingesteld voor een sessie (bijvoorbeeld als Trino CLI wordt gebruikt) of kunnen worden ingesteld in meerdere instructies voordat querytekst wordt uitgevoerd. Voorbeeld:
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;
Uiteindelijke resultaatcaching produceert JMX-metrische gegevens die kunnen worden bekeken met beheerde Prometheus en Grafana. De volgende metrische gegevens zijn beschikbaar:
Metrisch | Beschrijving |
---|---|
trino_cache_cachestats_requestcount |
Het totale aantal query's dat via de cachelaag gaat. Dit nummer bevat geen query's die worden uitgevoerd met cache uitgeschakeld. |
trino_cache_cachestats_hitcount |
Het aantal cachetreffers, bijvoorbeeld het aantal query's wanneer er gegevens beschikbaar waren en worden geretourneerd vanuit de cache. |
trino_cache_cachestats_misscount |
Aantal cachemissers, bijvoorbeeld het aantal query's wanneer gegevens niet beschikbaar waren en in de cache moesten worden opgeslagen. |
trino_cache_cachestats_hitrate |
Percentageweergave van cachetreffers ten opzichte van het totale aantal query's. |
trino_cache_cachestats_totalevictedcount |
Het aantal in de cache opgeslagen query's dat uit de cache is verwijderd. |
trino_cache_cachestats_totalbytesfromsource |
Het aantal bytes dat uit de bron is gelezen. |
trino_cache_cachestats_totalbytesfromcache |
Het aantal bytes dat uit de cache is gelezen. |
trino_cache_cachestats_totalcachedbytes |
Totaal aantal bytes dat in de cache is opgeslagen. |
trino_cache_cachestats_totalevictedbytes |
Totaal aantal verwijderde bytes. |
trino_cache_cachestats_spaceused |
Huidige grootte van de cache. |
trino_cache_cachestats_cachereadfailures |
Aantal keren dat gegevens niet uit de cache kunnen worden gelezen vanwege een fout. |
trino_cache_cachestats_cachewritefailures |
Aantal keren dat gegevens niet in de cache kunnen worden geschreven vanwege een fout. |
Azure-portal gebruiken
Meld u aan bij de Azure-portal.
Typ 'HDInsight in AKS-cluster' in de zoekbalk van Azure Portal en selecteer 'Azure HDInsight op AKS-clusters' in de vervolgkeuzelijst.
Selecteer de clusternaam op de lijstpagina.
Navigeer naar de blade Configuratiebeheer .
Ga naar config.properties -> Aangepaste configuraties en klik vervolgens op Toevoegen.
Stel de vereiste eigenschappen in en klik op OK.
Sla de configuratie op.
ARM-sjabloon gebruiken
Vereisten
- Een operationeel Trino-cluster met HDInsight in AKS.
- Maak een ARM-sjabloon voor uw cluster.
- Bekijk het volledige ARM-sjabloonvoorbeeld van het cluster.
- Bekendheid met het ontwerpen en implementeren van ARM-sjablonen.
U moet de eigenschappen definiëren in het coördinatoronderdeel in properties.clusterProfile.serviceConfigsProfiles
de sectie in de ARM-sjabloon.
In het volgende voorbeeld ziet u waar u de eigenschappen kunt toevoegen.
{
"$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"
}
}
]
}
]
}
]
}
}
}
]
}
Hive/Iceberg/Delta Lake caching
Alle drie de connectors delen dezelfde set parameters zoals beschreven in Hive-caching .
Notitie
Bepaalde parameters kunnen niet worden geconfigureerd en worden altijd ingesteld op de standaardwaarden:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80
In het volgende voorbeeld ziet u waar u de eigenschappen kunt toevoegen om Hive-caching in te schakelen met behulp van een ARM-sjabloon.
{
"$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"
}
}
]
}
]
}
]
}
}
}
]
}
Implementeer de bijgewerkte ARM-sjabloon om de wijzigingen in uw cluster weer te geven. Meer informatie over het implementeren van een ARM-sjabloon.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor