Dela via


Utveckling av Databricks-tillgångspaket

I den här artikeln beskrivs utvecklingen och livscykeln för ett Databricks-tillgångspaket. Allmän information om Databricks-tillgångspaket finns i Vad är Databricks-tillgångspaket?.

Livscykel för ett paket

För att förstå hur du effektivt använder paket måste du förstå den grundläggande livscykeln för ett paket:

  1. Paketskelettet skapas baserat på ett projekt.
  2. Paketprojektet utvecklas lokalt. Ett paket innehåller konfigurationsfiler som definierar infrastruktur- och arbetsyteinställningar som distributionsmål, inställningar för Databricks-resurser som jobb och pipelines samt källfiler och andra artefakter.
  3. Paketprojektet verifieras. Verifiering verifierar inställningarna och resursdefinitionerna i paketkonfigurationen mot motsvarande objektscheman för att säkerställa att paketet kan distribueras till Databricks.
  4. Paketet distribueras till en målarbetsyta. Oftast distribueras ett paket först till en användares personliga utvecklingsarbetsyta för testning. När testningen av paketet är klar kan paketet distribueras till mellanlagring och sedan produktionsmål.
  5. Arbetsflödesresurser som definierats i det distribuerade paketet kan köras. Du kan till exempel köra ett jobb.
  6. Om paketet inte längre används kan det förstöras permanent.

Du använder Databricks CLI-paketkommandona för att skapa, verifiera, distribuera, köra och förstöra paket enligt beskrivningen i följande avsnitt.

Steg 1: Skapa ett paket

Det finns tre sätt att börja skapa ett paket:

  1. Använd standardmallen för paket.
  2. Använd en anpassad paketmall.
  3. Skapa ett paket manuellt.

Använda en standardmall för paket

Om du vill använda en Azure Databricks-standardpaketmall för att skapa ett startpaket som du sedan kan anpassa ytterligare använder du Databricks CLI version 0.218.0 eller senare för att köra bundle init kommandot, vilket gör att du kan välja från en lista över tillgängliga mallar. Se Skapa ett paket från en projektmall.

databricks bundle init

Du kan visa källan för standardpaketmallarna i github-lagringsplatserna databricks/cli och databricks/mlops-stacks .

Gå vidare till Steg 2: Fyll i paketkonfigurationsfilerna.

Använda en anpassad paketmall

Om du vill använda en annan paketmall än Standardpaketmallen för Azure Databricks måste du känna till den lokala sökvägen eller URL:en till mallplatsen för fjärrpaket. Använd Databricks CLI version 0.218.0 eller senare för att köra bundle init kommandot på följande sätt:

databricks bundle init <project-template-local-path-or-url>

Mer information om det här kommandot finns i Projektmallar för Databricks Asset Bundle. Information om en specifik paketmall finns i dokumentationen för paketmallsprovidern.

Gå vidare till Steg 2: Fyll i paketkonfigurationsfilerna.

Skapa ett paket manuellt

Om du vill skapa ett paket manuellt i stället för med hjälp av en paketmall skapar du en projektkatalog på den lokala datorn eller en tom lagringsplats med en Git-provider från tredje part.

Skapa en eller flera paketkonfigurationsfiler som indata i din katalog eller lagringsplats. Dessa filer uttrycks i YAML-format. Det måste finnas minst en (och endast en) paketkonfigurationsfil med namnet databricks.yml. Ytterligare paketkonfigurationsfiler måste refereras i mappningen include av databricks.yml filen.

För att enklare och snabbare skapa YAML-filer som överensstämmer med konfigurationssyntaxen för Databricks Asset Bundle kan du använda ett verktyg som Visual Studio Code, PyCharm Professional eller IntelliJ IDEA Ultimate som ger stöd för YAML-filer och JSON-schemafiler på följande sätt:

Visual Studio-koden

  1. Lägg till stöd för YAML-språkservern i Visual Studio Code, till exempel genom att installera YAML-tillägget från Visual Studio Code Marketplace.

  2. Generera JSON-schemafilen för Databricks Asset Bundle-konfigurationen med databricks CLI version 0.218.0 eller senare för att köra bundle schema kommandot och omdirigera utdata till en JSON-fil. Generera till exempel en fil med namnet bundle_config_schema.json i den aktuella katalogen enligt följande:

    databricks bundle schema > bundle_config_schema.json
    
  3. Använd Visual Studio Code för att skapa eller öppna en paketkonfigurationsfil i den aktuella katalogen. Den här filen måste ha namnet databricks.yml.

  4. Lägg till följande kommentar i början av paketkonfigurationsfilen:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    Kommentar

    Om din JSON-schemafil för Databricks Asset Bundle finns i en annan sökväg i föregående kommentar ersätter du bundle_config_schema.json med den fullständiga sökvägen till schemafilen.

  5. Använd yaml-språkserverfunktionerna som du lade till tidigare. Mer information finns i yaml-språkserverns dokumentation.

PyCharm Professional

  1. Generera JSON-schemafilen för Konfiguration av Databricks Asset Bundle med hjälp av Databricks CLI version 0.218.0 eller senare för att köra bundle schema kommandot och omdirigera utdata till en JSON-fil. Generera till exempel en fil med namnet bundle_config_schema.json i den aktuella katalogen enligt följande:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurera PyCharm för att identifiera JSON-schemafilen för paketkonfiguration och slutför sedan JSON-schemamappningen genom att följa anvisningarna i Konfigurera ett anpassat JSON-schema.

  3. Använd PyCharm för att skapa eller öppna en paketkonfigurationsfil. Den här filen måste ha namnet databricks.yml. När du skriver söker PyCharm efter JSON-schemasyntax och formatering och tillhandahåller kodkompletteringstips.

IntelliJ IDEA Ultimate

  1. Generera JSON-schemafilen för Konfiguration av Databricks Asset Bundle med hjälp av Databricks CLI version 0.218.0 eller senare för att köra bundle schema kommandot och omdirigera utdata till en JSON-fil. Generera till exempel en fil med namnet bundle_config_schema.json i den aktuella katalogen enligt följande:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurera IntelliJ IDEA för att identifiera JSON-schemafilen för paketkonfiguration och slutför sedan JSON-schemamappningen genom att följa anvisningarna i Konfigurera ett anpassat JSON-schema.

  3. Använd IntelliJ IDEA för att skapa eller öppna en paketkonfigurationsfil. Den här filen måste ha namnet databricks.yml. När du skriver söker IntelliJ IDEA efter JSON-schemasyntax och formatering och tillhandahåller kodkompletteringstips.

Steg 2: Fyll i paketkonfigurationsfilerna

Paketkonfigurationsfiler definierar dina Azure Databricks-arbetsflöden genom att ange inställningar som arbetsyteinformation, artefaktnamn, filplatser, jobbinformation och pipelineinformation. Vanligtvis innehåller paketkonfigurationen även mål för utvecklings-, mellanlagrings- och produktionsdistribution. Detaljerad information om paketkonfigurationsfiler finns i Konfiguration av Databricks-tillgångspaket.

Du kan använda bundle generate kommandot för att automatiskt generera paketkonfigurationen för en befintlig resurs på arbetsytan och sedan använda bundle deployment bind för att länka paketkonfigurationen till resursen på arbetsytan för att hålla dem synkroniserade. Se Generera en paketkonfigurationsfil och Bind paketresurser.

Steg 3: Verifiera paketkonfigurationsfilerna

Innan du distribuerar artefakter eller kör ett jobb eller en pipeline bör du kontrollera att definitionerna i paketkonfigurationsfilerna är giltiga. Det gör du genom att bundle validate köra kommandot från paketprojektets rotkatalog. Se Verifiera ett paket.

databricks bundle validate

Om valideringen lyckas returneras en sammanfattning av paketidentiteten och ett bekräftelsemeddelande. Använd kommandot för databricks bundle schema att mata ut schemat. Se Visa paketkonfigurationsschemat.

Steg 4: Distribuera paketet

Innan du distribuerar paketet kontrollerar du att fjärrarbetsytan har aktiverat arbetsytefiler. Se Vad är arbetsytefiler?.

Om du vill distribuera ett paket till en fjärrarbetsyta kör bundle deploy du kommandot från paketroten enligt beskrivningen i Distribuera ett paket. Databricks CLI distribueras till målarbetsytan som deklareras i paketkonfigurationsfilerna. Se mål.

databricks bundle deploy

Ett pakets unika identitet definieras av dess namn, mål och distribuerarens identitet. Om dessa attribut är identiska i olika paket kommer distributionen av dessa paket att störa varandra. Mer information finns i Distribuera ett paket .

Dricks

Du kan köra databricks bundle kommandon utanför paketroten genom att BUNDLE_ROOT ange miljövariabeln. Om den här miljövariabeln inte har angetts databricks bundle försöker kommandon hitta paketroten genom att söka i den aktuella arbetskatalogen.

Steg 5: Kör paketet

Om du vill köra ett visst jobb eller en pipeline kör bundle run du kommandot från paketroten och anger jobbet eller pipelinenyckeln som deklarerats i paketkonfigurationsfilerna enligt beskrivningen i Kör ett paket. Resursnyckeln är det översta elementet i resursens YAML-block. Om du inte anger ett jobb eller en pipelinenyckel uppmanas du att välja en resurs som ska köras från en lista över tillgängliga resurser. Om alternativet -t inte anges används standardmålet som deklarerats i paketkonfigurationsfilerna. Om du till exempel vill köra ett jobb med nyckeln hello_job i kontexten för standardmålet:

databricks bundle run hello_job

Så här kör du ett jobb med en nyckel hello_job i kontexten för ett mål som deklarerats med namnet dev:

databricks bundle run -t dev hello_job

Steg 6: Förstör paketet

Om du är klar med ditt paket och vill ta bort jobb, pipelines och artefakter som tidigare har distribuerats kör bundle destroy du kommandot från paketroten. Det här kommandot tar bort alla tidigare distribuerade jobb, pipelines och artefakter som definieras i paketkonfigurationsfilerna. Se Förstöra ett paket.

databricks bundle destroy

Som standard uppmanas du att bekräfta permanent borttagning av tidigare distribuerade jobb, pipelines och artefakter. Om du vill hoppa över dessa frågor och utföra automatisk permanent borttagning lägger du till --auto-approve alternativet i bundle destroy kommandot .