Ontwikkeling van Databricks Asset Bundles
In dit artikel worden de ontwikkeling en levenscyclus van een Databricks Asset Bundle beschreven. Zie Wat zijn Databricks Asset Bundles ?voor algemene informatie over Databricks Asset Bundles.
Levenscyclus van een bundel
Als u wilt weten hoe u bundels effectief gebruikt, moet u de basislevenscyclus van een bundel begrijpen:
- Het bundelskelet wordt gemaakt op basis van een project.
- Het bundelproject wordt lokaal ontwikkeld . Een bundel bevat configuratiebestanden die infrastructuur- en werkruimte-instellingen definiëren, zoals implementatiedoelen, instellingen voor Databricks-resources, zoals taken en pijplijnen, evenals bronbestanden en andere artefacten.
- Het bundelproject wordt gevalideerd. Validatie controleert de instellingen en resourcedefinities in de bundelconfiguratie op basis van de bijbehorende objectschema's om ervoor te zorgen dat de bundel kan worden geïmplementeerd in Databricks.
- De bundel wordt geïmplementeerd in een doelwerkruimte. Meestal wordt een bundel voor het eerst geïmplementeerd in de persoonlijke ontwikkelwerkruimte van een gebruiker voor testen. Zodra het testen van de bundel is voltooid, kan de bundel worden geïmplementeerd voor fasering en vervolgens productiedoelen.
- Werkstroombronnen die zijn gedefinieerd in de geïmplementeerde bundel kunnen worden uitgevoerd. U kunt bijvoorbeeld een taak uitvoeren.
- Als de bundel niet meer wordt gebruikt, kan deze permanent worden vernietigd.
U gebruikt de Databricks CLI-bundelopdrachten voor het maken, valideren, implementeren, uitvoeren en vernietigen van bundels, zoals beschreven in de volgende secties.
Stap 1: Een bundel maken
Er zijn drie manieren om te beginnen met het maken van een bundel:
- Gebruik de standaardbundelsjabloon.
- Gebruik een aangepaste bundelsjabloon.
- Maak handmatig een bundel.
Een standaardbundelsjabloon gebruiken
Als u een standaardbundelsjabloon van Azure Databricks wilt gebruiken om een startersbundel te maken die u vervolgens verder kunt aanpassen, gebruikt u Databricks CLI versie 0.218.0 of hoger om de bundle init
opdracht uit te voeren, zodat u kunt kiezen uit een lijst met beschikbare sjablonen. Zie Een bundel maken op basis van een projectsjabloon.
databricks bundle init
U kunt de bron voor de standaardbundelsjablonen bekijken in de openbare github-opslagplaatsen databricks/cli en databricks/mlops-stacks .
Ga verder met stap 2: vul de configuratiebestanden van de bundel in.
Een aangepaste bundelsjabloon gebruiken
Als u een andere bundelsjabloon dan de standaardbundelsjabloon van Azure Databricks wilt gebruiken, moet u het lokale pad of de URL naar de locatie van de externe bundelsjabloon kennen. Gebruik Databricks CLI versie 0.218.0 of hoger om de bundle init
opdracht als volgt uit te voeren:
databricks bundle init <project-template-local-path-or-url>
Zie Databricks Asset Bundle-projectsjablonen voor meer informatie over deze opdracht. Zie de documentatie van de bundelsjabloonprovider voor informatie over een specifieke bundelsjabloon.
Ga verder met stap 2: vul de configuratiebestanden van de bundel in.
Handmatig een bundel maken
Als u handmatig een bundel wilt maken in plaats van een bundelsjabloon te gebruiken, maakt u een projectmap op uw lokale computer of een lege opslagplaats met een externe Git-provider.
Maak in uw map of opslagplaats een of meer bundelconfiguratiebestanden als invoer. Deze bestanden worden uitgedrukt in YAML-indeling. Er moet minimaal één (en slechts één) bundelconfiguratiebestand met de naam zijn.databricks.yml
Er moet worden verwezen naar aanvullende bundelconfiguratiebestanden in de include
toewijzing van het databricks.yml
bestand.
Als u eenvoudiger en sneller YAML-bestanden wilt maken die voldoen aan de syntaxis van de configuratie van de Databricks Asset Bundle, kunt u als volgt een hulpprogramma gebruiken, zoals Visual Studio Code, PyCharm Professional of IntelliJ IDEA Ultimate dat ondersteuning biedt voor YAML-bestanden en JSON-schemabestanden:
Visual Studio Code
Voeg ondersteuning voor YAML-taalservers toe aan Visual Studio Code, bijvoorbeeld door de YAML-extensie te installeren vanuit Visual Studio Code Marketplace.
Genereer het JSON-schemabestand van de Databricks Asset Bundle-configuratie met behulp van Databricks CLI versie 0.218.0 of hoger om de
bundle schema
opdracht uit te voeren en de uitvoer om te leiden naar een JSON-bestand. Genereer bijvoorbeeld als volgt een bestand met de naambundle_config_schema.json
in de huidige map:databricks bundle schema > bundle_config_schema.json
Gebruik Visual Studio Code om een bundelconfiguratiebestand te maken of te openen in de huidige map. Dit bestand moet de naam
databricks.yml
hebben.Voeg de volgende opmerking toe aan het begin van uw bundelconfiguratiebestand:
# yaml-language-server: $schema=bundle_config_schema.json
Notitie
Als het JSON-schemabestand van uw Databricks Asset Bundle-configuratie zich in een ander pad bevindt, vervangt
bundle_config_schema.json
u in de voorgaande opmerking het volledige pad naar uw schemabestand.Gebruik de functies van de YAML-taalserver die u eerder hebt toegevoegd. Zie de documentatie van uw YAML-taalserver voor meer informatie.
PyCharm Professional
Genereer het JSON-schemabestand van de Databricks Asset Bundle-configuratie met behulp van Databricks CLI versie 0.218.0 of hoger om de
bundle schema
opdracht uit te voeren en de uitvoer om te leiden naar een JSON-bestand. Genereer bijvoorbeeld als volgt een bestand met de naambundle_config_schema.json
in de huidige map:databricks bundle schema > bundle_config_schema.json
Configureer PyCharm om het JSON-schemabestand voor de bundelconfiguratie te herkennen en voltooi vervolgens de toewijzing van het JSON-schema door de instructies in Een aangepast JSON-schema configureren te volgen.
Gebruik PyCharm om een bundelconfiguratiebestand te maken of te openen. Dit bestand moet de naam
databricks.yml
hebben. Terwijl u typt, controleert PyCharm op de syntaxis en opmaak van het JSON-schema en worden hints geboden voor het voltooien van code.
IntelliJ IDEA Ultimate
Genereer het JSON-schemabestand van de Databricks Asset Bundle-configuratie met behulp van Databricks CLI versie 0.218.0 of hoger om de
bundle schema
opdracht uit te voeren en de uitvoer om te leiden naar een JSON-bestand. Genereer bijvoorbeeld als volgt een bestand met de naambundle_config_schema.json
in de huidige map:databricks bundle schema > bundle_config_schema.json
Configureer IntelliJ IDEA om het JSON-schemabestand voor bundelconfiguratie te herkennen en voltooi vervolgens de toewijzing van het JSON-schema door de instructies in Een aangepast JSON-schema configureren te volgen.
Gebruik IntelliJ IDEA om een bundelconfiguratiebestand te maken of te openen. Dit bestand moet de naam
databricks.yml
hebben. Terwijl u typt, controleert IntelliJ IDEA op de syntaxis en opmaak van het JSON-schema en worden hints geboden voor het voltooien van code.
Stap 2: De bundelconfiguratiebestanden vullen
Bundelconfiguratiebestanden definiëren uw Azure Databricks-werkstromen door instellingen op te geven, zoals werkruimtegegevens, artefactnamen, bestandslocaties, taakdetails en pijplijndetails. Bundelconfiguratie bevat doorgaans ook ontwikkelings-, faserings- en productie-implementatiedoelen. Zie de configuratie van Databricks Asset Bundle voor gedetailleerde informatie over bundelconfiguratiebestanden.
U kunt de bundle generate
opdracht gebruiken om de bundelconfiguratie voor een bestaande resource in de werkruimte automatisch te genereren en vervolgens te gebruiken bundle deployment bind
om de bundelconfiguratie te koppelen aan de resource in de werkruimte om ze gesynchroniseerd te houden. Zie Een bundelconfiguratiebestand en Bind-bundelresources genereren.
Stap 3: De bundelconfiguratiebestanden valideren
Voordat u artefacten implementeert of een taak of pijplijn uitvoert, moet u controleren of definities in uw bundelconfiguratiebestanden geldig zijn. Voer hiervoor de bundle validate
opdracht uit vanuit de hoofdmap van het bundelproject. Zie Een bundel valideren.
databricks bundle validate
Als de validatie is geslaagd, wordt een samenvatting van de bundel-id en een bevestigingsbericht geretourneerd. Gebruik de databricks bundle schema
opdracht om het schema uit te voeren. Zie Het configuratieschema van de bundel weergeven.
Stap 4: De bundel implementeren
Voordat u de bundel implementeert, moet u ervoor zorgen dat de externe werkruimte werkruimtebestanden heeft ingeschakeld. Zie Wat zijn werkruimtebestanden?
Als u een bundel wilt implementeren in een externe werkruimte, voert u de bundle deploy
opdracht uit vanuit de hoofdmap van de bundel, zoals beschreven in Een bundel implementeren. De Databricks CLI wordt geïmplementeerd in de doelwerkruimte die wordt gedeclareerd in de bundelconfiguratiebestanden. Zie doelen.
databricks bundle deploy
De unieke identiteit van een bundel wordt gedefinieerd door de naam, het doel en de identiteit van de implementatie. Als deze kenmerken identiek zijn in verschillende bundels, zal de implementatie van deze bundels elkaar verstoren. Zie Een bundel implementeren voor meer informatie.
Tip
U kunt opdrachten buiten de hoofdmap van de bundel uitvoeren databricks bundle
door de BUNDLE_ROOT
omgevingsvariabele in te stellen. Als deze omgevingsvariabele niet is ingesteld, databricks bundle
proberen opdrachten de hoofdmap van de bundel te vinden door te zoeken in de huidige werkmap.
Stap 5: De bundel uitvoeren
Als u een specifieke taak of pijplijn wilt uitvoeren, voert u de bundle run
opdracht uit vanuit de hoofdmap van de bundel, waarbij u de taak of pijplijnsleutel opgeeft die is gedeclareerd in de bundelconfiguratiebestanden, zoals beschreven in Een taak of pijplijn uitvoeren. De resourcesleutel is het element op het hoogste niveau van het YAML-blok van de resource. Als u geen taak of pijplijnsleutel opgeeft, wordt u gevraagd om een resource te selecteren die moet worden uitgevoerd vanuit een lijst met beschikbare resources. Als de -t
optie niet is opgegeven, wordt het standaarddoel zoals gedeclareerd in de bundelconfiguratiebestanden gebruikt. Als u bijvoorbeeld een taak wilt uitvoeren met de sleutel hello_job
in de context van het standaarddoel:
databricks bundle run hello_job
Een taak uitvoeren met een sleutel hello_job
binnen de context van een doel dat is gedeclareerd met de naam dev
:
databricks bundle run -t dev hello_job
Stap 6: De bundel vernietigen
Waarschuwing
Als u een bundel vernietigt, worden de eerder geïmplementeerde taken, pijplijnen en artefacten van een bundel definitief verwijderd. Deze actie kan niet ongedaan worden gemaakt.
Als u klaar bent met uw bundel en taken, pijplijnen en artefacten wilt verwijderen die eerder zijn geïmplementeerd, voert u de bundle destroy
opdracht uit vanuit de hoofdmap van de bundel. Met deze opdracht worden alle eerder geïmplementeerde taken, pijplijnen en artefacten verwijderd die zijn gedefinieerd in de bundelconfiguratiebestanden. Zie Een bundel vernietigen.
databricks bundle destroy
Standaard wordt u gevraagd om het permanent verwijderen van de eerder geïmplementeerde taken, pijplijnen en artefacten te bevestigen. Als u deze prompts wilt overslaan en automatische permanente verwijdering wilt uitvoeren, voegt u de --auto-approve
optie toe aan de bundle destroy
opdracht.