Freigeben über


Databricks Asset Bundles Entwicklung

In diesem Artikel wird die Entwicklung und der Lebenszyklus eines Databricks Asset Bundle beschrieben. Allgemeine Informationen zu Databricks Asset Bundles finden Sie unter Was sind Databricks Asset Bundles?.

Lebenszyklus eines Bundles

Um zu verstehen, wie Bundles effektiv verwendet werden können, müssen Sie den grundlegenden Lebenszyklus eines Bundle verstehen:

  1. Die Bundle-Struktur wird basierend auf einem Projekt erstellt.
  2. Das Bundle-Projekt wird lokal entwickelt. Ein Bundle enthält Konfigurationsdateien, die Infrastruktur- und Arbeitsbereichseinstellungen wie Bereitstellungsziele, Einstellungen für Databricks-Ressourcen wie Aufträge und Pipelines sowie Quelldateien und andere Artefakte definieren.
  3. Das Bundle-Projekt wird überprüft. Die Überprüfung überprüft die Einstellungen und Ressourcendefinitionen in der Bundle-Konfiguration anhand der entsprechenden Objektschemas, um sicherzustellen, dass das Bundle für Databricks bereitgestellt werden kann.
  4. Das Bundle wird in einem Zielarbeitsbereich bereitgestellt. Am häufigsten wird ein Bundle zum Testen zuerst im persönlichen Entwicklungsarbeitsbereich eines Benutzers bereitgestellt. Sobald das Testen des Bundles abgeschlossen ist, kann das Bundle für das Staging bereitgestellt werden und dann Produktionsziele.
  5. Workflowressourcen, die im bereitgestellten Bundle definiert sind, können ausgeführt werden. Sie können beispielsweise einen Auftrag ausführen.
  6. Wenn das Bundle nicht mehr verwendet wird, kann es dauerhaft zerstört werden.

Sie verwenden die CLI Bundle-Befehle von Databricks zum Erstellen, Überprüfen, Bereitstellen, Ausführen und Zerstören von Bundles, wie in den folgenden Abschnitten beschrieben.

Schritt 1: Erstellen eines Bundle

Es gibt drei Möglichkeiten, mit dem Erstellen eines Pakets zu beginnen:

  1. Verwenden der Standardpaketvorlage
  2. Verwenden einer benutzerdefinierten Paketvorlage
  3. Erstellen Sie ein Paket manuell.

Verwenden einer standardmäßigen Paketvorlage

Wenn Sie eine Azure Databricks-Standardpaketvorlage zum Erstellen eines Startpakets verwenden möchten, das Sie dann weiter anpassen können, verwenden Sie die Databricks-CLI (Version 0.218.0 oder höher) zum Ausführen des bundle init-Befehls, der es ermöglicht, aus einer Liste der verfügbaren Vorlagen auszuwählen. Siehe Erstellen eines Bundles auf der Grundlage einer Projektvorlage.

databricks bundle init

Sie können die Quelle für die Standardpaketvorlagen in den öffentlichen GitHub-Repositorys databricks/cli und databricks/mlops-stacks anzeigen.

Fahren Sie mit Schritt 2: Auffüllen der Paketkonfigurationsdateien fort.

Verwenden einer benutzerdefinierten Bündelvorlage

Um eine andere Paketvorlage als die Azure Databricks-Standardpaketvorlage zu verwenden, müssen Sie den lokalen Pfad oder die URL zum Speicherort der Remotepaketvorlage kennen. Verwenden Sie hierzu Databricks CLI in der Version 0.218.0 oder höher, um den Befehl bundle init wie folgt auszuführen:

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

Weitere Informationen zu diesem Befehl finden Sie unter Databricks-Ressourcenpaketvorlagen. Informationen zu einer bestimmten Paketvorlage finden Sie in der Dokumentation des Paketvorlagenanbieters.

Fahren Sie mit Schritt 2: Auffüllen der Paketkonfigurationsdateien fort.

Manuelles Erstellen eines Pakets

Wenn Sie ein Paket nicht unter Verwendung einer Paketvorlage sondern manuell erstellen möchten, erstellen Sie ein Projektverzeichnis auf Ihrem lokalen Computer oder ein leeres Verzeichnis mit einem Git-Drittanbieter.

Erstellen Sie in Ihrem Verzeichnis oder Repository eine oder mehrere Paketkonfigurationsdateien als Eingabe. Diese Dateien werden im YAML-Format ausgedrückt. Es muss mindestens eine (und nur eine) Paketkonfigurationsdatei mit dem Namen databricks.yml sein. Auf zusätzliche Paketkonfigurationsdateien muss in der include-Zuordnung der databricks.yml-Datei verwiesen werden.

Um YAML-Dateien, die der Syntax der Konfiguration von Databricks-Ressourcenpaketen entsprechen, einfacher und schneller zu erstellen, können Sie Tools wie Visual Studio Code, PyCharm Professional oder IntelliJ IDEA Ultimate, die Unterstützung für YAML-Dateien und JSON-Schemadateien bieten, wie folgt verwenden:

Visual Studio Code

  1. Fügen Sie Visual Studio Code-Unterstützung für YAML-Sprachserver hinzu, z. B. durch Installieren der YAML-Erweiterung aus dem Visual Studio Code Marketplace.

  2. Generieren Sie die JSON-Schemadatei der Konfiguration von Databricks-Ressourcenpaketen, indem Sie die Databricks-CLI in der Version 0.218.0 oder höher verwenden, um den bundle schema-Befehl auszuführen und die Ausgabe an eine JSON-Datei umzuleiten. Generieren Sie beispielsweise wie folgt eine Datei namens „bundle_config_schema.json“ im aktuellen Verzeichnis:

    databricks bundle schema > bundle_config_schema.json
    
  3. Verwenden Sie Visual Studio Code, um eine Bundlekonfigurationsdatei im aktuellen Verzeichnis zu erstellen oder zu öffnen. Diese Datei muss den Namen databricks.yml haben.

  4. Fügen Sie am Anfang Ihrer Bundlekonfigurationsdatei den folgenden Kommentar hinzu:

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

    Hinweis

    Wenn sich die JSON-Schemadatei ihrer Databricks-Ressourcenbundlekonfiguration in einem anderen Pfad befindet, ersetzen Sie bundle_config_schema.json im vorherigen Kommentar durch den vollständigen Pfad zu Ihrer Schemadatei.

  5. Verwenden Sie die YAML-Sprachserverfunktionen, die Sie zuvor hinzugefügt haben. Weitere Informationen finden Sie in der Dokumentation Ihres YAML-Sprachservers.

PyCharm Professional

  1. Generieren Sie die JSON-Schemadatei der Konfiguration von Databricks-Ressourcenpaketen, indem Sie die Databricks-CLI in der Version 0.218.0 oder höher verwenden, um den bundle schema-Befehl auszuführen und die Ausgabe an eine JSON-Datei umzuleiten. Generieren Sie beispielsweise wie folgt eine Datei namens „bundle_config_schema.json“ im aktuellen Verzeichnis:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurieren Sie PyCharm, um die JSON-Schemadatei der Bundlekonfiguration zu erkennen. Schließen Sie dann die JSON-Schemazuordnung ab, indem Sie die Anweisungen unter Konfigurieren eines benutzerdefinierten JSON-Schemasbefolgen.

  3. Verwenden Sie PyCharm, um eine Bundlekonfigurationsdatei zu erstellen oder zu öffnen. Diese Datei muss den Namen databricks.yml haben. Während der Eingabe sucht PyCharm nach JSON-Schemasyntax und -formatierung und stellt Codeabschlusshinweise bereit.

IntelliJ IDEA Ultimate

  1. Generieren Sie die JSON-Schemadatei der Konfiguration von Databricks-Ressourcenpaketen, indem Sie die Databricks-CLI in der Version 0.218.0 oder höher verwenden, um den bundle schema-Befehl auszuführen und die Ausgabe an eine JSON-Datei umzuleiten. Generieren Sie beispielsweise wie folgt eine Datei namens „bundle_config_schema.json“ im aktuellen Verzeichnis:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurieren Sie IntelliJ IDEA, um die JSON-Schemadatei der Bundlekonfiguration zu erkennen. Schließen Sie dann die JSON-Schemazuordnung ab, indem Sie die Anweisungen unter Konfigurieren eines benutzerdefinierten JSON-Schemasbefolgen.

  3. Verwenden Sie IntelliJ IDEA, um eine Bundlekonfigurationsdatei zu erstellen oder zu öffnen. Diese Datei muss den Namen databricks.yml haben. Während der Eingabe sucht IntelliJ IDEA nach JSON-Schemasyntax und -formatierung und stellt Codeabschlusshinweise bereit.

Schritt 2: Auffüllen der Paketkonfigurationsdateien

Paketkonfigurationsdateien definieren Ihre Azure Databricks-Workflows, indem sie Einstellungen wie Arbeitsbereichsdetails, Artefaktnamen, Dateispeicherorte, Auftragsdetails und Pipelinedetails angeben. In der Regel enthält die Bundlekonfiguration auch Entwicklungs-, Staging- und Produktionsbereitstellungsziele. Detaillierte Informationen zu Paketkonfigurationsdateien finden Sie unter Konfiguration für Databricks-Ressourcenpakete.

Sie können den Befehl bundle generate verwenden, um die Paketkonfiguration für eine vorhandene Ressource im Arbeitsbereich automatisch zu generieren. Verwenden Sie dann bundle deployment bind, um die Paketkonfiguration mit der Ressource im Arbeitsbereich zu verknüpfen, damit sie synchron bleiben. Weitere Informationen finden Sie unter Generieren einer Paketkonfigurationsdatei und Binden von Paketressourcen.

Schritt 3: Überprüfen der Paketkonfigurationsdateien

Bevor Sie Artefakte bereitstellen oder einen Auftrag oder eine Pipeline ausführen, sollten Sie überprüfen, ob Definitionen in den Bundlekonfigurationsdateien gültig sind. Führen Sie dazu den bundle validate Befehl aus dem Stammverzeichnis des Bundleprojekts aus. Siehe Überprüfen eines Bündels.

databricks bundle validate

Wenn die Überprüfung erfolgreich ist, wird eine Zusammenfassung der Bundleidentität und eine Bestätigungsmeldung zurückgegeben. Verwenden Sie den databricks bundle schema Befehl, um das Schema auszugeben. Siehe Anzeigen des Bundlekonfigurationsschemas.

Schritt 4: Bereitstellen des Bundles

Stellen Sie vor der Bereitstellung des Pakets sicher, dass für den Remotearbeitsbereich Arbeitsbereichsdateien aktiviert wurden. Weitere Informationen finden Sie unter Was sind Arbeitsbereichsdateien?.

Um ein Bundle in einem Remotearbeitsbereich bereitzustellen, führen Sie den bundle deploy Befehl aus dem Bundlestamm aus, wie in Bereitstellen eines Bundles beschrieben. Die Databricks CLI stellt den Zielarbeitsbereich bereit, der in den Bundlekonfigurationsdateien deklariert wird. Siehe Ziele.

databricks bundle deploy

Die eindeutige Identität eines Bundles wird durch den Namen, das Ziel und die Identität des Bereitstellers definiert. Wenn diese Attribute in verschiedenen Bundles identisch sind, beeinträchtigt die Bereitstellung dieser Bundle einander. Weitere Details finden Sie unter Bereitstellen eines Bundles.

Tipp

Sie können databricks bundle-Befehle außerhalb des Paketstamms ausführen, indem Sie die BUNDLE_ROOT-Umgebungsvariable festlegen. Wenn diese Umgebungsvariable nicht festgelegt ist, versuchen databricks bundle-Befehle, den Bündelstamm zu finden, indem sie im aktuellen Arbeitsverzeichnis suchen.

Schritt 5: Ausführen des Bundles

Um einen bestimmten Auftrag oder eine bestimmte Pipeline auszuführen, führen Sie den bundle run Befehl aus dem Bundlestamm aus, und geben Sie den Auftrag oder den Pipelineschlüssel an, der in den Bundlekonfigurationsdateien deklariert ist, wie in Bundle ausführen beschrieben. Der Ressourcenschlüssel ist das Element der obersten Ebene des YAML-Blocks der Ressource. Wenn Sie keinen Auftrag oder Pipelineschlüssel angeben, werden Sie aufgefordert, eine Ressource auszuwählen, die aus einer Liste der verfügbaren Ressourcen ausgeführt werden soll. Wenn die Option -t nicht angegeben ist, wird das in den Bündelkonfigurationsdateien deklarierte Standardziel verwendet. So führen Sie beispielsweise einen Auftrag mit dem Schlüssel „hello_job“ im Kontext des Standardziels aus:

databricks bundle run hello_job

So führen Sie einen Auftrag mit einem Schlüssel „hello_job“ im Kontext eines Ziels aus, das mit dem Namen „dev“ deklariert wurde:

databricks bundle run -t dev hello_job

Schritt 6: Zerstören des Bündels

Wenn Sie mit dem Bundle fertig sind und Aufträge, Pipelines und Artefakte löschen möchten, die zuvor bereitgestellt wurden, führen Sie den bundle destroy-Befehl aus dem Bundlestamm aus. Dieser Befehl löscht alle zuvor bereitgestellten Aufträge, Pipelines und Artefakte, die in den Bündelkonfigurationsdateien definiert sind. Siehe Zerstören eines Bündels.

databricks bundle destroy

Standardmäßig werden Sie aufgefordert, das dauerhafte Löschen der zuvor bereitgestellten Aufträge, Pipelines und Artefakte zu bestätigen. Um diese Eingabeaufforderungen zu überspringen und automatisch dauerhaft zu löschen, fügen Sie dem bundle destroy-Befehl die Option --auto-approve hinzu.