Ukládání dotazů do mezipaměti
Ukládání do mezipaměti je základní technika pro zlepšení výkonu systémů datového skladu tím, že se vyhnete nutnosti překompilovat nebo načíst stejná data vícekrát. V Databricks SQL může ukládání do mezipaměti výrazně zrychlit spouštění dotazů a minimalizovat využití skladu, což vede k nižším nákladům a efektivnějšímu využití prostředků. Každá vrstva ukládání do mezipaměti zlepšuje výkon dotazů, minimalizuje využití clusteru a optimalizuje využití prostředků pro bezproblémové prostředí datového skladu.
Ukládání do mezipaměti poskytuje mnoho výhod v datových skladech, mezi které patří:
- Rychlost: Ukládáním výsledků dotazů nebo často používanými daty do paměti nebo jiných rychlých úložných médií může ukládání do mezipaměti výrazně snížit dobu provádění dotazů. Toto úložiště je obzvláště užitečné pro opakované dotazy, protože systém může rychle načíst výsledky uložené v mezipaměti místo jejich opětovného dokončování.
- Snížené využití clusteru: Ukládání do mezipaměti minimalizuje potřebu dalších výpočetních prostředků opětovným použitím dříve vypočítaných výsledků. To snižuje celkovou dobu provozu skladu a poptávku po dalších výpočetních clusterech, což vede k úsporám nákladů a lepšímu přidělování prostředků.
Typy mezipamětí dotazů v Databricks SQL
Databricks SQL provádí několik typů ukládání dotazů do mezipaměti.
Mezipaměť uživatelského rozhraní SQL Databricks: Ukládání všech dotazů a řídicích panelů do mezipaměti pro jednotlivé uživatele v uživatelském rozhraní SQL Databricks. Když uživatelé poprvé otevřou řídicí panel nebo dotaz SQL, zobrazí mezipaměť uživatelského rozhraní SQL Databricks nejnovější výsledek dotazu, včetně výsledků plánovaných spuštění.
Mezipaměť uživatelského rozhraní SQL Databricks má maximálně 7denní životní cyklus. Mezipaměť se nachází ve vašem systému souborů Azure Databricks ve vašem účtu. Výsledky dotazu můžete odstranit opětovným spuštěním dotazu, který už nechcete uložit. Po opětovném spuštění se staré výsledky dotazu odeberou z mezipaměti. Mezipaměť se navíc po aktualizaci podkladových tabulek zneplatní.
Mezipaměť výsledků: Ukládání výsledků dotazů do mezipaměti na clusteru pro všechny dotazy prostřednictvím SQL Warehouse. Ukládání výsledků do mezipaměti zahrnuje místní i vzdálené mezipaměti výsledků, které spolupracují na zlepšení výkonu dotazů uložením výsledků dotazů do paměti nebo média vzdáleného úložiště.
- Místní mezipaměť: Místní mezipaměť je mezipaměť v paměti, která ukládá výsledky dotazů pro dobu životnosti clusteru nebo dokud nebude mezipaměť plná, podle toho, co nastane dříve. Tato mezipaměť je užitečná pro urychlení opakovaných dotazů a eliminuje nutnost překomputovat stejné výsledky. Jakmile se ale cluster zastaví nebo restartuje, mezipaměť se vyčistí a všechny výsledky dotazu se odeberou.
- Vzdálená mezipaměť výsledků: Mezipaměť výsledků vzdáleného výsledku je bezserverový systém mezipaměti, který uchovává výsledky dotazů tím, že je uchovává jako systémová data pracovního prostoru. V důsledku toho tato mezipaměť není zneplatněná zastavením nebo restartováním služby SQL Warehouse. Vzdálená mezipaměť výsledků řeší běžný bod bolesti při ukládání dotazů do mezipaměti, což je v paměti, které zůstává dostupné jenom za předpokladu, že jsou výpočetní prostředky spuštěné. Vzdálená mezipaměť je trvalou sdílenou mezi všemi sklady v pracovním prostoru Databricks.
Přístup k mezipaměti vzdálených výsledků vyžaduje spuštěný sklad. Při zpracování dotazu nejprve cluster vyhledá v místní mezipaměti a v případě potřeby se podívá do vzdálené mezipaměti výsledků. Dotaz se spustí pouze v případě, že výsledek dotazu není uložen v mezipaměti. Místní i vzdálené mezipaměti mají životní cyklus 24 hodin, který začíná vstupem do mezipaměti. Vzdálená mezipaměť výsledků se zachová po zastavení nebo restartování sql warehouse. Obě mezipaměti jsou při aktualizaci podkladových tabulek neplatné.
Vzdálená mezipaměť výsledků je k dispozici pro dotazy využívající klienty ODBC/ JDBC a rozhraní API pro příkazy SQL.
Pokud chcete zakázat ukládání výsledků dotazu do mezipaměti, můžete ho spustit
SET use_cached_result = false
v editoru SQL.Důležité
Tuto možnost byste měli použít pouze při testování nebo srovnávacím testování.
Mezipaměť disku: Ukládání místních ssd do mezipaměti pro čtení dat z úložiště dat pro dotazy prostřednictvím sql warehouse. Mezipaměť disku je navržená tak, aby zlepšila výkon dotazů tím, že ukládá data na disk, což umožňuje akcelerované čtení dat. Data se při načítání souborů automaticky ukládají do mezipaměti s využitím rychlého zprostředkujícího formátu. Uložením kopií souborů do místního úložiště připojeného k výpočetním uzlům zajišťuje mezipaměť disku umístění dat blíže k pracovníkům, což vede ke zlepšení výkonu dotazů. Viz Optimalizace výkonu s využitím ukládání do mezipaměti v Azure Databricks.
Kromě primární funkce mezipaměť disku automaticky detekuje změny v podkladových datových souborech. Když zjistí změny, mezipaměť se zneplatní. Mezipaměť disku sdílí stejné vlastnosti životního cyklu jako místní mezipaměť výsledků. To znamená, že když je cluster zastavený nebo restartovaný, mezipaměť se vyčistí a musí se znovu restartovat.
Výsledky dotazů ukládají do mezipaměti a mezipaměť disku ovlivňují dotazy v uživatelském rozhraní SQL Databricks a v BI a dalších externích klientech.