Co jsou Delta Live Tables?
Delta Live Tables je deklarativní architektura pro vytváření spolehlivých, udržovatelných a testovatelných kanálů zpracování dat. Transformace, které se mají provádět s daty, a delta live tables spravuje orchestraci úloh, správu clusteru, monitorování, kvalitu dat a zpracování chyb.
Poznámka:
Delta Live Tables vyžaduje plán Premium. Další informace získáte od týmu účtu Databricks.
Místo definování datových kanálů pomocí řady samostatných úloh Apache Sparku definujete tabulky streamování a materializovaná zobrazení, která by systém měl vytvořit a udržovat v aktualizovaném stavu. Delta Live Tables spravuje způsob transformace dat na základě dotazů, které definujete pro každý krok zpracování. Můžete také vynutit kvalitu dat pomocí očekávání rozdílových dynamických tabulek, které umožňují definovat očekávanou kvalitu dat a určit, jak zpracovávat záznamy, které tyto očekávání nesplní.
Další informace o výhodách vytváření a spouštění kanálů ETL pomocí delta živých tabulek najdete na stránce produktu Delta Live Tables.
Co jsou datové sady Delta Live Tables?
Datové sady Delta Live Tables jsou streamované tabulky, materializovaná zobrazení a zobrazení udržovaná jako výsledky deklarativních dotazů. Následující tabulka popisuje, jak se jednotlivé datové sady zpracovávají:
Typ datové sady | Jak se zpracovávají záznamy prostřednictvím definovaných dotazů? |
---|---|
Tabulka pro streamování | Každý záznam se zpracuje přesně jednou. To předpokládá zdroj jen pro připojení. |
Materializovaná zobrazení | Záznamy se zpracovávají tak, aby vracely přesné výsledky pro aktuální stav dat. Materializovaná zobrazení by se měla používat pro úlohy zpracování dat, jako jsou transformace, agregace nebo předpočítací pomalé dotazy a často používané výpočty. |
Zobrazení | Záznamy se zpracovávají pokaždé, když se zobrazení dotazuje. Zobrazení slouží k přechodným transformacím a kontrolám kvality dat, které by se neměly publikovat do veřejných datových sad. |
Následující části obsahují podrobnější popis jednotlivých typů datových sad. Další informace o výběru typů datových sad pro implementaci požadavků na zpracování dat najdete v tématu Kdy použít zobrazení, materializovaná zobrazení a streamované tabulky.
Tabulka pro streamování
Streamovací tabulka je tabulka Delta s dodatečnou podporou streamování nebo přírůstkového zpracování dat. Streamované tabulky umožňují zpracovávat rostoucí datovou sadu, která zpracovává každý řádek pouze jednou. Vzhledem k tomu, že většina datových sad v průběhu času roste, jsou streamované tabulky vhodné pro většinu úloh příjmu dat. Tabulky streamování jsou optimální pro kanály, které vyžadují aktuálnost dat a nízkou latenci. Streamované tabulky můžou být také užitečné pro masivní transformace škálování, protože výsledky se dají postupně vypočítat při příchodu nových dat, přičemž výsledky budou aktuální, aniž by bylo nutné plně překompilovat všechna zdrojová data s každou aktualizací. Streamované tabulky jsou navržené pro zdroje dat, které jsou jen pro připojení.
Poznámka:
I když streamované tabulky ve výchozím nastavení vyžadují zdroje dat jen pro připojení, pokud je zdrojem streamování jiná streamovací tabulka, která vyžaduje aktualizace nebo odstranění, můžete toto chování přepsat příznakem skipChangeCommits.
Materializované zobrazení
Materializované zobrazení je zobrazení, ve kterém byly výsledky předem přepočítané. Materializovaná zobrazení se aktualizují podle plánu aktualizace kanálu, ve kterém jsou obsažena. Materializovaná zobrazení jsou výkonná, protože můžou zpracovávat jakékoli změny vstupu. Pokaždé, když se kanál aktualizuje, výsledky dotazů se přepočítávají tak, aby odrážely změny v upstreamových datových sadách, ke kterým mohlo dojít kvůli dodržování předpisů, opravám, agregacím nebo obecnému CDC. Delta Live Tables implementuje materializovaná zobrazení jako tabulky Delta, ale abstrahuje složitost související s efektivní aplikací aktualizací, což uživatelům umožňuje soustředit se na psaní dotazů.
Zobrazení
Všechna zobrazení ve službě Azure Databricks výpočetní výsledky ze zdrojových datových sad při dotazování využívají optimalizaci ukládání do mezipaměti, pokud jsou k dispozici. Delta Live Tables nepublikuje zobrazení do katalogu, takže na zobrazení lze odkazovat pouze v rámci kanálu, ve kterém jsou definovány. Zobrazení jsou užitečná jako přechodné dotazy, které by neměly být vystaveny koncovým uživatelům nebo systémům. Databricks doporučuje používat zobrazení k vynucení omezení kvality dat nebo transformaci a rozšiřování datových sad, které řídí více podřízených dotazů.
Deklarace prvních datových sad v rozdílových živých tabulkách
Delta Live Tables zavádí novou syntaxi pro Python a SQL. Pokud chcete začít se syntaxí Delta Live Tables, projděte si příklady Pythonu a SQL v kurzu: Spuštění prvního kanálu dynamických tabulek Delta.
Poznámka:
Delta Live Tables odděluje definice datových sad od zpracování aktualizací a poznámkové bloky Delta Live Tables nejsou určené pro interaktivní spouštění. Podívejte se, co je kanál Delta Live Tables?
Co je kanál Delta Live Tables?
Kanál je hlavní jednotka, která slouží ke konfiguraci a spouštění pracovních postupů zpracování dat pomocí rozdílových živých tabulek.
Kanál obsahuje materializovaná zobrazení a streamované tabulky deklarované ve zdrojových souborech Pythonu nebo SQL. Rozdílové živé tabulky odvozují závislosti mezi těmito tabulkami a zajišťují, aby aktualizace probíhaly ve správném pořadí. Pro každou datovou sadu rozdílové živé tabulky porovnává aktuální stav s požadovaným stavem a pokračuje vytvořením nebo aktualizací datových sad pomocí efektivních metod zpracování.
Nastavení kanálů Delta Live Tables spadají do dvou širokých kategorií:
- Konfigurace, které definují kolekci poznámkových bloků nebo souborů (označovaných jako zdrojový kód), které k deklaraci datových sad používají syntaxi Delta Live Tables.
- Konfigurace, které řídí infrastrukturu kanálů, správu závislostí, zpracování aktualizací a způsob ukládání tabulek v pracovním prostoru.
Většina konfigurací je volitelná, ale některé vyžadují pečlivou pozornost, zejména při konfiguraci produkčních kanálů. Patří mezi ně následující:
- Pokud chcete zpřístupnit data mimo kanál, musíte deklarovat cílové schéma pro publikování do metastoru Hive nebo cílového katalogu a cílového schématu pro publikování do katalogu Unity.
- Oprávnění pro přístup k datům se konfigurují prostřednictvím clusteru používaného ke spuštění. Ujistěte se, že váš cluster má odpovídající oprávnění nakonfigurovaná pro zdroje dat a cílové umístění úložiště( pokud je zadáno).
Podrobnosti o použití Pythonu a SQL k zápisu zdrojového kódu pro kanály najdete v referenční dokumentaci jazyka SQL delta Live Tables a referenční informace k jazyku Delta Live Tables Python.
Další informace o nastaveních a konfiguracích kanálu najdete v tématu Konfigurace kanálu Delta Live Tables.
Nasazení prvního kanálu a aktivace aktualizací
Před zpracováním dat pomocí rozdílových živých tabulek je nutné nakonfigurovat kanál. Jakmile je kanál nakonfigurovaný, můžete aktivovat aktualizaci pro výpočet výsledků pro každou datovou sadu v kanálu. Pokud chcete začít používat kanály Delta Live Tables, přečtěte si kurz : Spuštění prvního kanálu dynamických tabulek Delta.
Co je aktualizace kanálu?
Kanály při spuštění aktualizace nasazují infrastrukturu a rekomputují stav dat. Aktualizace provede následující:
- Spustí cluster se správnou konfigurací.
- Vyhledá všechny definované tabulky a zobrazení a vyhledá všechny chyby analýzy, jako jsou neplatné názvy sloupců, chybějící závislosti a chyby syntaxe.
- Vytvoří nebo aktualizuje tabulky a zobrazení s nejnovějšími dostupnými daty.
Kanály se můžou spouštět nepřetržitě nebo podle plánu v závislosti na požadavcích na náklady a latenci vašeho případu použití. Viz Spuštění aktualizace v kanálu Delta Live Tables.
Ingestování dat pomocí dynamických tabulek Delta
Delta Live Tables podporuje všechny zdroje dat dostupné v Azure Databricks.
Databricks doporučuje používat streamované tabulky pro většinu případů použití příjmu dat. Pro soubory přicházející do cloudového úložiště objektů doporučuje Databricks automatický zavaděč. Data můžete přímo ingestovat pomocí Delta Live Tables z většiny sběrnic zpráv.
Další informace o konfiguraci přístupu ke cloudovému úložišti najdete v tématu Konfigurace cloudového úložiště.
U formátů, které automatické zavaděče nepodporuje, můžete k dotazování libovolného formátu podporovaného Apache Sparkem použít Python nebo SQL. Viz Načtení dat s rozdílovými živými tabulkami.
Monitorování a vynucování kvality dat
Pomocí očekávání můžete určit ovládací prvky kvality dat v obsahu datové sady. CHECK
Na rozdíl od omezení v tradiční databázi, které brání přidání všech záznamů, které omezení selžou, poskytují očekávání flexibilitu při zpracování dat, která nesplňuje požadavky na kvalitu dat. Tato flexibilita umožňuje zpracovávat a ukládat data, která očekáváte, že budou nepořádná a data, která musí splňovat přísné požadavky na kvalitu. Viz Správa kvality dat pomocí rozdílových živých tabulek.
Jak souvisí tabulky Delta Live a Delta Lake?
Delta Live Tables rozšiřuje funkce Delta Lake. Vzhledem k tomu, že tabulky vytvořené a spravované službou Delta Live Tables jsou tabulky Delta, mají stejné záruky a funkce, které poskytuje Delta Lake. Podívejte se, co je Delta Lake?
Delta Live Tables přidává několik vlastností tabulky kromě mnoha vlastností tabulky, které lze nastavit v Delta Lake. Viz odkazy na vlastnosti dynamických tabulek Delta a odkaz na vlastnosti tabulky Delta.
Jak se tabulky vytvářejí a spravují pomocí Delta Live Tables
Azure Databricks automaticky spravuje tabulky vytvořené pomocí rozdílových živých tabulek a určuje, jak je potřeba aktualizace zpracovat, aby bylo možné správně vypočítat aktuální stav tabulky a provádět řadu úloh údržby a optimalizace.
U většiny operací byste měli povolit, aby dynamické tabulky Delta zpracovávaly všechny aktualizace, vkládání a odstranění do cílové tabulky. Podrobnosti a omezení najdete v tématu Zachování ručních odstranění nebo aktualizací.
Úlohy údržby prováděné dynamickými tabulkami Delta
Delta Live Tables provádí úlohy údržby do 24 hodin od aktualizace tabulky. Údržba může zlepšit výkon dotazů a snížit náklady odebráním starých verzí tabulek. Ve výchozím nastavení systém provádí úplnou operaci OPTIMIZE následovanou vakuem. Funkci OPTIMIZE pro tabulku můžete zakázat nastavením pipelines.autoOptimize.managed = false
vlastností tabulky pro tabulku. Úlohy údržby se provádějí pouze v případě, že se aktualizace kanálu spustila po dobu 24 hodin před naplánovanou úlohou údržby.
Omezení
Platí následující omezení:
- Všechny tabulky vytvořené a aktualizované službou Delta Live Tables jsou tabulky Delta.
- Dotazy na časové cesty Delta Lake jsou podporovány pouze u streamovaných tabulek a nejsou podporovány v materializovaných zobrazeních. Přečtěte si: Práce s historií tabulky Delta Lake.
- Tabulky Delta Live Tables se dají definovat jenom jednou, což znamená, že jde jenom o cíl jedné operace ve všech kanálech delta živých tabulek.
- Sloupce identity nejsou podporovány v tabulkách, které jsou cílem
APPLY CHANGES INTO
a můžou být při aktualizacích materializovaných zobrazení přepočítané. Z tohoto důvodu databricks doporučuje používat sloupce identit v tabulkách Delta Live Pouze se streamovanými tabulkami. Viz Použití sloupců identit v Delta Lake. - Pracovní prostor Azure Databricks je omezený na 100 souběžných aktualizací kanálu.
Seznam požadavků a omezení specifických pro používání rozdílových živých tabulek s katalogem Unity najdete v tématu Použití katalogu Unity s kanály Delta Live Tables.
Další materiály
- Delta Live Tables má plnou podporu v rozhraní Databricks REST API. Viz rozhraní DLT API.
- Informace o nastavení kanálu a tabulky najdete v tématu Odkaz na vlastnosti delta živých tabulek.
- Referenční informace k jazyku SQL delta Live Tables
- Referenční dokumentace jazyka Pythonu pro tabulky Delta Live Tables