Was sind Databricks Ressourcenpakete?

Databricks-Ressourcenpakete (Databricks Asset Bundles, DABs) sind ein neues Tool zur Optimierung der Entwicklung komplexer Daten-, Analyse- und ML-Projekte für die Databricks-Plattform. Pakete erleichtern das Verwalten komplexer Projekte während der aktiven Entwicklung, indem CI/CD-Funktionen für Ihren Software-Entwicklungsworkflow mit einer einzigen präzisen und deklarativen YAML-Syntax bereitgestellt werden. Mithilfe von Bündeln können Sie die Tests, Bereitstellungen und die Konfigurationsverwaltung Ihres Projekts automatisieren, um Fehler zu reduzieren und gleichzeitig bewährte Methoden für Software in Ihrer Organisation als vorlagenbasierte Projekte zu fördern.

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

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. Wir behandeln die Verwendung der Databricks CLI in diesem Artikel.

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 Konfigurationen 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. Sie können überprüfen, ob die Databricks-CLI installiert ist und welche aktuelle Version verwendet wird, indem Sie den folgenden Befehl ausführen:

databricks --version

Hinweis

Databricks CLI Version 0.218.0 oder höher ist erforderlich. Informationen zum Installieren der Databricks CLI finden Sie unter Installieren oder Aktualisieren der Databricks CLI.

Ü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.2 (oder höher) verwenden, sollte dieses Feature standardmäßig aktiviert sein.

Authentifizierung

Azure Databricks bietet mehrere Authentifizierungsmethoden. Databricks empfiehlt, eine der folgenden Authentifizierungsmethoden zu verwenden:

  • 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 Entwicklungsarbeitsaufgaben für Databricks-Ressourcenpakete.
  • 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. OAuth-Computer-zu-Computer-Authentifizierung (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 Vorlage. Erstellen Sie Ihr erstes Paketprojekt mit dem Databricks-CLI-Befehl bundle init ohne Optionen. Dadurch wird eine Auswahl der von Databricks bereitgestellten Standardpaketvorlagen angezeigt. Zudem werden einige Fragen zum Initialisieren von Projektvariablen gestellt.

databricks bundle init

Organisationen können auch benutzerdefinierte Paketvorlagen erstellen, um ihre eigenen Standards zu definieren. Diese Standards können Standardberechtigungen, Dienstprinzipale und benutzerdefinierte CI/CD-Konfigurationen umfassen. Weitere Informationen finden Sie unter Vorlagen für Databricks-Ressourcenpakete.

Nachdem Sie Ihr Projekt initialisiert haben, verwenden Sie den bundle validate-Befehl, um Ihr Paket zu überprüfen, bevor Sie es in Ihren Arbeitsbereichen bereitstellen.

databricks bundle validate

Normalerweise erstellen Sie ein Bundle auf einem lokalen Entwicklungscomputer mit einer IDE und der Databricks CLI in der Version 0.218.0 oder höher. Diese Tools ermöglichen es Ihnen, ein Paket zu erstellen, zu überprüfen, bereitzustellen und auszuführen. Weitere Informationen finden Sie unter Entwicklungsarbeitsaufgaben für Databricks-Ressourcenpakete.

Sie können ein Paket in einem Azure Databricks-Arbeitsbereich bearbeiten, nachdem Sie es zu Git hinzugefügt haben, indem Sie die Databricks Git-Ordner-Integration verwenden. Sie können jedoch kein Paket aus einem Arbeitsbereich testen oder bereitstellen. Stattdessen können Sie für die Bereitstellung eine lokale IDE für Tests und CI/CD verwenden.

Nächste Schritte

Häufige Aufgaben

Verwenden Sie die folgenden Artikel, um allgemeine Aufgaben für Databricks Ressourcenpakete auszuführen.

Artikel Verwenden Sie diesen Artikel, wenn Sie Folgendes tun möchten …
Entwicklungsarbeitsaufgaben für Databricks-Ressourcenpakete Erfahren Sie mehr über den Workflow zum Erstellen, Überprüfen, Bereitstellen und Ausführen eines Pakets durch Erstellen einer databricks.yml Datei und mithilfe der Databricks CLI zum Ausführen der Befehle databricks bundle validate, databricks bundle deployund databricks bundle run.
Konfigurationen für Databricks-Ressourcenpakete Erstellen Sie die databricks.yml-Datei eines Pakets und andere zugehörige Paketkonfigurationsdateien, die der YAML-Syntax für Paketkonfigurationen entsprechen.
Authentifizierung für Databricks-Ressourcenbündel Richten Sie ein Bündelprojekt für die Azure Databricks-Authentifizierung ein.
Entwickeln eines Auftrags in Azure Databricks mithilfe von Databricks-Ressourcenpaketen Erstellen, Bereitstellen und Ausführen eines Pakets für einen Azure Databricks-Auftrag.
Entwickeln von Delta Live Tables-Pipelines mit Databricks-Ressourcenbundles Erstellen, Bereitstellen und Ausführen eines Pakets für eine Delta Live Tables-Pipeline.
Databricks-Ressourcenpakete für MLOps-Stapel Erstellen, Bereitstellen und Ausführen eines Pakets für einen MLOps-Stapel.
Bibliotheksabhängigkeiten für Databricks-Ressourcenbundles Installieren Sie Bibliotheken, die ein Paket für die Ausführung auf zugehörigen Azure Databricks-Clustern benötigt.
Bereitstellungsmodi für Databricks-Ressourcenpakete Verwenden Sie Paketbereitstellungsmodi wie development und production, um gängige Bereitstellungsverhaltensweisen wie Anhalten oder Fortsetzen der zugehörigen Zeitpläne und Trigger automatisch zu aktivieren oder deaktivieren.
Databricks-Ressourcenpaketvorlagen Verwenden Sie eine Vorlage, um das Erstellen bestimmter Arten von Paketen schneller und einfacher zu gestalten und konsistentere und wiederholbare Ergebnisse zu erzielen.
Festlegen von Berechtigungen für Ressourcen in Databricks-Ressourcenpaketen Wenden Sie granulare Zugriffsberechtigungsstufen auf Benutzer, Gruppen und Dienstprinzipale für bestimmte Paketressourcen an.
Dynamisches Definieren von Artefakteinstellungen in Databricks-Ressourcenpaketen Kombinieren oder überschreiben Sie bestimmte Einstellungen für Artefakte in einem Paket.
Ausführen eines CI/CD-Workflows mit einem Databricks-Ressourcenpaket und GitHub Actions Bereitstellen oder Ausführen eines Pakets als Reaktion auf ein bestimmtes GitHub-Workflowereignis wie eine Pullanforderung oder Zusammenführen.
Außerkraftsetzen von Clustereinstellungen in Databricks-Ressourcenpaketen Kombinieren oder Überschreiben Sie bestimmte Einstellungen für Cluster in einem Paket.
Hinzufügen von Tasks zu Aufträgen in Databricks-Ressourcenpaketen Fügen Sie eine Aufgabe einem Auftrag in einem Paket hinzu.
Außerkraftsetzen von Einstellungen von Auftragsaufgaben in Databricks-Ressourcenpaketen Kombinieren oder überschreiben Sie bestimmte Einstellungen für Auftragsaufgaben in einem Paket.
Entwickeln einer Python-Wheel-Datei mithilfe von Databricks-Ressourcenpaketen Erstellen, Bereitstellen und Aufrufen von Python-Wheel-Dateien in einem Paket.

Weitere Ressourcen