Vývoj datových toků Delta Live Tables
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ů vývoje softwaru & osvědčených postupů DevOps pro kanály Delta Live Table.
Poznámka
Abyste ověřili kód nebo spustili aktualizaci, musíte do konfigurace kanálu přidat zdrojový kód. Viz Konfigurace potrubí Delta Live Tables.
Jaké soubory jsou platné pro zdrojový kód kanálu?
Kód kanálu Delta Live Tables 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 specifikaci 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 Delta Live Tables.
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 uživatelsky definované funkce (UDF) v katalogu Unity.
Přehled vývojových funkcí Delta Live Tables
Delta Live Tables 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í. Vizte režimy vývoje a výroby . |
Ověřit | Aktualizace Validate ověří správnost zdrojového kódu potrubí bez spuštění aktualizace u žádných tabulek. Podívejte se na Zkontrolujte potrubí pro chyby bez čekání na aktualizaci tabulek. |
Notebooky | Poznámkové bloky nakonfigurované jako zdrojový kód pro kanál Delta Live Tables poskytují interaktivní možnosti pro ověřování kódu a spouštění aktualizací. Viz Vývoj a ladění kanálů Delta Live Tables 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 potrubími Delta Live Tables. |
Sady prostředků Databricks | Sady prostředků Databricks umožňují přesouvat konfigurace kanálů a zdrojový kód mezi pracovními prostory. Viz Převod kanálu Delta Live Tables na projekt sady prostředků Databricks. |
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 datového kanálu s očekávanými daty a potenciálně chybný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, poškozené záznamy a změny vstupních dat vytvořením záznamů, které porušují očekávání ohledně datového schématu.
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í.