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:
- Paketskelettet skapas baserat på ett projekt.
- 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.
- 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.
- 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.
- Arbetsflödesresurser som definierats i det distribuerade paketet kan köras. Du kan till exempel köra ett jobb.
- 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:
- Använd standardmallen för paket.
- Använd en anpassad paketmall.
- 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
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.
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 namnetbundle_config_schema.json
i den aktuella katalogen enligt följande:databricks bundle schema > bundle_config_schema.json
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
.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.Använd yaml-språkserverfunktionerna som du lade till tidigare. Mer information finns i yaml-språkserverns dokumentation.
PyCharm Professional
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 namnetbundle_config_schema.json
i den aktuella katalogen enligt följande:databricks bundle schema > bundle_config_schema.json
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.
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
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 namnetbundle_config_schema.json
i den aktuella katalogen enligt följande:databricks bundle schema > bundle_config_schema.json
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.
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 jobb eller en pipeline. 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
Varning
Om du förstör ett paket tas ett pakets tidigare distribuerade jobb, pipelines och artefakter bort permanent. Det går inte att ångra den här åtgärden.
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 .