Freigeben über


Konfigurieren der Zwischenspeicherung

Wichtig

Azure HDInsight auf AKS wurde am 31. Januar 2025 eingestellt. Erfahren Sie mehr mit dieser Ankündigung.

Sie müssen Ihre Workloads zu Microsoft Fabric oder ein gleichwertiges Azure-Produkt migrieren, um eine abrupte Beendigung Ihrer Workloads zu vermeiden.

Wichtig

Dieses Feature befindet sich derzeit in der Vorschau. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure Previews weitere rechtliche Bestimmungen enthalten, die für Azure-Features gelten, die in der Betaversion, in der Vorschau oder auf andere Weise noch nicht in die allgemeine Verfügbarkeit veröffentlicht werden. Informationen zu dieser spezifischen Vorschau finden Sie unter Azure HDInsight auf AKS-Vorschauinformationen. Für Fragen oder Featurevorschläge senden Sie bitte eine Anfrage an AskHDInsight mit allen Einzelheiten und folgen Sie uns für weitere Updates zur Azure HDInsight Community.

Das Abfragen des Objektspeichers mithilfe des Hive-Connectors ist ein gängiger Anwendungsfall für Trino. Dieser Vorgang umfasst häufig das Senden großer Datenmengen. Objekte werden von HDFS oder einem anderen unterstützten Objektspeicher von mehreren Mitarbeitern abgerufen und von diesen Mitarbeitern verarbeitet. Wiederholte Abfragen mit unterschiedlichen Parametern oder sogar unterschiedliche Abfragen von verschiedenen Benutzern, greifen häufig auf dieselben Objekte zu und übertragen sie.

HDInsight auf AKS hat die -Endergebniszwischenspeicherungsfunktion für Trino hinzugefügt, die folgende Vorteile bietet:

  • Verringern Sie die Auslastung des Objektspeichers.
  • Verbessern Sie die Abfrageleistung.
  • Reduzieren Sie die Abfragekosten.

Zwischenspeicherungsoptionen

Verschiedene Optionen für das Zwischenspeichern:

  • Zwischenspeicherung des endgültigen Ergebnisses: Wenn diese Option aktiviert ist (im Abschnitt für die Konfiguration der Koordinatorkomponenten), wird das Ergebnis jeder Abfrage für jeden Katalog auf einer Koordinator-VM zwischengespeichert.
  • Hive/Iceberg/Delta Lake-Katalog-Caching: Wenn es für einen bestimmten Katalog des entsprechenden Typs aktiviert ist, werden die Abfragedaten jeder Anfrage im Cluster auf den Arbeits-VMs zwischengespeichert.

Zwischenspeicherung des Endergebnisses

Die Zwischenspeicherung des Endergebnisses kann auf zwei Arten konfiguriert werden.

Verfügbare Konfigurationsparameter sind:

Eigentum Standardeinstellung Beschreibung
query.cache.enabled FALSCH Aktiviert das Zwischenspeichern des endgültigen Ergebnisses, wenn "true".
query.cache.ttl - Definiert eine Zeit, bis Cachedaten vor der Entfernung aufbewahrt werden. Beispiel: "10m","1h"
query.cache.disk-usage-percentage 80 Prozentsatz des Speicherplatzes, der für zwischengespeicherte Daten verwendet wird.
query.cache.max-result-data-size 0 Maximale Datengröße für ein Ergebnis. Wenn dieser Wert überschritten wurde, werden die Ergebnisse nicht zwischengespeichert.

Anmerkung

Das Caching des endgültigen Ergebnisses verwendet den Abfrageplan und die TTL als Cacheschlüssel.

Das Zwischenspeichern des endgültigen Ergebnisses kann auch über die folgenden Sitzungsparameter gesteuert werden:

Sitzungsparameter Vorgabe Beschreibung
query_cache_enabled Ursprünglicher Konfigurationswert Aktiviert/deaktiviert die Zwischenspeicherung des endgültigen Ergebnisses für eine Abfrage/Sitzung.
query_cache_ttl Ursprünglicher Konfigurationswert Definiert eine Zeit, bis Cachedaten vor der Entfernung aufbewahrt werden.
query_cache_max_result_data_size Ursprünglicher Konfigurationswert Maximale Datengröße für ein Ergebnis. Wenn dieser Wert überschritten wurde, werden die Ergebnisse nicht zwischengespeichert.
query_cache_forced_refresh FALSCH Wenn dieser Wert auf "true" festgelegt ist, wird das Ergebnis der Abfrageausführung zwischengespeichert, das heißt, es ersetzt vorhandene zwischengespeicherte Daten, sofern solche existieren.

Anmerkung

Sitzungsparameter können für eine Sitzung festgelegt werden (z. B. wenn Trino CLI verwendet wird) oder vor Abfragetext in mehreren Anweisungen festgelegt werden. Zum Beispiel

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;

Die Zwischenspeicherung des Endergebnisses erzeugt JMX-Metriken, die mit Managed Prometheus und Grafanaangezeigt werden können. Die folgenden Metriken sind verfügbar:

Metrik Beschreibung
trino_cache_cachestats_requestcount Die Gesamtanzahl der Abfragen, die über die Cacheebene durchlaufen werden. Diese Zahl enthält keine Abfragen, die mit ausgeschaltetem Cache ausgeführt werden.
trino_cache_cachestats_hitcount Die Anzahl der Cachetreffer, d. h. die Anzahl der Abfragen, wenn Daten verfügbar und aus dem Cache zurückgegeben wurden.
trino_cache_cachestats_misscount Die Anzahl der Cachefehler, d. h. die Anzahl der Abfragen, wenn daten nicht verfügbar waren und zwischengespeichert werden mussten.
trino_cache_cachestats_hitrate Prozentuale Darstellung von Cachetreffern für die Gesamtzahl der Abfragen.
trino_cache_cachestats_totalevictedcount Anzahl der zwischengespeicherten Abfragen, die aus dem Cache entfernt wurden.
trino_cache_cachestats_totalbytesfromsource Anzahl der aus der Quelle gelesenen Bytes.
trino_cache_cachestats_totalbytesfromcache Anzahl der aus dem Cache gelesenen Bytes.
trino_cache_cachestats_totalcachedbytes Gesamtzahl der zwischengespeicherten Bytes.
trino_cache_cachestats_totalevictedbytes Gesamtanzahl der entfernten Bytes.
trino_cache_cachestats_spaceused Aktuelle Größe des Caches.
trino_cache_cachestats_cachereadfailures Häufigkeit, in der Daten aufgrund eines Fehlers nicht aus dem Cache gelesen werden können.
trino_cache_cachestats_cachewritefailures Häufigkeit, in der Daten aufgrund eines Fehlers nicht in den Cache geschrieben werden können.

Verwenden des Azure-Portals

  1. Melden Sie sich beim Azure-Portalan.

  2. Geben Sie in der Azure-Portalsuchleiste "HDInsight auf AKS-Clustern" ein, und wählen Sie in der Dropdownliste "Azure HDInsight auf AKS-Clustern" aus.

    Screenshot mit der Suchfunktion für die ersten Schritte mit HDInsight auf dem AKS-Cluster.

  3. Wählen Sie ihren Clusternamen auf der Listenseite aus.

    Screenshot, in dem Sie das benötigte HDInsight auf dem AKS-Cluster aus der Liste auswählen.

  4. Navigieren Sie zum Blatt Konfigurationsverwaltung.

    Screenshot der Azure-Portalkonfigurationsverwaltung.

  5. Wechseln Sie zu config.properties –> Benutzerdefinierte Konfigurationen, und klicken Sie dann auf Hinzufügen.

    Screenshot mit benutzerdefinierter Konfiguration.

  6. Legen Sie die erforderlichen Eigenschaften fest, und klicken Sie auf OK.

    Screenshot mit Konfigurationseigenschaften.

  7. Speichern der Konfiguration.

    Screenshot, der zeigt, wie die Konfiguration gespeichert wird.

Verwenden der ARM-Vorlage

Voraussetzungen

Sie müssen die Eigenschaften in der Koordinatorkomponente in properties.clusterProfile.serviceConfigsProfiles Abschnitt in der ARM-Vorlage definieren. Im folgenden Beispiel wird veranschaulicht, wo die Eigenschaften hinzugefügt werden.

{
    "$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 drei Konnektoren verwenden denselben Parametersatz, wie in der Hive Zwischenspeicherung beschrieben.

Anmerkung

Bestimmte Parameter sind nicht konfigurierbar und werden immer auf ihre Standardwerte festgelegt:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80

Im folgenden Beispiel wird veranschaulicht, wo die Eigenschaften zum Aktivieren der Hive-Zwischenspeicherung mithilfe der ARM-Vorlage hinzugefügt werden.

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

            }
        }
    ]
}

Stellen Sie die aktualisierte ARM-Vorlage bereit, um die Änderungen in Ihrem Cluster widerzuspiegeln. Erfahren Sie, wie Sie eine ARM-Vorlagebereitstellen.