Dela via


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

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

  1. 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 exempel https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. 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 kommandot databricks auth env --profile <profile-name>.

  3. I webbläsaren slutför du anvisningarna på skärmen för att logga in på din Azure Databricks-arbetsyta.

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

  1. Använd terminalen eller kommandotolken för att växla till en katalog på den lokala utvecklingsdatorn som innehåller mallens genererade paket.

  2. Använd Databricks CLI för att köra bundle init kommandot:

    databricks bundle init
    
  3. För Template to uselämnar du standardvärdet för default-python genom att trycka på Enter.

  4. För Unique name for this projectlämnar du standardvärdet my_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.

  5. För Include a stub (sample) notebookväljer och trycker du noEnter. 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.

  6. För Include a stub (sample) DLT pipelinelämnar du standardvärdet för yes genom att trycka på Enter. Detta instruerar Databricks CLI att lägga till en exempelanteckningsbok som har Delta Live Tables-kod i den.

  7. För Include a stub (sample) Python packageväljer och trycker du noEnter. 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 och resources/<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.

  1. Från rotkatalogen använder du Databricks CLI för att köra bundle validate kommandot enligt följande:

    databricks bundle validate
    
  2. 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.

  1. 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
    
  2. Kontrollera om den lokala notebook-filen har distribuerats: Klicka på Arbetsyta i sidofältet på azure Databricks-arbetsytan.

  3. Klicka i mappen Användare ><your-username>> .bundle >><project-name>dev > files > src. Anteckningsboken ska finnas i den här mappen.

  4. Kontrollera om pipelinen har skapats: Klicka på Delta Live Tables i sidofältet på azure Databricks-arbetsytan.

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

  1. 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
    
  2. 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.

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

  1. Från rotkatalogen använder du Databricks CLI för att köra bundle destroy kommandot enligt följande:

    databricks bundle destroy -t dev
    
  2. 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.

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

  4. 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:

  1. I sidofältet för Azure Databricks-arbetsytan klickar du på Arbetsflöden.

  2. På fliken Delta Live Tables (Delta Live Tables) klickar du på pipelinens namnlänk.

  3. Bredvid knappen Utveckling klickar du på kebaben och sedan på Visa inställningar YAML.

  4. Kopiera pipelinedefinitionens YAML i yaml-dialogrutan pipelineinställningar till ditt lokala Urklipp genom att klicka på kopieringsikonen.

  5. Lägg till DEN YAML som du kopierade till paketets fil eller skapa en konfigurationsfil databricks.yml för pipelinen resources i mappen för ditt paketprojekt och referera till den från databricks.yml filen. Se resurser.

  6. 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 i src/ 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:

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

  2. 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 till src 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ästa bundle deploy. Mer information om bundle deployment bindfinns i Bind paketresurser.