Sdílet prostřednictvím


Konfigurace ukládání do mezipaměti

Důležitý

31. ledna 2025 byl Azure HDInsight na AKS vyřazen. Zjistěte více s tímto oznámením.

Abyste se vyhnuli náhlému ukončení úloh, musíte migrovat úlohy do Microsoft Fabric nebo ekvivalentního produktu Azure.

Důležitý

Tato funkce je aktuálně ve verzi Preview. doplňkové podmínky použití pro náhledové verze Microsoft Azure obsahují více právních podmínek, které se vztahují na funkce Azure, které jsou v beta, náhledu nebo jinak ještě nebyly vydány pro obecné použití. Informace o této konkrétní verzi Preview najdete v tématu Azure HDInsight ve službě AKS ve verzi Preview. Pokud máte dotazy nebo návrhy funkcí, odešlete prosím žádost na AskHDInsight s podrobnostmi a sledujte nás pro další aktualizace v rámci komunity Azure HDInsight .

Dotazování na úložiště objektů pomocí konektoru Hive je běžným případem použití pro Trino. Tento proces často zahrnuje odesílání velkých objemů dat. Objekty se načítají z HDFS nebo jiného podporovaného úložiště objektů více pracovníky a zpracovávají se těmito pracovníky. Opakované dotazy s různými parametry nebo dokonce různé dotazy od různých uživatelů často přistupují ke stejným objektům a přenášejí je.

Služba HDInsight v AKS přidala konečnou funkci ukládání do mezipaměti pro Trino, která poskytuje následující výhody:

  • Snižte zatížení úložiště objektů.
  • Zlepšte výkon dotazů.
  • Snižte náklady na dotazy.

Možnosti ukládání do mezipaměti

Různé možnosti ukládání do mezipaměti:

Ukládání konečných výsledků do mezipaměti

Ukládání konečných výsledků do mezipaměti je možné nakonfigurovat dvěma způsoby:

Dostupné parametry konfigurace jsou:

Vlastnost Výchozí Popis
query.cache.enabled falešný Povolí ukládání konečných výsledků do mezipaměti, pokud je true.
query.cache.ttl - Definuje čas, kdy se data mezipaměti uchovávají před vyřazením. Příklad: "10m","1h"
query.cache.disk-usage-percentage 80 Procento místa na disku použitého pro data uložená v mezipaměti
query.cache.max-result-data-size 0 Maximální velikost dat pro výsledek Pokud tato hodnota překročíte, výsledek se neupamí.

Poznámka

Ukládání konečných výsledků do mezipaměti používá plán dotazu a hodnotu ttl jako klíč mezipaměti.

Ukládání konečných výsledků do mezipaměti lze také řídit pomocí následujících parametrů relace:

Parametr sezení Výchozí Popis
query_cache_enabled Původní hodnota konfigurace Povolí nebo zakáže ukládání konečných výsledků do mezipaměti pro dotaz nebo relaci.
query_cache_ttl Původní hodnota konfigurace Definuje čas, kdy se data mezipaměti uchovávají před vyřazením.
query_cache_max_result_data_size Původní hodnota konfigurace Maximální velikost dat pro výsledek Pokud tato hodnota překročíte, výsledek se neupamí.
query_cache_forced_refresh falešný Pokud je nastavená hodnota true, vynutí, aby byl výsledek spuštění dotazu uložen do mezipaměti, tedy nahradí existující data uložená v mezipaměti, pokud existují.

Poznámka

Parametry relace je možné nastavit pro relaci (například pokud se používá rozhraní příkazového řádku Trino) nebo lze nastavit ve více příkazech před textem dotazu. Například

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;

Ukládání konečných výsledků do mezipaměti vytváří metriky JMX, které je možné zobrazit pomocí Managed Prometheus a Grafana. K dispozici jsou následující metriky:

Metrický Popis
trino_cache_cachestats_requestcount Celkový počet dotazů procházejících vrstvou mezipaměti Toto číslo nezahrnuje dotazy spuštěné s vypnutou mezipamětí.
trino_cache_cachestats_hitcount Počet zásahů do mezipaměti, tj. počet dotazů, když byla data k dispozici a vrácena z mezipaměti.
trino_cache_cachestats_misscount Počet zmeškaných mezipamětí, tj. počet dotazů, když data nebyla dostupná a musela být uložena do mezipaměti.
trino_cache_cachestats_hitrate Procentuální vyjádření přístupů do mezipaměti oproti celkovému počtu dotazů.
trino_cache_cachestats_totalevictedcount Počet dotazů odstraněných z mezipaměti.
trino_cache_cachestats_totalbytesfromsource Počet bajtů přečtených ze zdroje
trino_cache_cachestats_totalbytesfromcache Počet bajtů načtených z mezipaměti
trino_cache_cachestats_totalcachedbytes Celkový počet bajtů uložených v mezipaměti
trino_cache_cachestats_totalevictedbytes Celkový počet vyřazených bajtů
trino_cache_cachestats_spaceused Aktuální velikost mezipaměti.
trino_cache_cachestats_cachereadfailures Kolikrát se data nedají číst z mezipaměti kvůli žádné chybě.
trino_cache_cachestats_cachewritefailures Počet, kdy se data nedají zapsat do mezipaměti kvůli žádné chybě

Použití webu Azure Portal

  1. Přihlaste se k webu Azure Portal.

  2. Na panelu hledání na webu Azure Portal zadejte "HDInsight v clusteru AKS" a v rozevíracím seznamu vyberte Azure HDInsight v clusterech AKS.

    Snímek obrazovky znázorňující možnost hledání pro zahájení práce se službou HDInsight v clusteru AKS

  3. Na stránce seznamu vyberte název clusteru.

    snímek obrazovky znázorňující výběr HDInsight v clusteru AKS, který požadujete ze seznamu

  4. Přejděte na panel Configuration Management.

    snímek obrazovky znázorňující správu konfigurace webu Azure Portal

  5. Přejděte na config.properties -> Vlastní konfigurace a potom klepněte na tlačítko Přidat.

    Snímek obrazovky zobrazující vlastní konfiguraci

  6. Nastavte požadované vlastnosti a klepněte na tlačítko OK.

    Snímek obrazovky zobrazující vlastnosti konfigurace

  7. Uložte konfiguraci.

    Snímek obrazovky znázorňující, jak konfiguraci uložit

Použití šablony ARM

Požadavky

V properties.clusterProfile.serviceConfigsProfiles části šablony ARM je potřeba definovat vlastnosti v koordinátorové komponentě. Následující příklad ukazuje, kam přidat vlastnosti.

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

Všechny tři konektory sdílejí stejnou sadu parametrů, jak je popsáno v Hive cache.

Poznámka

Některé parametry nejsou konfigurovatelné a vždy se nastavují na výchozí hodnoty:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80

Následující příklad ukazuje, kde přidat vlastnosti pro povolení ukládání Hive do mezipaměti pomocí šablony 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"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }

            }
        }
    ]
}

Nasaďte aktualizovanou šablonu ARM tak, aby odrážela změny v clusteru. Zjistěte, jak nasadit šablonu ARM.