Udostępnij za pośrednictwem


Konfigurowanie buforowania

Ważny

Usługa Azure HDInsight w usłudze AKS została wycofana 31 stycznia 2025 r. Dowiedz się więcej w tym ogłoszeniu.

Aby uniknąć nagłego kończenia obciążeń, należy przeprowadzić migrację obciążeń do usługi Microsoft Fabric lub równoważnego produktu platformy Azure.

Ważny

Ta funkcja jest obecnie dostępna w wersji zapoznawczej. Dodatkowe warunki użytkowania platformy Microsoft Azure zawierają więcej warunków prawnych, które dotyczą funkcji platformy Azure będących w wersji beta, w wersji zapoznawczej lub w inny sposób jeszcze niewprowadzone w wersji ogólnodostępnej. Aby uzyskać informacje na temat tej konkretnej wersji zapoznawczej, zobacz informacje o wersji zapoznawczej Azure HDInsight na AKS. W przypadku pytań lub sugestii dotyczących funkcji, prosimy o przesłanie zgłoszenia na AskHDInsight wraz ze szczegółami oraz śledzenie nas, aby otrzymywać więcej aktualizacji na społeczności Azure HDInsight.

Wykonywanie zapytań dotyczących magazynu obiektów przy użyciu łącznika Hive jest typowym przypadkiem użycia Trino. Ten proces często obejmuje wysyłanie dużych ilości danych. Obiekty są pobierane z systemu plików HDFS lub innego obsługiwanego magazynu obiektów przez wielu pracowników i przetwarzane przez tych pracowników. Powtarzające się zapytania z różnymi parametrami, a nawet różne zapytania od różnych użytkowników, często uzyskują dostęp do tych samych obiektów i przesyłają je.

Usługa HDInsight w usłudze AKS dodała końcowego buforowania wyników możliwości trino, co zapewnia następujące korzyści:

  • Zmniejsz obciążenie magazynu obiektów.
  • Zwiększ wydajność zapytań.
  • Zmniejsz koszt zapytania.

Opcje buforowania

Różne opcje buforowania:

  • Końcowe buforowanie wyników: Po włączeniu (w sekcji konfiguracji komponentu koordynatora), wynik dowolnego zapytania dla dowolnego katalogu jest buforowany na maszynie wirtualnej koordynatora.
  • buforowanie katalogu Hive/Iceberg/Delta Lake: po włączeniu (dla określonego katalogu odpowiedniego typu) dane podziału dla każdego zapytania pamięciowane są w klastrze na maszynach wirtualnych pracowników.

Buforowanie wyników końcowych

Buforowanie wyników końcowych można skonfigurować na dwa sposoby:

Dostępne parametry konfiguracji to:

Własność Domyślny Opis
query.cache.enabled fałszywy Umożliwia buforowanie wyników końcowych, jeśli ustawione na 'true'.
query.cache.ttl - Definiuje czas, aż dane pamięci podręcznej będą przechowywane przed eksmisją. Na przykład: "10m","1h"
query.cache.disk-usage-percentage 80 Procent miejsca na dysku używanego do buforowanych danych.
query.cache.max-result-data-size 0 Maksymalny rozmiar danych dla wyniku. Jeśli ta wartość zostanie przekroczona, wynik nie będzie buforowany.

Notatka

Buforowanie wyników końcowych używa planu zapytania i czasu wygaśnięcia jako klucza pamięci podręcznej.

Buforowanie wyników końcowych można również kontrolować za pomocą następujących parametrów sesji:

Parametr sesji Domyślny Opis
query_cache_enabled Oryginalna wartość konfiguracji Włącza/wyłącza końcowe buforowanie wyników dla zapytania/sesji.
query_cache_ttl Oryginalna wartość konfiguracji Definiuje czas, aż dane pamięci podręcznej będą przechowywane przed eksmisją.
query_cache_max_result_data_size Oryginalna wartość konfiguracji Maksymalny rozmiar danych dla wyniku. Jeśli ta wartość zostanie przekroczona, wynik nie będzie buforowany.
query_cache_forced_refresh fałszywy Po ustawieniu wartości true wymusza buforowanie wyniku wykonywania zapytania, który oznacza, że wynik zastępuje istniejące buforowane dane, jeśli istnieje).

Notatka

Parametry sesji można ustawić dla sesji (na przykład jeśli jest używany interfejs wiersza polecenia Trino) lub można ustawić w wielu instrukcjach przed tekstem zapytania. Na przykład

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;

Buforowanie wyników końcowych generuje metryki JMX, które można wyświetlić przy użyciu Zarządzany Prometheus i Grafana. Dostępne są następujące metryki:

Metryka Opis
trino_cache_cachestats_requestcount Łączna liczba zapytań przechodzących przez warstwę pamięci podręcznej. Ta liczba nie obejmuje zapytań wykonywanych z wyłączoną pamięcią podręczną.
trino_cache_cachestats_hitcount Liczba trafień pamięci podręcznej, tj. liczba zapytań, gdy dane były dostępne i zwracane z pamięci podręcznej.
trino_cache_cachestats_misscount Liczba chybień pamięci podręcznej, tj. liczba zapytań, gdy dane nie były dostępne i musiały być buforowane.
trino_cache_cachestats_hitrate Procentowa reprezentacja trafień pamięci podręcznej względem łącznej liczby zapytań.
trino_cache_cachestats_totalevictedcount Liczba buforowanych zapytań usuniętych z pamięci podręcznej.
trino_cache_cachestats_totalbytesfromsource Liczba bajtów odczytanych ze źródła.
trino_cache_cachestats_totalbytesfromcache Liczba bajtów odczytanych z pamięci podręcznej.
trino_cache_cachestats_totalcachedbytes Łączna liczba buforowanych bajtów.
trino_cache_cachestats_totalevictedbytes Łączna liczba eksmitowanych bajtów.
trino_cache_cachestats_spaceused Bieżący rozmiar pamięci podręcznej.
trino_cache_cachestats_cachereadfailures Liczba przypadków, gdy nie można odczytać danych z pamięci podręcznej z powodu błędu.
trino_cache_cachestats_cachewritefailures Liczba przypadków, gdy nie można zapisać danych w pamięci podręcznej z powodu błędu.

Korzystanie z witryny Azure Portal

  1. Zaloguj się do Portalu Azure.

  2. Na pasku wyszukiwania na platformie Azure wpisz "HDInsight na klastrze AKS" i wybierz "Azure HDInsight on AKS clusters" z listy rozwijanej.

    Zrzut ekranu przedstawiający opcję wyszukiwania umożliwiającą rozpoczęcie pracy z usługą HDInsight w klastrze usługi AKS.

  3. Wybierz nazwę klastra na stronie listy.

    Zrzut ekranu przedstawiający wybieranie klastra usługi HDInsight w klastrze usługi AKS, którego potrzebujesz z listy.

  4. Przejdź do panelu Configuration Management.

    Zrzut ekranu przedstawiający zarządzanie konfiguracją witryny Azure Portal.

  5. Przejdź do pliku config.properties -> konfiguracje niestandardowe, a następnie kliknij Dodaj.

    Zrzut ekranu przedstawiający konfigurację niestandardową.

  6. Ustaw wymagane właściwości, a następnie kliknij przycisk OK.

    Zrzut ekranu przedstawiający właściwości konfiguracji.

  7. Zapisz konfigurację.

    Zrzut ekranu przedstawiający sposób zapisywania konfiguracji.

Korzystanie z szablonu ARM

Warunki wstępne

  • Operacyjny klaster Trino z usługą HDInsight w usłudze AKS.
  • Utwórz szablon ARM dla klastra.
  • Przejrzyj kompletny szablon klastra usługi ARM .
  • Znajomość tworzenia i wdrażania szablonu usługi ARM.

Należy zdefiniować właściwości w składniku koordynatora w sekcji properties.clusterProfile.serviceConfigsProfiles szablonu ARM. W poniższym przykładzie pokazano, gdzie dodać właściwości.

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

            }
        }
    ]
}

Buforowanie Hive/Iceberg/Delta Lake

Wszystkie trzy łączniki mają taki sam zestaw parametrów, jak opisano w buforowaniu Hive .

Notatka

Niektóre parametry nie są konfigurowalne i zawsze ustawiane na ich wartości domyślne:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80

W poniższym przykładzie pokazano, gdzie dodać właściwości umożliwiające buforowanie Hive przy użyciu szablonu ARM.

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

            }
        }
    ]
}

Wdróż zaktualizowany szablon ARM, aby odzwierciedlić zmiany w klastrze. Dowiedz się, jak wdrożyć szablon ARM.