Was sind Databricks Ressourcenpakete?

Databricks Asset Bundles (DABs) ist ein Tool, das Ihnen die Einführung von Bewährten Methoden im Software-Engineering erleichtert, einschließlich Versionskontrolle, Code-Review, Testen und kontinuierliche Integration und Bereitstellung (CI/CD) für Ihre Daten- und KI-Projekte. Bundles ermöglichen es, Databricks-Ressourcen wie Aufträge, Pipelines und Notebooks als Quelldateien zu beschreiben. Diese Quelldateien bieten eine durchgängige Definition eines Projekts, einschließlich der Art und Weise, wie es strukturiert, getestet und bereitgestellt werden soll, was die Zusammenarbeit an Projekten während der aktiven Entwicklung erleichtert.

Pakete bieten eine Möglichkeit, Metadaten zusammen mit den Quelldateien Ihres Projekts einzuschließen. Wenn Sie ein Projekt mithilfe von Bündeln bereitstellen, werden diese Metadaten verwendet, um Infrastruktur und andere Ressourcen bereitzustellen. Die Sammlung der Quelldateien und Metadaten Ihres Projekts wird dann als einzelnes Bündel für Ihre Zielumgebung bereitgestellt. Ein Paket enthält die folgenden Bestandteile:

  • Erforderlicher Konfigurationen für Cloudinfrastruktur und Arbeitsbereiche
  • Quelldateien, z. B. Notebooks und Python-Dateien, welche die Geschäftslogik enthalten
  • Definitionen und Einstellungen für Databricks-Ressourcen, z. B. Azure Databricks-Aufträge, Delta Live Tables-Pipelines, Modellbereitstellungsendpunkte, MLflow-Experimente und registrierte MLflow-Modelle
  • Einheiten- und Integrationstests

Das folgende Diagramm bietet eine allgemeine Übersicht über eine Entwicklungs- und CI/CD-Pipeline mit Bundles:

Databricks Asset Bundles Übersicht

Wann sollte ich Databricks Asset Bundles verwenden?

Databricks Assets Bundles sind ein IaC-Ansatz (Infrastructure-as-Code), um Ihre Databricks-Projekte zu verwalten. Verwenden Sie sie, wenn Sie komplexe Projekte verwalten möchten, bei denen mehrere Mitwirkende und Automatisierung unerlässlich sind, und eine kontinuierliche Integration und Bereitstellung (CI/CD) eine Voraussetzung sind. Da Bündel über YAML-Vorlagen und -Dateien definiert und verwaltet werden, die Sie zusammen mit dem Quellcode erstellen und verwalten, ordnen sie Szenarien gut zu, in denen IaC ein geeigneter Ansatz ist.

Zu den idealen Szenarien für den Einsatz von Bundles gehören:

  • Entwickeln Sie Daten-, Analyse- und ML-Projekte im Team. Pakete können Ihnen dabei helfen, verschiedene Quelldateien effizient zu organisieren und zu verwalten. Dadurch werden eine reibungslose Zusammenarbeit und optimierte Prozesse sichergestellt.
  • Iterieren Sie ML-Probleme schneller. Verwalten Sie Ressourcen der ML-Pipeline (z. B. Trainings- und Batch-Rückschluss-Aufträge), indem Sie ML-Projekte verwenden, die von Anfang an nach bewährten Methoden arbeiten.
  • Legen Sie Standards für neue Projekte für Ihre Organisation fest, indem Sie benutzerdefinierte Paketvorlagen erstellen, die Standardberechtigungen, Dienstprinzipale und CI/CD-Konfigurationen enthalten.
  • Einhaltung der Compliance: In Branchen, in denen die Einhaltung gesetzlicher Vorschriften von erheblicher Bedeutung ist, können Pakete dazu beitragen, einen versionsierten Verlauf der Arbeiten am Code und an der Infrastruktur aufrechtzuerhalten. Dies unterstützt die Governance und stellt sicher, dass die erforderlichen Compliancestandards erfüllt sind.

Wie funktionieren Databricks Asset Bundles?

Bündelmetadaten werden mithilfe von YAML-Dateien definiert, welche die Artefakte, Ressourcen und Konfiguration eines Databricks-Projekts angeben. Sie können diese YAML-Datei manuell erstellen oder mithilfe einer Bündelvorlage generieren. Die Databricks CLI kann dann zum Überprüfen, Bereitstellen und Ausführen von Bündeln mithilfe dieser YAML-Bündeldateien verwendet werden. Sie können Bündelprojekte direkt in IDEs, Terminals oder innerhalb von Databricks ausführen. In diesem Artikel wird die Databricks CLI verwendet.

Bündel können manuell oder basierend auf einer Vorlage erstellt werden. Die Databricks-Befehlszeilenschnittstelle (Command Line Interface, CLI) bietet Standardvorlagen für einfache Anwendungsfälle, aber für spezifischere oder komplexere Aufträge können Sie benutzerdefinierte Paketvorlagen erstellen, um die Best Practices Ihres Teams zu implementieren und allgemeine Konfigurationen konsistent zu halten.

Weitere Informationen zur Konfiguration, die YAML zum Ausdrücken von Databricks-Ressourcenpaketen verwendet, finden Sie unter Konfiguration für Databricks-Ressourcenpakete.

Konfigurieren Ihrer Umgebung für die Verwendung von Paketen

Verwenden Sie die Databricks-CLI, um Pakete einfach über die Befehlszeile bereitzustellen. Informationen zum Installieren der Databricks CLI finden Sie unter Installieren oder Aktualisieren der Databricks CLI.

Databricks Asset Bundles sind in Databricks CLI Version 0.218.0 oder höher verfügbar. Um die installierte Version von Databricks CLI zu ermitteln, führen Sie folgenden Befehl aus:

databricks --version

Überprüfen Sie nach der Installation der Databricks-CLI, ob Ihre Databricks-Remotearbeitsbereiche ordnungsgemäß konfiguriert sind. Pakete erfordern die Aktivierung des Features für Arbeitsbereichsdateien, da dieses Feature das Arbeiten mit anderen Dateien als Databricks-Notebooks unterstützt (z. B. Dateien vom Typ .py und .yml). Wenn Sie Databricks Runtime Version 11.3 LTS oder höher verwenden, ist diese Funktion standardmäßig aktiviert.

Authentifizierung

Azure Databricks bietet mehrere Authentifizierungsmethoden:

  • Verwenden Sie für Szenarien mit beaufsichtigter Authentifizierung – beispielsweise manuelle Workflows, in denen Sie Ihren Webbrowser verwenden, um sich bei Ihrem Azure Databricks-Zielarbeitsbereich anzumelden, wenn Sie von der Databricks CLI dazu aufgefordert werden – die OAuth U2M-Authentifizierung (User-to-Machine). Diese Methode eignet sich perfekt für Experimente mit den Einstiegstutorials für Databricks-Ressourcenbundles sowie für die schnelle Entwicklung von Bundles.
  • Verwenden Sie für Szenarien mit unbeaufsichtigter Authentifizierung – beispielsweise vollständig automatisierte Workflows, in denen Sie Ihren Webbrowser nicht verwenden können, um sich bei Ihrem Azure Databricks-Zielarbeitsbereich anzumelden – die OAuth M2M-Authentifizierung (Machine-to-Machine). Diese Methode erfordert die Verwendung von Azure Databricks-Dienstprinzipalen und eignet sich perfekt für die Verwendung von Databricks-Ressourcenbundles mit CI/CD-Systemen wie GitHub.

Gehen Sie für die OAuth U2M-Authentifizierung wie folgt vor:

  1. Verwenden Sie die Databricks CLI, um die OAuth-Tokenverwaltung lokal zu initiieren, indem Sie den folgenden Befehl für jeden Zielarbeitsbereich ausführen.

    Ersetzen Sie <workspace-url> im folgenden Befehl durch Ihre arbeitsbereichsspezifische Azure Databricks-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Die Databricks-CLI fordert Sie auf, die von Ihnen eingegebenen Informationen als Azure Databricks-Konfigurationsprofil zu speichern. Drücken Sie die EINGABETASTE (Enter), um den vorgeschlagenen Profilnamen zu übernehmen, oder geben Sie den Namen eines neuen oder bereits vorhandenen Profils ein. Ist bereits ein Profil mit dem gleichen Namen vorhanden, wird es mit den von Ihnen eingegebenen Informationen überschrieben. Sie können Profile verwenden, um Ihren Authentifizierungskontext schnell über mehrere Arbeitsbereiche hinweg zu wechseln.

    Um eine Liste vorhandener Profile abzurufen, führen Sie in der Databricks-CLI den Befehl databricks auth profiles in einem separaten Terminal oder in einer separaten Eingabeaufforderung aus. Um die vorhandenen Einstellungen eines bestimmten Profils anzuzeigen, können Sie den Befehl databricks auth env --profile <profile-name> ausführen.

  3. Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.

  4. Führen Sie einen der folgenden Befehle aus, um den aktuellen OAuth-Tokenwert eines Profils und den bevorstehenden Ablaufzeitstempel des Tokens anzuzeigen:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Wenn Sie über mehrere Profile mit dem gleichen --host-Wert verfügen, müssen Sie möglicherweise die Optionen --host und -p angeben, damit die Databricks CLI die richtigen übereinstimmenden OAuth-Tokeninformationen findet.

Sie können den Namen dieses Konfigurationsprofils auf eine oder mehrere der folgenden Arten verwenden, wenn Sie Bündel überprüfen, bereitstellen, ausführen oder zerstören:

  • Mit der Befehlszeilenoption -p <profile-name>, die an die Befehle databricks bundle validate, databricks bundle deploy, databricks bundle run oder databricks bundle destroy angefügt wird. Weitere Informationen finden Sie unter Databricks Asset Bundles Entwicklung.
  • Als Wert der profile-Zuordnung in der workspace-Zuordnung auf oberster Ebene der Bundlekonfigurationsdatei. (Databricks empfiehlt jedoch, anstelle der profile-Zuordnung die auf die URL des Azure Databricks-Arbeitsbereichs festgelegte host-Zuordnung zu verwenden, da die Bundlekonfigurationsdateien dadurch besser portiert werden können.) Weitere Informationen zur profile-Zuordnung finden Sie unter workspace.
  • Wenn der Name des Konfigurationsprofils DEFAULT lautet, wird er standardmäßig verwendet, wenn die Befehlszeilenoption -p <profile-name> oder die profile-Zuordnung (bzw. host-Zuordnung) nicht angegeben ist.

Gehen Sie für die OAuth M2M-Authentifizierung wie folgt vor:

  1. Führen Sie die Anweisungen zum Einrichten der OAuth M2M-Authentifizierung aus. Weitere Informationen finden Sie unter Authentifizierung des Zugriffs bei Azure Databricks mit einem Dienstprinzipal unter Verwendung von OAuth (OAuth M2M).

  2. Installieren Sie die Databricks CLI mithilfe eines der folgenden Verfahren auf der Zielcomputeressource:

    • Informationen dazu, wie Sie die Databricks CLI manuell in Echtzeit auf der Computeressource installieren, finden Sie unter Installieren oder Aktualisieren der Databricks-CLI.
    • Informationen zur automatischen Installation der Databricks CLI auf einem virtuellen GitHub-Computer unter Verwendung von GitHub Actions finden Sie unter setup-cli auf GitHub.
    • Wenn Sie andere CI/CD-Systeme verwenden möchten, um die Databricks CLI automatisch auf einem virtuellen Computer zu installieren, finden Sie weitere Informationen in der Dokumentation Ihres CI/CD-Systemanbieters sowie unter Installieren oder Aktualisieren der Databricks-CLI.
  3. Legen Sie die folgenden Umgebungsvariablen für die Computeressource fest:

    • DATABRICKS_HOST, legen Sie diesen Parameter auf die arbeitsbereichsspezifische Azure Databricks-URL fest, z. B. https://adb-1234567890123456.7.azuredatabricks.net.
    • Legen Sie DATABRICKS_CLIENT_ID auf die Anwendungs-ID des Azure Databricks-Dienstprinzipals fest.
    • Legen Sie DATABRICKS_CLIENT_SECRET auf das OAuth-Geheimnis des Azure Databricks-Dienstprinzipals fest.

    Informationen zum Festlegen dieser Umgebungsvariablen finden Sie in der Dokumentation des Betriebssystems oder des CI/CD-Systems Ihrer Zielcomputeressource.

Entwickeln Ihres ersten Databricks-Ressourcenpakets

Die schnellste Möglichkeit mit der Bündelentwicklung zu beginnen, ist die Verwendung einer Bundle-Projektvorlage. Erstellen Sie Ihr erstes Paketprojekt mit dem Databricks-CLI-Paket-Init-Befehl. Dieser Befehl bietet eine Auswahl an von Databricks zur Verfügung gestellten Standardpaketvorlagen. Zudem werden einige Fragen zum Initialisieren von Projektvariablen gestellt.

databricks bundle init

Das Erstellen ihres Pakets ist der erste Schritt im Lebenszyklus eines Pakets. Der zweite Schritt besteht darin, Ihr Paket zu entwickeln, ein Schlüsselelement, dessen Paketeinstellungen und Ressourcen in den databricks.yml und Ressourcenkonfigurationsdateien definiert werden. Informationen zur Paketkonfiguration finden Sie unter Konfiguration für Databricks-Ressourcenpakete.

Tipp

Paketkonfigurationsbeispiele finden Sie in Paketkonfigurationsbeispielen und im Paketbeispiel-Repository in GitHub.

Nächste Schritte