Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Kusto obsahuje mezipaměť výsledků dotazu. Při vydávání dotazu můžete získat výsledky uložené v mezipaměti. Pokud může mezipaměť vrátit výsledky dotazu, dosáhnete lepšího výkonu dotazů a nižší spotřeby prostředků. Tento výkon ale připadá na úkor nějaké "neagrese" ve výsledcích.
Použití mezipaměti
query_results_cache_max_age Nastavte možnost jako součást dotazu tak, aby používala mezipaměť výsledků dotazu. Tuto možnost můžete nastavit v textu dotazu nebo jako vlastnost požadavku klienta. Příklad:
set query_results_cache_max_age = time(5m);
GithubEvent
| where CreatedAt > ago(180d)
| summarize arg_max(CreatedAt, Type) by Id
Hodnota možnosti je timespan hodnota, která označuje maximální stáří mezipaměti výsledků měřenou od času spuštění dotazu. Kromě nastaveného časového rozsahu je položka mezipaměti zastaralá a nebude se znovu používat. Nastavení hodnoty 0 odpovídá tomu, že možnost nenastavíte.
Kompatibilita mezi dotazy
Identické dotazy
Mezipaměť výsledků dotazu vrátí výsledky pouze pro dotazy, které jsou považovány za "identické" s předchozím dotazem v mezipaměti. Pokud jsou splněny všechny následující podmínky, považují se za identické dva dotazy:
- Oba dotazy mají stejnou reprezentaci (jako řetězce UTF-8).
- Dva dotazy se provádějí ve stejné databázi.
- Dva dotazy sdílejí stejné vlastnosti požadavku klienta. Pro účely ukládání do mezipaměti se ignorují následující vlastnosti:
- ClientRequestId
- Aplikace
- Uživatelská
Nekompatibilní dotazy
Výsledky dotazu nebudou uloženy do mezipaměti, pokud platí některá z následujících podmínek:
- Dotaz odkazuje na tabulku s povolenou zásadou RestrictedViewAccess .
- Dotaz odkazuje na tabulku s povolenou zásadou RowLevelSecurity .
- Dotaz používá některou z následujících funkcí:
- Dotaz přistupuje k externí tabulce nebo externím datům.
- Dotaz používá operátor modulu plug-in evaluate.
Žádná platná položka mezipaměti
Pokud se nepodařilo najít výsledek uložený v mezipaměti, který splňuje časová omezení nebo neexistuje výsledek dotazu v mezipaměti z "identického" dotazu, spustí se dotaz a jeho výsledky se uloží do mezipaměti, pokud:
- Provádění dotazu se úspěšně dokončilo a
- Velikost výsledků dotazu nepřesahuje 16 MB.
Výsledky z mezipaměti
Jak služba indikuje, že výsledky dotazu se obsluhují z mezipaměti?
Při odpovídání na dotaz odešle Kusto další tabulku odpovědí ExtendedProperties , která obsahuje Key sloupec a Value sloupec.
Výsledky dotazu v mezipaměti budou mít k této tabulce připojený další řádek:
- Sloupec řádku
Keybude obsahovat řetězec.ServerCache - Sloupec řádku
Valuebude obsahovat tašku vlastností se dvěma poli:-
OriginalClientRequestId– Určuje ClientRequestId původního požadavku. -
OriginalStartedOn– Určuje počáteční čas spuštění původního požadavku.
-
Konzistence dotazů
Dotazy využívající slabou konzistenci je možné zpracovávat na různých uzlech clusteru. Mezipaměť nesdílí uzly clusteru, každý uzel má vyhrazenou mezipaměť ve vlastním privátním úložišti. Proto pokud dva identické dotazy přistanou na různých uzlech, spustí se dotaz a uloží se do mezipaměti na obou uzlech. Nastavením konzistence dotazů na affinitizedweakconsistencymůžete zajistit, aby slabé dotazy konzistence, které jsou identické na stejné hlavice dotazů, a tím zvýšily rychlost dosažení mezipaměti. To není relevantní při použití silné konzistence.
Správa
Podporují se následující příkazy pro správu a pozorovatelnost:
- Zobrazit mezipaměť výsledků dotazu: Vrátí statistiky související s mezipamětí výsledků dotazu.
- Vymazat mezipaměť výsledků dotazu: Vymaže mezipaměť výsledků dotazu.
- Položka mezipaměti dotazu aktualizace: Konkrétní položku mezipaměti dotazu lze aktualizovat pomocí
query_results_cache_force_refreshvlastnosti požadavku klienta (OptionQueryResultsCacheForceRefresh). Pokud je tato možnost nastavená,truetento příkaz vynutí aktualizaci mezipaměti výsledků dotazu také v případě, že existuje existující mezipaměť. Tento proces je užitečný ve scénářích, které vyžadují, aby byly k dispozici výsledky dotazů pro dotazování. Tato vlastnost musí být použita v kombinaci s "query_results_cache_max_age" a odeslána prostřednictvím ClientRequestProperties objektu. Vlastnost nemůže být součástí příkazu set.
Kapacita
Kapacita mezipaměti je aktuálně pevná na 1 GB na uzel clusteru. Zásada vyřazení je LRU.
Mezipaměť výsledků dotazu na úrovni horizontálních oddílů
Mezipaměť výsledků dotazů na úrovni horizontálních oddílů můžete použít pro scénáře, které vyžadují nejaktuálnější výsledky, jako je živý řídicí panel. Například dotaz, který se spouští každých 10 sekund a zahrnuje posledních 1 hodinu, může těžit z ukládání výsledků mezilehlých dotazů na úrovni úložiště (horizontálních oddílů).
Mezipaměť výsledků dotazu na úrovni horizontálních oddílů se automaticky povolí, když Query results cache se používá. Protože sdílí stejnou mezipaměť jako Query results cache, platí stejné zásady kapacity a vyřazení.
Syntaxe
set
query_results_cache_per_shard; Dotaz
Poznámka:
Tuto možnost lze nastavit v textu dotazu nebo jako vlastnost požadavku klienta.
Přečtěte si další informace o konvencích syntaxe.
Příklad
set query_results_cache_per_shard;
GithubEvent
| where CreatedAt > ago(180d)
| summarize arg_max(CreatedAt, Type) by Id