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.
Podobně jako standardní zobrazení jsou materializovaná zobrazení výsledky dotazu a vy k nim přistupujete stejným způsobem jako v tabulce. Na rozdíl od standardních zobrazení, která rekompuují výsledky u každého dotazu, materializovaná zobrazení uloží výsledky do mezipaměti a aktualizují je v zadaném intervalu. Vzhledem k tomu, že materializované zobrazení je předem předpočítané, můžou dotazy na něj běžet mnohem rychleji než u běžných zobrazení.
Materializované zobrazení je deklarativní objekt datového toku. Obsahuje dotaz , který ho definuje, tok , který ho aktualizuje, a výsledky uložené v mezipaměti pro rychlý přístup. Materializované zobrazení:
- Sleduje změny v upstreamových datech.
- Při triggeru přírůstkově zpracuje změněná data a použije potřebné transformace.
- Udržuje výstupní tabulku synchronizovanou se zdrojovými daty na základě zadaného intervalu aktualizace.
Materializovaná zobrazení jsou dobrou volbou pro mnoho transformací:
- Místo řádků použijete důvod pro výsledky uložené v mezipaměti. Ve skutečnosti jednoduše napíšete dotaz.
- Vždy jsou správné. Všechna požadovaná data se zpracovávají, i když dorazí pozdě nebo mimo objednávku.
- Často jsou přírůstkové. Databricks se pokusí zvolit odpovídající strategii, která minimalizuje náklady na aktualizaci materializovaného zobrazení.
Jak materializovaná zobrazení fungují
Následující diagram znázorňuje, jak fungují materializovaná zobrazení.
diagram 
Materializovaná zobrazení jsou definována a aktualizována jedním zpracovacím řetězcem. Ve zdrojovém kódu kanálu můžete explicitně definovat materializovaná zobrazení. Tabulky definované kanálem nejde změnit ani aktualizovat žádným jiným kanálem.
Poznámka:
Když vytvoříte materializované zobrazení mimo kanál pomocí Databricks SQL, Azure Databricks vytvoří kanál, který se použije k aktualizaci zobrazení. Kanál můžete zobrazit tak, že v levém navigačním panelu v pracovním prostoru vyberete Úlohy a Kanály . Do zobrazení můžete přidat sloupec typu kanálu . Materializovaná zobrazení definovaná v datovém kanálu mají typ ETL. Materializovaná zobrazení vytvořená v Databricks SQL mají typ MV/ST.
Databricks používá katalog Unity k ukládání metadat o zobrazení, včetně dotazu a dalších systémových zobrazení, která se používají pro přírůstkové aktualizace. Data uložená v mezipaměti jsou materializovaná v cloudovém úložišti.
Následující příklad spojuje dvě tabulky a udržuje výsledek aktuální pomocí materializovaného zobrazení.
Python
from pyspark import pipelines as dp
@dp.materialized_view
def regional_sales():
partners_df = spark.read.table("partners")
sales_df = spark.read.table("sales")
return (
partners_df.join(sales_df, on="partner_id", how="inner")
)
SQL
CREATE OR REPLACE MATERIALIZED VIEW regional_sales
AS SELECT *
FROM partners
INNER JOIN sales ON
partners.partner_id = sales.partner_id;
Automatické přírůstkové aktualizace
Když se aktivuje potrubí definující materializované zobrazení, je zobrazení automaticky udržováno aktuální, často přírůstkově. Databricks se pokusí zpracovat pouze data, která je potřeba zpracovat, aby materializované zobrazení bylo aktuální. Materializované zobrazení vždy zobrazuje správný výsledek, i když vyžaduje úplné přepočítání výsledku dotazu od začátku, ale Databricks často provádí pouze přírůstkové aktualizace materializovaného zobrazení, které může být mnohem méně nákladné než úplné přepočítání.
Následující diagram znázorňuje materializované zobrazení s názvem sales_report, což je výsledek spojení dvou nadřazených tabulek clean_customers a clean_transactionsa seskupování podle země. Upstreamový proces vloží 200 řádků do clean_customers tří zemí (USA, Nizozemsko, Velká Británie) a aktualizuje 5 000 řádků odpovídajících clean_transactions těmto novým zákazníkům. Materializované sales_report zobrazení se přírůstkově aktualizuje pouze pro země, které mají nové zákazníky nebo odpovídající transakce. V tomto příkladu vidíme, že byly aktualizovány tři řádky, místo celé zprávy o prodeji.
Další podrobnosti o tom, jak přírůstková aktualizace funguje v materializovaných zobrazeních, naleznete v tématu Přírůstková aktualizace pro materializovaná zobrazení.
Limity materializovaných zobrazení
Materializovaná zobrazení mají následující omezení:
- Vzhledem k tomu, že aktualizace vytvářejí správné dotazy, některé změny vstupů budou vyžadovat úplné přepočítání materializovaného zobrazení, které může být nákladné.
- Nejsou navržené pro případy použití s nízkou latencí. Latence aktualizace materializovaného zobrazení je v sekundách nebo minutách, nikoli v milisekundách.
- Ne všechny výpočty se dají vypočítat přírůstkově.