Dela via


Utveckla DLT-pipelines

Utveckling och testning av pipelinekod skiljer sig från andra Apache Spark-arbetsbelastningar. Den här artikeln innehåller en översikt över funktioner, metodtips och överväganden som stöds när du utvecklar pipelinekod. Mer rekommendationer och metodtips finns i Tillämpa metodtips för programutveckling & DevOps på DLT-pipelines.

Not

Du måste lägga till källkod i en pipelinekonfiguration för att verifiera kod eller köra en uppdatering. Se Konfigurera en DLT-pipeline.

Vilka filer är giltiga för pipeline-källkod?

DLT-pipelinekod kan vara Python eller SQL. Du kan ha en blandning av Python- och SQL-källkodsfiler som stöder en enda pipeline, men varje fil kan bara innehålla ett språk. Se Utveckla pipelinekod med Python och Utveckla pipelinekod med SQL.

Du kan använda notebook-filer och arbetsytefiler när du anger källkod för en pipeline. Arbetsytefiler representerar Python- eller SQL-skript som skapats i önskad IDE eller Databricks-filredigeraren. Se Vad är arbetsytefiler?.

Om du utvecklar Python-kod som moduler eller bibliotek måste du installera och importera koden och sedan anropa metoder från en Python-notebook- eller arbetsytefil som konfigurerats som källkod. Se Hantera Python-beroenden för DLT-pipelines.

Obs

Om du behöver använda godtyckliga SQL-kommandon i en Python-notebook-fil kan du använda syntaxmönstret spark.sql("<QUERY>") för att köra SQL som Python-kod.

Med Unity Catalog-funktioner kan du registrera godtyckliga Användardefinierade Python-funktioner för användning i SQL. Se användardefinierade funktioner (UDF: er) i Unity Catalog.

Översikt över DLT-utvecklingsfunktioner

DLT utökar och utnyttjar många Azure Databricks-funktioner och introducerar nya funktioner och begrepp. Följande tabell innehåller en kort översikt över begrepp och funktioner som stöder utveckling av pipelinekod:

Funktion Beskrivning
Utvecklingsläge Nya pipelines är konfigurerade att köras i utvecklingsläge som standard. Databricks rekommenderar att du använder utvecklingsläget för interaktiv utveckling och testning. Se Utvecklings- och produktionslägen.
Validera En Validate uppdatering verifierar korrektheten i pipelinens källkod utan att köra en uppdatering på några tabeller. Se Kontrollera om det finns fel i en pipeline utan att vänta på att tabeller ska uppdateras.
Bärbara datorer Notebook-filer som konfigurerats som källkod för en DLT-pipeline ger interaktiva alternativ för att validera kod och köra uppdateringar. Se Utveckla och felsöka DLT-pipelines i notebook-filer.
Parametrar Använd parametrar i källkods- och pipelinekonfigurationer för att förenkla testning och utökningsbarhet. Se Använd parametrar med DLT-pipelines.
Databricks-tillgångspaket Med Databricks-tillgångspaket kan du flytta pipelinekonfigurationer och källkod mellan arbetsytor. Se Konvertera en DLT-pipeline till ett Databricks Asset Bundle-projekt.

Skapa exempeldatauppsättningar för utveckling och testning

Databricks rekommenderar att du skapar utvecklings- och testdatauppsättningar för att testa pipelinelogik med förväntade data och potentiellt felaktiga eller skadade poster. Det finns flera sätt att skapa datauppsättningar som kan vara användbara för utveckling och testning, inklusive följande:

  • Välj en delmängd av data från en produktionsdatauppsättning.
  • Använd anonymiserade eller artificiellt genererade data för källor som innehåller PII.
  • Skapa testdata med väldefinierade resultat baserat på nedströmstransformeringslogik.
  • Genom att skapa poster som bryter mot dataschemats förväntningar kan du förutse potentiell datakorruption, felaktiga poster och ändringar av överliggande data.

Om du till exempel har en notebook-fil som definierar en datauppsättning med hjälp av följande kod:

CREATE OR REFRESH STREAMING TABLE input_data
AS SELECT * FROM STREAM read_files(
  "/production/data",
  format => "json")

Du kan skapa en exempeldatauppsättning som innehåller specifika poster med hjälp av en fråga som följande:

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

I följande exempel visas filtrering av publicerade data för att skapa en delmängd av produktionsdata för utveckling eller testning:

CREATE OR REFRESH MATERIALIZED VIEW input_data AS SELECT * FROM prod.input_data WHERE date > current_date() - INTERVAL 1 DAY

Om du vill använda dessa olika datauppsättningar skapar du flera pipelines med notebook-filerna som implementerar transformeringslogik. Varje pipeline kan läsa data från input_data-datamängden, men är konfigurerad för att inkludera den notebook-fil som skapar datamängden specifik för miljön.