Vývoj kanálů DLT
Vývoj a testování kódu kanálu se liší od jiných úloh Apache Sparku. Tento článek obsahuje přehled podporovaných funkcí, osvědčených postupů a aspektů při vývoji kódu kanálu. Další doporučení a osvědčené postupy najdete v tématu Použití osvědčených postupů pro vývoj softwaru & Osvědčených postupů DevOps pro kanály DLT.
Poznámka
Abyste ověřili kód nebo spustili aktualizaci, musíte do konfigurace kanálu přidat zdrojový kód. Viz Konfiguracekanálu DLT .
Jaké soubory jsou platné pro zdrojový kód kanálu?
Kód kanálu DLT může být Python nebo SQL. Můžete mít kombinaci souborů zdrojového kódu Pythonu a SQL, které zálohují jeden kanál, ale každý soubor může obsahovat pouze jeden jazyk. Viz Vývoj kódu kanálu pomocí Pythonu a Vývoj kódu kanálu pomocí SQL.
Při zadávání zdrojového kódu pro pipeline můžete použít poznámkové bloky a soubory pracovního prostoru. Soubory pracovního prostoru představují skripty Pythonu nebo SQL vytvořené v preferovaném integrovaném vývojovém prostředí (IDE) nebo v editoru souborů Databricks. Podívejte se na Co jsou soubory pracovního prostoru?.
Pokud vyvíjíte kód Pythonu jako moduly nebo knihovny, musíte kód nainstalovat a importovat a pak volat metody z poznámkového bloku Nebo souboru pracovního prostoru Pythonu nakonfigurovaného jako zdrojový kód. Viz Správa závislostí Pythonu pro kanály DLT.
Poznámka
Pokud potřebujete v poznámkovém bloku Pythonu použít libovolné příkazy SQL, můžete použít vzor syntaxe spark.sql("<QUERY>")
ke spuštění SQL jako kódu Pythonu.
Funkce katalogu Unity umožňují registrovat libovolné uživatelem definované funkce Pythonu pro použití v SQL. Viz funkce definované uživatelem (UDF) v katalogu Unity.
Přehled vývojových funkcí DLT
DLT rozšiřuje a využívá mnoho funkcí Azure Databricks a zavádí nové funkce a koncepty. Následující tabulka obsahuje stručný přehled konceptů a funkcí, které podporují vývoj kódu kanálu:
Funkce | Popis |
---|---|
Režim vývoje | Nové kanály se ve výchozím nastavení konfigurují tak, aby běžely ve vývojovém režimu. Databricks doporučuje používat vývojový režim pro interaktivní vývoj a testování. Viz režimy vývoje a výroby. |
Ověřit | Aktualizace Validate ověří správnost zdrojového kódu zpracovatelského řetězce bez spuštění aktualizace u jakýchkoli tabulek. Viz Zkontrolujte chyby v pipeline, aniž byste čekali na aktualizaci tabulek. |
Notebooky | Poznámkové bloky nakonfigurované jako zdrojový kód pro kanál DLT poskytují interaktivní možnosti pro ověřování kódu a spouštění aktualizací. Viz Vývoj a ladění kanálů DLT v poznámkových blocích. |
Parametry | Využijte parametry v konfiguraci zdrojového kódu a kanálu ke zjednodušení testování a rozšiřitelnosti. Viz Použití parametrů s kanály DLT. |
Sady prostředků Databricks | Sady prostředků Databricks umožňují přesouvat konfigurace kanálů a zdrojový kód mezi pracovními prostory. Převeďte DLT pipeline na projekt Databricks Asset Bundle. |
Vytvoření ukázkových datových sad pro vývoj a testování
Databricks doporučuje vytvářet vývojové a testovací datové sady pro testování logiky pracovního postupu s očekávanými daty a potenciálně nesprávnými nebo poškozenými záznamy. Existují různé způsoby vytváření datových sad, které můžou být užitečné pro vývoj a testování, včetně následujících:
- Vyberte podmnožinu dat z produkční datové sady.
- Použijte anonymizovaná nebo uměle generovaná data pro zdroje obsahující PII.
- Vytváření testovacích dat s dobře definovanými výsledky na základě logiky podřízené transformace
- Předvídejte potenciální poškození dat, nesprávně formátované záznamy a změny ve výchozích datech vytvořením záznamů, které neodpovídají očekáváním schématu dat.
Pokud máte například poznámkový blok, který definuje datovou sadu pomocí následujícího kódu:
CREATE OR REFRESH STREAMING TABLE input_data AS SELECT * FROM read_files("/production/data", "json")
Pomocí následujícího dotazu můžete vytvořit ukázkovou datovou sadu obsahující konkrétní záznamy:
CREATE OR REFRESH MATERIALIZED VIEW input_data AS
SELECT "2021/09/04" AS date, 22.4 as sensor_reading UNION ALL
SELECT "2021/09/05" AS date, 21.5 as sensor_reading
Následující příklad ukazuje filtrování publikovaných dat pro vytvoření podmnožinu produkčních dat pro vývoj nebo testování:
CREATE OR REFRESH MATERIALIZED VIEW input_data AS SELECT * FROM prod.input_data WHERE date > current_date() - INTERVAL 1 DAY
Pokud chcete použít tyto různé datové sady, vytvořte několik kanálů s poznámkovými bloky, které implementují logiku transformace. Každý kanál může číst data z datové sady input_data
, ale je nakonfigurovaný tak, aby zahrnoval poznámkový blok, který vytvoří datovou sadu specifickou pro dané prostředí.