Vad är Databricks-tillgångspaket?
Databricks Asset Bundles (DAB) är ett verktyg för att underlätta införandet av metodtips för programvaruutveckling, inklusive källkodskontroll, kodgranskning, testning och kontinuerlig integrering och leverans (CI/CD) för dina data- och AI-projekt. Paket gör det möjligt att beskriva Databricks-resurser som jobb, pipelines och notebook-filer som källfiler. Dessa källfiler ger en definition från slutpunkt till slutpunkt för ett projekt, inklusive hur det ska struktureras, testas och distribueras, vilket gör det enklare att samarbeta i projekt under aktiv utveckling.
Paket ger ett sätt att inkludera metadata tillsammans med projektets källfiler. När du distribuerar ett projekt med hjälp av paket används dessa metadata för att etablera infrastruktur och andra resurser. Projektets samling av källfiler och metadata distribueras sedan som ett enda paket till målmiljön. Ett paket innehåller följande delar:
- Nödvändig molninfrastruktur och konfiguration av arbetsytor
- Källfiler, till exempel notebook-filer och Python-filer, som innehåller affärslogik
- Definitioner och inställningar för Databricks-resurser, till exempel Azure Databricks-jobb, Delta Live Tables-pipelines, modelltjänstslutpunkter, MLflow-experiment och MLflow-registrerade modeller
- Enhetstester och integreringstester
Följande diagram ger en översikt över en utvecklings- och CI/CD-pipeline med paket:
När ska jag använda Databricks-tillgångspaket?
Databricks Assets Bundles är en IaC-metod (infrastructure-as-code) för att hantera dina Databricks-projekt. Använd dem när du vill hantera komplexa projekt där flera deltagare och automatisering är viktiga, och kontinuerlig integrering och distribution (CI/CD) är ett krav. Eftersom paket definieras och hanteras via YAML-mallar och filer som du skapar och underhåller tillsammans med källkod, mappar de väl till scenarier där IaC är en lämplig metod.
Några idealiska scenarier för paket är:
- Utveckla data-, analys- och ML-projekt i en teambaserad miljö. Paket kan hjälpa dig att organisera och hantera olika källfiler effektivt. Detta säkerställer ett smidigt samarbete och smidiga processer.
- Iterera på ML-problem snabbare. Hantera ML-pipelineresurser (till exempel tränings- och batchinferensjobb) med hjälp av ML-projekt som följer bästa praxis för produktion från början.
- Ange organisationsstandarder för nya projekt genom att redigera anpassade paketmallar som innehåller standardbehörigheter, tjänstens huvudnamn och CI/CD-konfigurationer.
- Regelefterlevnad: I branscher där regelefterlevnad är ett viktigt problem kan paket bidra till att upprätthålla en versionshistorik för kod- och infrastrukturarbete. Detta underlättar styrningen och säkerställer att nödvändiga efterlevnadsstandarder uppfylls.
Hur fungerar Databricks-tillgångspaket?
Paketmetadata definieras med YAML-filer som anger artefakter, resurser och konfiguration av ett Databricks-projekt. Du kan skapa den här YAML-filen manuellt eller generera en med hjälp av en paketmall. Databricks CLI kan sedan användas för att verifiera, distribuera och köra paket med hjälp av dessa YAML-paketfiler. Du kan köra paketprojekt från IDEs, terminaler eller i Databricks direkt. Den här artikeln använder Databricks CLI.
Paket kan skapas manuellt eller baserat på en mall. Databricks CLI tillhandahåller standardmallar för enkla användningsfall, men för mer specifika eller komplexa jobb kan du skapa anpassade paketmallar för att implementera teamets bästa praxis och hålla vanliga konfigurationer konsekventa.
Mer information om konfigurationen av YAML som används för att uttrycka Databricks-tillgångspaket finns i Konfiguration av Databricks-tillgångspaket.
Konfigurera din miljö att använda paket
Använd Databricks CLI för att enkelt distribuera paket från kommandoraden. Information om hur du installerar Databricks CLI finns i Installera eller uppdatera Databricks CLI.
Databricks-tillgångspaket är tillgängliga i Databricks CLI version 0.218.0 eller senare. Kör följande kommando för att hitta den version av Databricks CLI som är installerad:
databricks --version
När du har installerat Databricks CLI kontrollerar du att dina fjärranslutna Databricks-arbetsytor är korrekt konfigurerade. Paket kräver att funktionen för arbetsytefiler aktiveras eftersom den här funktionen stöder arbete med andra filer än Databricks Notebooks, till exempel .py
och .yml
filer. Om du använder Databricks Runtime version 11.3 LTS eller senare är den här funktionen aktiverad som standard.
Autentisering
Azure Databricks innehåller flera autentiseringsmetoder:
- För autentiseringsscenarier som du har deltagit i, till exempel manuella arbetsflöden där du använder webbläsaren för att logga in på din Azure Databricks-målarbetsyta (när du uppmanas av Databricks CLI), använder du U2M-autentisering (OAuth user-to-machine). Den här metoden är perfekt för att experimentera med självstudierna komma igång för Databricks-tillgångspaket eller för snabb utveckling av paket.
- För obevakade autentiseringsscenarier, till exempel helt automatiserade arbetsflöden där det inte finns någon möjlighet för dig att använda webbläsaren för att logga in på din Azure Databricks-målarbetsyta vid den tidpunkten, använder du OAuth-autentisering från dator till dator (M2M). Den här metoden kräver användning av Azure Databricks-tjänstens huvudnamn och är idealisk för att använda Databricks-tillgångspaket med CI/CD-system som GitHub.
Gör följande för OAuth U2M-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.
Du kan använda den här konfigurationsprofilens namn på ett eller flera av följande sätt när du validerar, distribuerar, kör eller förstör paket:
- Med kommandoradsalternativet
-p <profile-name>
, som läggs till i kommandonadatabricks bundle validate
,databricks bundle deploy
,databricks bundle run
, ellerdatabricks bundle destroy
. Se Utveckling av Databricks-tillgångspaket. - Som värdet för mappningen
profile
i paketkonfigurationsfilens toppnivåmappningworkspace
(även om Databricks rekommenderar att du använder mappningsuppsättningenhost
till Azure Databricks-arbetsytans URL i stället för mappningenprofile
, eftersom det gör paketkonfigurationsfilerna mer portabla). Se täckning av mappningenprofile
på arbetsytan. - Om konfigurationsprofilens namn är
DEFAULT
används den som standard när kommandoradsalternativet-p <profile-name>
eller (ellerhost
) mappningenprofile
inte har angetts.
Gör följande för OAuth M2M-autentisering:
Slutför installationsanvisningarna för OAuth M2M-autentisering. Se Autentisera åtkomst till Azure Databricks med ett huvudnamn för tjänsten med OAuth (OAuth M2M).
Installera Databricks CLI på målberäkningsresursen på något av följande sätt:
- Information om hur du installerar Databricks CLI manuellt på beräkningsresursen i realtid finns i Installera eller uppdatera Databricks CLI.
- Information om hur du använder GitHub Actions för att automatiskt installera Databricks CLI på en virtuell GitHub-dator finns i setup-cli i GitHub.
- Information om hur du använder andra CI/CD-system för att automatiskt installera Databricks CLI på en virtuell dator finns i dokumentationen för CI/CD-systemleverantören och Installera eller uppdatera Databricks CLI.
Ange följande miljövariabler för beräkningsresursen enligt följande:
DATABRICKS_HOST
anger du till URL:en för Azure Databricks per arbetsyta, till exempelhttps://adb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_CLIENT_ID
anger du värdet för Azure Databricks-tjänstens huvudnamn för program-ID .DATABRICKS_CLIENT_SECRET
, inställt på Azure Databricks-tjänstens huvudnamns OAuth Secret-värde .
Information om hur du anger dessa miljövariabler finns i dokumentationen för målberäkningsresursens operativsystem eller CI/CD-system.
Utveckla ditt första Databricks-tillgångspaket
Det snabbaste sättet att starta paketutveckling är genom att använda en paketprojektmall. Skapa ditt första paketprojekt med init-kommandot Databricks CLI-paket. Det här kommandot visar ett val av standardpaketmallar som tillhandahålls av Databricks och ställer en rad frågor för att initiera projektvariabler.
databricks bundle init
Att skapa ditt paket är det första steget i livscykeln för ett paket. Det andra steget är att utveckla ditt paket, vars nyckelelement är att definiera paketinställningar och resurser i konfigurationsfilerna databricks.yml
och resursen. Information om paketkonfiguration finns i Konfiguration av Databricks-tillgångspaket.
Dricks
Exempel på paketkonfiguration finns i paketkonfigurationsexempel och lagringsplatsen Paketexempel i GitHub.
Nästa steg
- Skapa ett paket som distribuerar en notebook-fil till en Azure Databricks-arbetsyta och kör sedan den distribuerade notebook-filen som ett Azure Databricks-jobb. Se Utveckla ett jobb på Azure Databricks med databricks-tillgångspaket.
- Skapa ett paket som distribuerar en notebook-fil till en Azure Databricks-arbetsyta och kör sedan den distribuerade notebook-filen som en Delta Live Tables-pipeline. Se Utveckla Delta Live Tables-pipelines med Databricks-tillgångspaket.
- Skapa ett paket som distribuerar och kör en MLOps Stack. Se Databricks-tillgångspaket för MLOps Stacks.
- Lägg till ett paket i ett CI/CD-arbetsflöde (kontinuerlig integrering/kontinuerlig distribution) i GitHub. Se Köra ett CI/CD-arbetsflöde med ett Databricks-tillgångspaket och GitHub Actions.
- Skapa ett paket som skapar, distribuerar och anropar en Python-hjulfil. Se Utveckla en Python-hjulfil med databricks-tillgångspaket.
- Skapa en anpassad mall som du och andra kan använda för att skapa ett paket. En anpassad mall kan innehålla standardbehörigheter, tjänstens huvudnamn och anpassad CI/CD-konfiguration. Se Projektmallar för Databricks Asset Bundle.
- Migrera från dbx till Databricks-tillgångspaket. Se Migrera från dbx till paket.
- Upptäck de senaste stora nya funktionerna som släppts för Databricks Asset Bundles. Se Viktig information om databricks-tillgångspaket.