Sdílet prostřednictvím


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í.