Udostępnij za pośrednictwem


Konfigurowanie pamięci podręcznej

Uwaga

Wycofamy usługę Azure HDInsight w usłudze AKS 31 stycznia 2025 r. Przed 31 stycznia 2025 r. należy przeprowadzić migrację obciążeń do usługi Microsoft Fabric lub równoważnego produktu platformy Azure, aby uniknąć nagłego zakończenia obciążeń. Pozostałe klastry w ramach subskrypcji zostaną zatrzymane i usunięte z hosta.

Tylko podstawowa pomoc techniczna będzie dostępna do daty wycofania.

Ważne

Ta funkcja jest aktualnie dostępna jako funkcja podglądu. Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure obejmują więcej warunków prawnych, które dotyczą funkcji platformy Azure, które znajdują się w wersji beta, w wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej. Aby uzyskać informacje o tej konkretnej wersji zapoznawczej, zobacz Informacje o wersji zapoznawczej usługi Azure HDInsight w usłudze AKS. W przypadku pytań lub sugestii dotyczących funkcji prześlij żądanie w usłudze AskHDInsight , aby uzyskać szczegółowe informacje i postępuj zgodnie z nami, aby uzyskać więcej aktualizacji w społeczności usługi 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 procesów roboczych i przetwarzane przez tych procesów roboczych. 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 funkcję buforowania wyników końcowych dla aplikacji Trino, która 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:

  • Buforowanie wyników końcowych: po włączeniu (w sekcji konfiguracji składnika koordynatora) wynik zapytania dla wszystkich pamięci podręcznych katalogu na maszynie wirtualnej koordynatora.
  • Buforowanie katalogu Hive/Iceberg/Delta Lake: po włączeniu (dla określonego wykazu odpowiedniego typu) podzielone dane dla każdej pamięci podręcznej zapytań w klastrze na maszynach wirtualnych procesów roboczych.

Buforowanie wyników końcowych

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

Dostępne parametry konfiguracji to:

Właściwości Domyślny opis
query.cache.enabled fałsz Włącza buforowanie wyników końcowych, jeśli wartość 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.

Uwaga

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łsz Po ustawieniu wartości true wymusza buforowanie wyniku wykonywania zapytania, który oznacza, że wynik zastępuje istniejące buforowane dane, jeśli istnieje).

Uwaga

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ądzanego rozwiązania Prometheus i narzędzia Grafana. Dostępne są następujące metryki:

Metryczne opis
trino_cache_cachestats_requestcount Łączna liczba zapytań przechodzących przez warstwę pamięci podręcznej. Ta liczba nie obejmuje zapytań wykonywanych z 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ń eksmitowanych 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.

Przy użyciu witryny Azure Portal

  1. Zaloguj się do Portalu Azure.

  2. Na pasku wyszukiwania w witrynie Azure Portal wpisz ciąg "HDInsight on AKS cluster" (Klaster usługi HDInsight w usłudze Azure HDInsight w klastrach usługi AKS) 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 bloku Zarządzanie konfiguracją .

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

  5. Przejdź do pliku config.properties —> konfiguracje niestandardowe, a następnie kliknij przycisk 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 usługi ARM

Wymagania wstępne

  • Operacyjny klaster Trino z usługą HDInsight w usłudze AKS.
  • Utwórz szablon usługi ARM dla klastra.
  • Zapoznaj się z kompletnym przykładem szablonu usługi ARM klastra.
  • Znajomość tworzenia i wdrażania szablonów usługi ARM.

Należy zdefiniować właściwości w składniku koordynatora w properties.clusterProfile.serviceConfigsProfiles sekcji w szablonie usługi 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 .

Uwaga

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 usługi 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 usługi ARM, aby odzwierciedlić zmiany w klastrze. Dowiedz się, jak wdrożyć szablon usługi ARM.