Utveckla Delta Live Tables-pipelines med Databricks-tillgångspaket
Med Databricks-tillgångspaket, även kallade paket, kan du programmatiskt validera, distribuera och köra Azure Databricks-resurser, till exempel Delta Live Tables-pipelines. Se Vad är Databricks-tillgångspaket?.
Den här artikeln beskriver hur du skapar ett paket för att programmatiskt hantera en pipeline. Se Vad är Delta Live Tables?. Paketet skapas med standardpaketmallen Databricks Asset Bundles för Python, som består av en notebook-fil i kombination med definitionen av en pipeline och ett jobb för att köra den. Sedan validerar, distribuerar och kör du den distribuerade pipelinen på din Azure Databricks-arbetsyta.
Dricks
Om du har befintliga pipelines som har skapats med hjälp av azure Databricks-användargränssnittet eller API:et som du vill flytta till paket måste du definiera dem i ett pakets konfigurationsfiler. Databricks rekommenderar att du först skapar ett paket med hjälp av stegen nedan och sedan kontrollerar om paketet fungerar. Du kan sedan lägga till ytterligare definitioner, notebook-filer och andra källor i paketet. Se Lägga till en befintlig pipelinedefinition i ett paket.
Krav
- Databricks CLI version 0.218.0 eller senare. Om du vill kontrollera den installerade versionen av Databricks CLI kör du kommandot
databricks -v
. Information om hur du installerar Databricks CLI finns i Installera eller uppdatera Databricks CLI. - Fjärrarbetsytan måste ha arbetsytefiler aktiverade. Se Vad är arbetsytefiler?.
(Valfritt) Installera en Python-modul för att stödja utveckling av lokala pipelines
Databricks tillhandahåller en Python-modul som hjälper dig att utveckla pipelinekoden för Delta Live Tables lokalt genom att tillhandahålla syntaxkontroll, automatisk komplettering och datatypskontroll när du skriver kod i din IDE.
Python-modulen för lokal utveckling är tillgänglig i PyPi. Information om hur du installerar modulen finns i Python stub for Delta Live Tables (Python stub for Delta Live Tables).
Skapa ett paket med hjälp av en projektmall
Skapa paketet med azure Databricks-standardpaketmallen för Python. Den här mallen består av en notebook-fil som definierar en Delta Live Tables-pipeline som filtrerar data från den ursprungliga datauppsättningen. Mer information om paketmallar finns i Projektmallar för Databricks Asset Bundle.
Om du vill skapa ett paket från grunden kan du läsa Skapa ett paket manuellt.
Steg 1: Konfigurera autentisering
I det här steget konfigurerar du autentisering mellan Databricks CLI på utvecklingsdatorn och Azure Databricks-arbetsytan. Den här artikeln förutsätter att du vill använda U2M-autentisering (OAuth user-to-machine) och en motsvarande Azure Databricks-konfigurationsprofil med namnet DEFAULT
för autentisering.
Kommentar
U2M-autentisering är lämpligt för att prova de här stegen i realtid. För helt automatiserade arbetsflöden rekommenderar Databricks att du använder M2M-autentisering (machine-to-machine) för OAuth i stället. Se installationsinstruktionerna för M2M-autentisering i Autentisering.
Använd Databricks CLI för att initiera OAuth-tokenhantering lokalt genom att köra följande kommando för varje målarbetsyta.
I följande kommando ersätter du
<workspace-url>
med url:en för Azure Databricks per arbetsyta, till exempelhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Databricks CLI uppmanar dig att spara den information som du angav som en Azure Databricks-konfigurationsprofil. Tryck
Enter
för att acceptera det föreslagna profilnamnet eller ange namnet på en ny eller befintlig profil. Alla befintliga profiler med samma namn skrivs över med den information som du angav. Du kan använda profiler för att snabbt växla autentiseringskontext över flera arbetsytor.Om du vill hämta en lista över befintliga profiler i en separat terminal eller kommandotolk använder du Databricks CLI för att köra kommandot
databricks auth profiles
. Om du vill visa en specifik profils befintliga inställningar kör du kommandotdatabricks auth env --profile <profile-name>
.I webbläsaren slutför du anvisningarna på skärmen för att logga in på din Azure Databricks-arbetsyta.
Om du vill visa en profils aktuella OAuth-tokenvärde och tokens kommande förfallotidsstämpel kör du något av följande kommandon:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Om du har flera profiler med samma
--host
värde kan du behöva ange--host
alternativen och-p
tillsammans för att hjälpa Databricks CLI att hitta rätt matchande OAuth-tokeninformation.
Steg 2: Skapa paketet
Initiera ett paket med hjälp av standardprojektmallen för Python-paket.
Använd terminalen eller kommandotolken för att växla till en katalog på den lokala utvecklingsdatorn som innehåller mallens genererade paket.
Använd Databricks CLI för att köra
bundle init
kommandot:databricks bundle init
För
Template to use
lämnar du standardvärdet fördefault-python
genom att trycka påEnter
.För
Unique name for this project
lämnar du standardvärdetmy_project
, eller skriver ett annat värde och trycker sedan påEnter
. Detta avgör namnet på rotkatalogen för det här paketet. Den här rotkatalogen skapas i den aktuella arbetskatalogen.För
Include a stub (sample) notebook
väljer och trycker duno
påEnter
. Detta instruerar Databricks CLI att inte lägga till en exempelanteckningsbok just nu, eftersom exempelanteckningsboken som är associerad med det här alternativet inte har någon Delta Live Tables-kod i sig.För
Include a stub (sample) DLT pipeline
lämnar du standardvärdet föryes
genom att trycka påEnter
. Detta instruerar Databricks CLI att lägga till en exempelanteckningsbok som har Delta Live Tables-kod i den.För
Include a stub (sample) Python package
väljer och trycker duno
påEnter
. Detta instruerar Databricks CLI att inte lägga till pythonhjulspaketfiler eller relaterade bygginstruktioner i ditt paket.
Steg 3: Utforska paketet
Om du vill visa de filer som mallen genererade växlar du till rotkatalogen för det nyligen skapade paketet. Filer av särskilt intresse omfattar följande:
databricks.yml
: Den här filen anger paketets programmatiska namn, innehåller en referens till pipelinedefinitionen och anger inställningar för målarbetsytan.resources/<project-name>_job.yml
ochresources/<project-name>_pipeline.yml
: Dessa filer definierar jobbet som innehåller en pipelineuppdateringsaktivitet och pipelinens inställningar.src/dlt_pipeline.ipynb
: Den här filen är en notebook-fil som kör pipelinen när den körs.
För att anpassa pipelines motsvarar mappningarna i en pipelinedeklaration den skapa pipeline-åtgärdens nyttolast för begäran enligt definitionen i POST /api/2.0/pipelines i REST API-referensen, uttryckt i YAML-format.
Steg 4: Verifiera projektets paketkonfigurationsfil
I det här steget kontrollerar du om paketkonfigurationen är giltig.
Från rotkatalogen använder du Databricks CLI för att köra
bundle validate
kommandot enligt följande:databricks bundle validate
Om en sammanfattning av paketkonfigurationen returneras lyckades verifieringen. Om några fel returneras åtgärdar du felen och upprepar sedan det här steget.
Om du gör några ändringar i paketet efter det här steget bör du upprepa det här steget för att kontrollera om paketkonfigurationen fortfarande är giltig.
Steg 5: Distribuera det lokala projektet till fjärrarbetsytan
I det här steget distribuerar du den lokala notebook-filen till din fjärranslutna Azure Databricks-arbetsyta och skapar Delta Live Tables-pipelinen på din arbetsyta.
Från paketroten använder du Databricks CLI för att köra kommandot på
bundle deploy
följande sätt:databricks bundle deploy -t dev
Kontrollera om den lokala notebook-filen har distribuerats: Klicka på Arbetsyta i sidofältet på azure Databricks-arbetsytan.
Klicka i mappen Användare >
<your-username>
> .bundle >><project-name>
dev > files > src. Anteckningsboken ska finnas i den här mappen.Kontrollera om pipelinen har skapats: Klicka på Delta Live Tables i sidofältet på azure Databricks-arbetsytan.
På fliken Delta Live Tables (Delta Live Tables ) klickar du på [dev
<your-username>
]<project-name>
_pipeline.
Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 4–5 för att kontrollera om paketkonfigurationen fortfarande är giltig och sedan distribuera om projektet.
Steg 6: Kör det distribuerade projektet
I det här steget utlöser du en körning av Delta Live Tables-pipelinen på din arbetsyta från kommandoraden.
Från rotkatalogen använder du Databricks CLI för att köra
bundle run
kommandot enligt följande och ersätter<project-name>
med namnet på projektet från steg 2:databricks bundle run -t dev <project-name>_pipeline
Kopiera värdet
Update URL
för som visas i terminalen och klistra in det här värdet i webbläsaren för att öppna Azure Databricks-arbetsytan.När pipelinen har slutförts på din Azure Databricks-arbetsyta klickar du på vyn taxi_raw och den filtered_taxis materialiserade vyn för att se informationen.
Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 4–6 för att kontrollera om paketkonfigurationen fortfarande är giltig, distribuera om projektet och köra det omdistribuerade projektet.
Steg 7: Rensa
I det här steget tar du bort den distribuerade notebook-filen och pipelinen från arbetsytan.
Från rotkatalogen använder du Databricks CLI för att köra
bundle destroy
kommandot enligt följande:databricks bundle destroy -t dev
Bekräfta begäran om borttagning av pipeline: När du uppmanas att permanent förstöra resurser skriver
y
du och trycker påEnter
.Bekräfta begäran om borttagning av notebook-filer: När du uppmanas att permanent förstöra den tidigare distribuerade mappen och alla dess filer skriver
y
du och trycker påEnter
.Om du också vill ta bort paketet från utvecklingsdatorn kan du nu ta bort den lokala katalogen från steg 2.
Lägga till en befintlig pipelinedefinition i ett paket
Du kan använda en befintlig pipelinedefinition för Delta Live Tables som grund för att definiera en ny pipeline i en paketkonfigurationsfil. Om du vill hämta en befintlig pipelinedefinition kan du hämta den manuellt med hjälp av användargränssnittet, eller så kan du generera den programmatiskt med hjälp av Databricks CLI.
Hämta en befintlig pipelinedefinition med hjälp av användargränssnittet
Så här hämtar du YAML-representationen av en befintlig pipelinedefinition från användargränssnittet för Azure Databricks-arbetsytan:
I sidofältet för Azure Databricks-arbetsytan klickar du på Arbetsflöden.
På fliken Delta Live Tables (Delta Live Tables) klickar du på pipelinens namnlänk.
Bredvid knappen Utveckling klickar du på kebaben och sedan på Visa inställningar YAML.
Kopiera pipelinedefinitionens YAML i yaml-dialogrutan pipelineinställningar till ditt lokala Urklipp genom att klicka på kopieringsikonen.
Lägg till DEN YAML som du kopierade till paketets fil eller skapa en konfigurationsfil
databricks.yml
för pipelinenresources
i mappen för ditt paketprojekt och referera till den fråndatabricks.yml
filen. Se resurser.Ladda ned och lägg till alla Python-filer och notebook-filer som refereras till paketets projektkälla. Vanligtvis finns samlingsartefakter i
src
katalogen i ett paket.Dricks
Du kan exportera en befintlig notebook-fil från en Azure Databricks-arbetsyta till
.ipynb
formatet genom att klicka på Arkivexportera > > IPython Notebook från användargränssnittet för Azure Databricks Notebook.När du har lagt till dina notebook-filer, Python-filer och andra artefakter i paketet kontrollerar du att pipelinedefinitionen refererar till dem korrekt. Till exempel för en notebook-fil med namnet
hello.ipynb
som finns isrc/
katalogen i paketet:resources: pipelines: hello-pipeline: name: hello-pipeline libraries: - notebook: path: ../src/hello.ipynb
Generera en befintlig pipelinedefinition med databricks CLI
Så här genererar du paketkonfiguration programmatiskt för en befintlig pipeline:
Hämta ID:t för den befintliga pipelinen från panelen pipelineinformationssidan för pipelinen i användargränssnittet eller använd Kommandot Databricks CLI
databricks pipelines list-pipelines
.bundle generate pipeline
Kör Databricks CLI-kommandot och ange pipeline-ID:t:databricks bundle generate pipeline --existing-pipeline-id 6565621249
Det här kommandot skapar en paketkonfigurationsfil för pipelinen i paketets
resources
mapp och laddar ned eventuella refererade artefakter tillsrc
mappen.Dricks
Om du först använder
bundle deployment bind
för att binda en resurs i ett paket till en på arbetsytan uppdateras resursen på arbetsytan baserat på den konfiguration som definierats i paketet som den är bunden till efter nästabundle deploy
. Mer information ombundle deployment bind
finns i Bind paketresurser.