Sdílet prostřednictvím


Co je DLT?

Poznámka

DLT vyžaduje program Premium. Další informace získáte od týmu účtu Databricks.

DLT je deklarativní architektura navržená tak, aby zjednodušila vytváření spolehlivých a udržovatelných kanálů extrakce, transformace a načítání (ETL). Určíte, jaká data se mají ingestovat a jak je transformovat, a DLT automatizuje klíčové aspekty správy datového kanálu, včetně orchestrace, správy výpočetních prostředků, monitorování, vynucení kvality dat a zpracování chyb.

DLT je postaven na Apache Sparku, ale místo definování datových kanálů pomocí řady samostatných úloh Apache Sparku definujete streamované tabulky a materializovaná zobrazení, která by systém měl vytvořit, a dotazy potřebné k naplnění a aktualizaci těchto streamovaných tabulek a materializovaných zobrazení.

Další informace o výhodách vytváření a spouštění kanálů ETL pomocí DLT najdete na stránce produktu DLT.

výhody DLT oproti Apache Sparku

Apache Spark je univerzální opensourcový jednotný analytický modul, včetně ETL. DLT staví na Sparku pro řešení konkrétních a běžných úloh zpracování ETL. DLT může výrazně urychlit cestu k produkčnímu prostředí, pokud vaše požadavky zahrnují tyto úlohy zpracování, včetně:

  • Ingestování dat z typických zdrojů
  • Přírůstková transformace dat
  • Provádění zachytávání dat změn (CDC)

DlT však není vhodné pro implementaci některých typů procedurální logiky. Například požadavky na zpracování, jako je zápis do externí tabulky nebo zahrnutí podmíněného fungování s externím úložištěm souborů nebo databázovými tabulkami, nelze provádět uvnitř kódu definující datovou sadu DLT. Pokud chcete implementovat zpracování, které DLT nepodporuje, Databricks doporučuje použít Apache Spark nebo zahrnout pipeline do úlohy v Databricks, která provádí zpracování v samostatném úkolu. Podívejte se na úlohu DLT pipeline pro úlohy.

Následující tabulka porovnává knihovnu DLT s Apache Sparkem:

Schopnost DLT Apache Spark
Transformace dat Data můžete transformovat pomocí SQL nebo Pythonu. Data můžete transformovat pomocí SQL, Pythonu, Scaly nebo R.
Přírůstkové zpracování dat Mnoho transformací dat se automaticky zpracovává přírůstkově. Musíte určit, jaká data jsou nová, abyste je mohli přírůstkově zpracovat.
Orchestrace Transformace se automaticky orchestrují ve správném pořadí. Je nutné zajistit, aby se různé transformace spouštěly ve správném pořadí.
Rovnoběžnost Všechny transformace se spouští se správnou úrovní paralelismu. Pokud chcete paralelně spouštět nesouvisející transformace, musíte použít vlákna nebo externí orchestrátor.
Zpracování chyb Selhání se automaticky opakuje. Musíte se rozhodnout, jak zpracovávat chyby a opakování.
Monitorování Metriky a události se protokolují automaticky. Je nutné napsat kód pro shromažďování metrik o provádění nebo kvalitě dat.

klíčových konceptů DLT

Následující obrázek znázorňuje důležité součásti kanálu DLT, za kterými následuje vysvětlení jednotlivých kanálů.

klíčových konceptů DLT.

Streamovací tabulka

Streamovaná tabulka je tabulka Delta, která obsahuje jeden nebo více datových proudů, které do ní zapisují. Streamované tabulky jsou běžně používány pro datový příjem, protože zpracovávají vstupní data přesně jednou a mohou zpracovávat velké objemy pouze připojitelných dat. Streamované tabulky jsou také užitečné pro transformaci datových proudů s vysokou latencí.

Materializované zobrazení

Materializované zobrazení je zobrazení, které obsahuje předpočítané záznamy na základě dotazu, který definuje materializované zobrazení. Záznamy v materializovaném zobrazení jsou automaticky aktualizovány knihovnou DLT na základě plánu aktualizace nebo aktivačních událostí kanálu. Při každé aktualizaci materializovaného zobrazení je zaručeno, že budou mít stejné výsledky jako spuštění definující dotaz na nejnovější dostupná data. To se však často provádí bez přepočítávání úplného výsledku od začátku pomocí přírůstkové aktualizace. Materializovaná zobrazení se běžně používají pro transformace.

Pohledy

Všechna zobrazení ve službě Azure Databricks vypočítávají výsledky ze zdrojových datových sad při dotazování a využívají optimalizaci ukládání do mezipaměti, pokud jsou k dispozici. DLT nepublikuje zobrazení do katalogu, takže na zobrazení lze odkazovat pouze v 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ů.

Potrubí

Potrubí je sbírka streamovaných tabulek a materializovaných zobrazení, která se aktualizují společně. Tyto streamované tabulky a materializovaná zobrazení jsou deklarovány ve zdrojových souborech Pythonu nebo SQL. Kanál obsahuje také konfiguraci, která definuje výpočetní prostředky používané k aktualizaci streamovaných tabulek a materializovaných zobrazení při spuštění kanálu. Podobně jako šablona Terraformu definuje infrastrukturu ve vašem cloudovém účtu, kanál DLT definuje datové sady a transformace pro zpracování dat.

Jak datové sady DLT zpracovávají data?

Následující tabulka popisuje, jak materializovaná zobrazení, streamované tabulky a zobrazení zpracovávají data:

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, do kterého lze data pouze přidávat.
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.
Zobrazit Záznamy se zpracovávají pokaždé, když je zobrazení dotazováno. 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.

Deklarace prvních datových sad v DLT

DLT zavádí novou syntaxi pro Python a SQL. Základní informace o syntaxi kanálu najdete v tématu Vývoj kódu kanálu pomocí Pythonu a Vývoj kódu kanálu pomocí SQL.

Poznámka

DLT odděluje definice datových sad od zpracování aktualizací a poznámkové bloky DLT nejsou určené pro interaktivní spouštění.

Jak konfigurujete kanály DLT?

Nastavení kanálů DLT spadají do dvou širokých kategorií:

  1. 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 DLT.
  2. 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 k publikování do metastoru Hive, nebo cílový katalog a cílové schéma k 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á nakonfigurovaná příslušná oprávnění pro zdroje dat a cílové umístění úložiště , pokud je zadáno.

Podrobnosti o použití jazyka Python a SQL k psaní zdrojového kódu pro pipelines najdete v referenční dokumentaci jazyka DLT SQL a referenční dokumentaci jazyka Python.

Další informace o nastavení a konfiguracích kanálu najdete v tématu Konfiguracekanálu DLT .

Nasazení prvního pipeline a spuštění aktualizací

Před zpracováním dat pomocí DLT musíte nakonfigurovat kanál. Po nakonfigurování kanálu 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 DLT, přečtěte si kurz: Spuštění prvního kanálu DLT.

Co je aktualizace pipeline?

Potrubí nasazují infrastrukturu a přepočítávají stav dat při spuštění aktualizace. 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.

Potrubí se mohou spouštět nepřetržitě nebo podle plánu v závislosti na požadavcích na náklady a latenci vašeho použití. Viz Proveďte aktualizaci kanálu DLT.

Ingestování dat pomocí DLT

DLT 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 do cloudového objektového úložiště doporučuje Databricks Auto Loader. Data můžete přímo ingestovat pomocí DLT 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ě.

Pro formáty, které Auto Loader nepodporuje, můžete použít Python nebo SQL k dotazování jakéhokoliv formátu podporovaného Apache Sparkem. Viz Načtení dat pomocíDLT .

Monitorování a vynucování kvality dat

Pomocí očekávání můžete specifikovat kontroly kvality dat v obsahu datové sady. Na rozdíl od omezení CHECK v tradiční databázi, které zabraňuje přidání záznamů nesplňujících toto omezení, poskytují očekávání flexibilitu při zpracování dat, která nesplňují 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 s očekáváními pipeline.

DLT rozšiřuje funkce Delta Lake. Vzhledem k tomu, že tabulky vytvořené a spravované knihovnou DLT jsou tabulky Delta, mají stejné záruky a funkce, které poskytuje Delta Lake. Viz Co je Delta Lake?.

DlT přidává několik vlastností tabulky kromě mnoha vlastností tabulky, které lze nastavit v Delta Lake. Viz odkazy na vlastnosti DLT a vlastnosti tabulky Delta.

Vytváření a správa tabulek pomocí DLT

Azure Databricks automaticky spravuje tabulky vytvořené pomocí DLT 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 umožnit systému DLT zpracovávat veškeré aktualizace, vkládání a mazání v cílové tabulce. Podrobnosti a omezení najdete v části Zachovat ruční odstranění nebo aktualizace.

úlohy údržby prováděné technologií DLT

DLT 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 OPTIMIZE operaci, po níž následuje VACUUM. OPTIMIZE můžete zakázat pro tabulku tak, že ve vlastnostech tabulky nastavíte pipelines.autoOptimize.managed = false v . Úlohy údržby se provádějí pouze v případě, že byla provedena aktualizace kanálu v předchozích 24 hodinách před plánovanou údržbou.

Delta Live Tables je teď DLT

Produkt dříve známý jako Delta Live Tables je nyní DLT.

Omezení

Seznam omezení najdete v omezení DLT.

Seznam požadavků a omezení specifických pro používání DLT s katalogem Unity najdete v tématu Použití katalogu Unity s kanály DLT

Další zdroje informací