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
Zaloguj się do Portalu Azure.
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.
Wybierz nazwę klastra na stronie listy.
Przejdź do bloku Zarządzanie konfiguracją .
Przejdź do pliku config.properties —> konfiguracje niestandardowe, a następnie kliknij przycisk Dodaj.
Ustaw wymagane właściwości, a następnie kliknij przycisk OK.
Zapisz konfigurację.
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.