Share via


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

  1. Meld u aan bij de Azure-portal.

  2. Typ 'HDInsight in AKS-cluster' in de zoekbalk van Azure Portal en selecteer 'Azure HDInsight op AKS-clusters' in de vervolgkeuzelijst.

    Schermopname van de zoekoptie om aan de slag te gaan met HDInsight in een AKS-cluster.

  3. Selecteer de clusternaam op de lijstpagina.

    Schermopname van het selecteren van HDInsight in AKS-cluster dat u nodig hebt in de lijst.

  4. Navigeer naar de blade Configuratiebeheer .

    Schermopname van configuratiebeheer in Azure Portal.

  5. Ga naar config.properties -> Aangepaste configuraties en klik vervolgens op Toevoegen.

    Schermopname van aangepaste configuratie.

  6. Stel de vereiste eigenschappen in en klik op OK.

    Schermopname van configuratie-eigenschappen.

  7. Sla de configuratie op.

    Schermopname die laat zien hoe u de configuratie opslaat.

ARM-sjabloon gebruiken

Vereisten

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.