Wat zijn Databricks Asset Bundles?
Databricks Asset Bundles (DABs) zijn een hulpprogramma om de acceptatie van best practices voor software-engineering te vergemakkelijken, waaronder broncodebeheer, codebeoordeling, testen en continue integratie en levering (CI/CD) voor uw gegevens en AI-projecten. Met bundels kunt u Databricks-resources, zoals taken, pijplijnen en notebooks, beschrijven als bronbestanden. Deze bronbestanden bieden een end-to-end definitie van een project, inclusief hoe het moet worden gestructureerd, getest en geïmplementeerd, waardoor het gemakkelijker is om tijdens actieve ontwikkeling samen te werken aan projecten.
Bundels bieden een manier om metagegevens op te nemen naast de bronbestanden van uw project. Wanneer u een project implementeert met behulp van bundels, worden deze metagegevens gebruikt om infrastructuur en andere resources in te richten. De verzameling bronbestanden en metagegevens van uw project wordt vervolgens geïmplementeerd als één bundel naar uw doelomgeving. Een bundel bevat de volgende onderdelen:
- Vereiste cloudinfrastructuur- en werkruimteconfiguraties
- Bronbestanden, zoals notebooks en Python-bestanden, die de bedrijfslogica bevatten
- Definities en instellingen voor Databricks-resources, zoals Azure Databricks-taken, Delta Live Tables-pijplijnen, eindpunten voor modellevering, MLflow-experimenten en geregistreerde MLflow-modellen
- Eenheidstests en integratietests
Het volgende diagram biedt een algemeen overzicht van een ontwikkelings- en CI/CD-pijplijn met bundels:
Wanneer moet ik Databricks Asset Bundles gebruiken?
Databricks Assets Bundles is een IaC-benadering (infrastructure-as-code) voor het beheren van uw Databricks-projecten. Gebruik ze als u complexe projecten wilt beheren where meerdere inzenders en automatisering essentieel zijn en continue integratie en implementatie (CI/CD) een vereiste zijn. Omdat bundels worden gedefinieerd en beheerd via YAML-sjablonen en -bestanden die u naast broncode maakt en onderhoudt, worden ze goed toegewezen aan scenario's where IaC een geschikte benadering is.
Enkele ideale scenario's voor bundels zijn:
- Ontwikkel gegevens-, analyse- en ML-projecten in een teamomgeving. Bundels kunnen u helpen bij het efficiënt organiseren en beheren van verschillende bronbestanden. Dit zorgt voor een soepele samenwerking en gestroomlijnde processen.
- Itereer sneller op ML-problemen. Beheer ML-pijplijnbronnen (zoals trainings- en batchdeductietaken) met behulp van ML-projecten die vanaf het begin de best practices voor productie volgen.
- Set organisatiestandaarden voor nieuwe projecten door aangepaste bundelsjablonen te ontwerpen met standaardmachtigingen, service-principals en CI/CD-configuraties.
- Naleving van regelgeving: in branches where naleving van regelgeving een belangrijke zorg is, kunnen bundels helpen bij het onderhouden van een versiegeschiedenis van code- en infrastructuurwerkzaamheden. Dit helpt bij governance en zorgt ervoor dat aan de vereiste nalevingsstandaarden wordt voldaan.
Hoe werken Databricks Asset Bundles?
Bundelmetagegevens worden gedefinieerd met BEHULP van YAML-bestanden die de artefacten, resources en configuratie van een Databricks-project opgeven. U kunt dit YAML-bestand handmatig maken of generate creëren met een bundelsjabloon. De Databricks CLI kan vervolgens worden gebruikt om bundels te valideren, implementeren en uitvoeren met behulp van deze YAML-bundelbestanden. U kunt bundelprojecten rechtstreeks uitvoeren vanuit IDE's, terminals of in Databricks. In dit artikel wordt de Databricks CLI gebruikt.
Bundels kunnen handmatig of op basis van een sjabloon worden gemaakt. De Databricks CLI biedt standaardsjablonen voor eenvoudige gebruiksvoorbeelden, maar voor specifiekere of complexere taken kunt u aangepaste bundelsjablonen maken om de aanbevolen procedures van uw team te implementeren en algemene configuraties consistent te houden.
Zie de configuratie van Databricks Asset Bundles voor meer informatie over de configuratie-YAML die wordt gebruikt om Databricks Asset Bundles uit te drukken.
Uw omgeving configureren voor het gebruik van bundels
U gebruikt de Databricks CLI om bundels vanaf de opdrachtregelinterface te implementeren. Zie De Databricks CLI installeren of update de Databricks CLIom de Databricks CLI te installeren.
Databricks Asset Bundles zijn beschikbaar in Databricks CLI versie 0.218.0 of hoger. Voer de volgende opdracht uit om de versie van de Databricks CLI te vinden die is geïnstalleerd:
databricks --version
Controleer na de installatie van de Databricks CLI of uw externe Databricks-werkruimten correct zijn geconfigureerd. Bundels vereisen dat de functie voor werkruimtebestanden is ingeschakeld. Als u Databricks Runtime versie 11.3 LTS of hoger gebruikt, is deze functie standaard ingeschakeld.
Verificatie
Azure Databricks biedt verschillende verificatiemethoden:
- Voor beheerde verificatiescenario's, zoals handmatige werkstromen where waarin u uw webbrowser gebruikt om u aan te melden bij uw Azure Databricks-werkruimte (wanneer de Databricks CLI hierom vraagt), gebruikt u OAuth-gebruikers-naar-machine-authenticatie (U2M). Deze methode is ideaal voor het experimenteren met de zelfstudies aan de slag voor Databricks Asset Bundles of voor de snelle ontwikkeling van bundels.
- Voor scenario's zonder toezicht, zoals volledig geautomatiseerde werkstromen waarin u uw webbrowser niet kunt gebruiken om u op dat moment aan te melden bij uw Azure Databricks-doelwerkruimte, gebruikt u op dat moment OAuth-verificatie van machine-naar-machine (M2M). Deze methode vereist het gebruik van Azure Databricks-service-principals en is ideaal voor het gebruik van Databricks Asset Bundles met CI/CD-systemen, zoals GitHub.
Ga als volgt te werk voor OAuth U2M-verificatie:
Gebruik de Databricks CLI om OAuth-tokenbeheer lokaal te starten door de volgende opdracht uit te voeren voor elke doelwerkruimte.
Vervang in de volgende opdracht bijvoorbeeld
<workspace-url>
door de URLhttps://adb-1234567890123456.7.azuredatabricks.net
per werkruimte.databricks auth login --host <workspace-url>
De Databricks CLI vraagt u om de gegevens op te slaan die u hebt ingevoerd als een Azure Databricks-configuratieprofiel. Druk
Enter
om de voorgestelde profielnaam te accepteren of voer de naam van een nieuw of bestaand profiel in. Elk bestaand profiel met dezelfde naam wordt overschreven met de gegevens die u hebt ingevoerd. U kunt profielen gebruiken om snel uw verificatiecontext over te schakelen tussen meerdere werkruimten.Als u een list van de bestaande profielen wilt get, gebruikt u de Databricks CLI in een aparte terminal of opdrachtprompt om de opdracht
databricks auth profiles
uit te voeren. Als u de bestaande instellingen van een specifiek profiel wilt weergeven, voert u de opdrachtdatabricks auth env --profile <profile-name>
uit.Voltooi in uw webbrowser de instructies op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.
Voer een van de volgende opdrachten uit om de huidige OAuth-tokenwaarde van een profiel en de geplande verlooptijdstempel van het token weer te geven:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Als u meerdere profielen met dezelfde
--host
waarde hebt, moet u mogelijk de--host
en-p
opties opgeven om de Databricks CLI te helpen de juiste overeenkomende OAuth-tokengegevens te vinden.
U kunt de naam van dit configuratieprofiel op een of meer van de volgende manieren gebruiken wanneer u bundels valideert, implementeert, uitvoert of vernietigt:
- Met de opdrachtregeloptie
-p <profile-name>
, toegevoegd aan de opdrachtendatabricks bundle validate
,databricks bundle deploy
,databricks bundle run
ofdatabricks bundle destroy
. Zie de ontwikkeling van Databricks Asset Bundles. - Als de waarde van de
profile
-toewijzing in de toewijzing op het hoogste niveau van het bundelconfiguratiebestandworkspace
(hoewel Databricks aanbeveelt dat u dehost
toewijzing set gebruikt aan de URL van de Azure Databricks-werkruimte in plaats van deprofile
-toewijzing, omdat uw bundelconfiguratiebestanden draagbaarder worden). Bekijk de dekking van de toewijzing in deprofile
werkruimte. - Als de naam van het configuratieprofiel is
DEFAULT
, wordt deze standaard gebruikt wanneer de opdrachtregeloptie-p <profile-name>
of deprofile
toewijzing (ofhost
) niet is opgegeven.
Ga als volgt te werk voor OAuth M2M-verificatie:
Voltooi de installatie-instructies voor OAuth M2M-verificatie. Zie Toegang tot Azure Databricks verifiëren met een service-principal met behulp van OAuth (OAuth M2M).
Installeer de Databricks CLI op de doelresource op een van de volgende manieren:
- Zie De DatabricksCLI installeren of update de Databricks CLI in realtime installeren of update.
- Als u GitHub Actions wilt gebruiken om de Databricks CLI automatisch te installeren op een virtuele GitHub-machine, raadpleegt u setup-cli in GitHub.
- Als u andere CI/CD-systemen wilt gebruiken om de Databricks CLI automatisch op een virtuele machine te installeren, raadpleeg dan de documentatie van uw CI/CD-systeemprovider en Installeer of update de Databricks CLI.
Set de volgende omgevingsvariabelen voor de rekenresource als volgt:
-
DATABRICKS_HOST
, set naar de Azure Databricks per-werkruimte URL, bijvoorbeeldhttps://adb-1234567890123456.7.azuredatabricks.net
. -
DATABRICKS_CLIENT_ID
set naar de -hoofdgebruikers-id-waarde van de Azure Databricks-service-principal. -
DATABRICKS_CLIENT_SECRET
set naar de OAuth-Geheim- waarde van de Azure Databricks-service-principal.
Als u deze omgevingsvariabelen wilt set, raadpleegt u de documentatie voor het besturingssysteem of CI/CD-systeem van uw doelresource.
-
Uw eerste Databricks-assetbundel ontwikkelen
De snelste manier om bundelontwikkeling te starten is met behulp van een bundelprojectsjabloon. Maak uw eerste bundelproject met behulp van de init-opdracht databricks CLI-bundel. Deze opdracht biedt een keuze uit door Databricks geleverde standaardbundelsjablonen en stelt een reeks vragen om projectvariabelen te initialiseren.
databricks bundle init
Het maken van uw bundel is de eerste stap in de levenscyclus van een bundel. De tweede stap is het ontwikkelen van uw bundel, een belangrijk element hiervan is het definiëren van bundelinstellingen en resources in de databricks.yml
en resourceconfiguratiebestanden. Zie de configuratie van Databricks Asset Bundle voor meer informatie over bundelconfiguratie.
Tip
Voorbeelden van bundelconfiguraties vindt u in bundelconfiguratievoorbeelden en de opslagplaats bundelvoorbeelden in GitHub.
Volgende stappen
- Maak een bundel waarmee een notebook wordt geïmplementeerd in een Azure Databricks-werkruimte en dat geïmplementeerde notebook vervolgens wordt uitgevoerd als een Azure Databricks-taak. Zie Een taak ontwikkelen in Azure Databricks met behulp van Databricks Asset Bundles.
- Maak een bundel waarmee een notebook wordt geïmplementeerd in een Azure Databricks-werkruimte en dat geïmplementeerde notebook vervolgens wordt uitgevoerd als een Delta Live-Tables-pijplijn. Zie Delta Live-Tables-pijplijnen ontwikkelen met Databricks Asset Bundles.
- Maak een bundel waarmee een MLOps-stack wordt geïmplementeerd en uitgevoerd. Zie Databricks Asset Bundles voor MLOps Stacks.
- Voeg een bundel toe aan een CI/CD-werkstroom (continue integratie/continue implementatie) in GitHub. Zie Een CI/CD-werkstroom uitvoeren met een Databricks Asset Bundle en GitHub Actions.
- Maak een bundel die een Python-wielbestand bouwt, implementeert en aanroept. Zie Een Python-wielbestand ontwikkelen met behulp van Databricks Asset Bundles.
- Maak een aangepaste sjabloon die u en anderen kunnen gebruiken om een bundel te maken. Een aangepaste sjabloon kan standaardmachtigingen, service-principals en aangepaste CI/CD-configuratie bevatten. Zie Databricks Asset Bundle-projectsjablonen.
- Migreren van dbx naar Databricks Asset Bundles. Zie Migreren van dbx naar bundels.
- Ontdek de nieuwste belangrijke nieuwe functies die zijn uitgebracht voor Databricks Asset Bundles. Zie releaseopmerkingen voor databricks Asset Bundles.