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, Model Serving-Endpunkte, 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:
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 pflegen, passen sie gut zu Szenarien, in denen IaC der passende 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 Organisationsstandards für neue Projekte fest, indem Sie benutzerdefinierte Bundlevorlagen erstellen, die Standardberechtigungen, Dienstprinzipale und CI/CD-Konfigurationen enthalten.
- Einhaltung gesetzlicher Vorschriften: In Branchen, in denen die Einhaltung gesetzlicher Vorschriften ein erhebliches Problem darstellt, können Bundles dazu beitragen, einen versionsierten Verlauf von Code und Infrastrukturarbeit 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
Sie verwenden die Databricks-CLI, um Pakete ü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. Bündel erfordern die Aktivierung des Arbeitsbereichsdateienfeatures. 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:
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>
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.Verwenden Sie zum Abrufen einer Liste vorhandener Profile in einem separaten Terminal oder einer separaten Eingabeaufforderung die Databricks CLI, um den Befehl
databricks auth profiles
auszuführen. Um die vorhandenen Einstellungen eines bestimmten Profils anzuzeigen, können Sie den Befehldatabricks auth env --profile <profile-name>
ausführen.Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.
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 Befehledatabricks bundle validate
,databricks bundle deploy
,databricks bundle run
oderdatabricks bundle destroy
angefügt wird. Weitere Informationen finden Sie unter Databricks Asset Bundles Entwicklung. - Als Wert der
profile
-Zuordnung in derworkspace
-Zuordnung auf oberster Ebene der Bundlekonfigurationsdatei. (Databricks empfiehlt jedoch, anstelle derprofile
-Zuordnung die auf die URL des Azure Databricks-Arbeitsbereichs festgelegtehost
-Zuordnung zu verwenden, da die Bundlekonfigurationsdateien dadurch besser portiert werden können.) Weitere Informationen zurprofile
-Zuordnung finden Sie unter workspace. - Wenn der Name des Konfigurationsprofils
DEFAULT
lautet, wird er standardmäßig verwendet, wenn die Befehlszeilenoption-p <profile-name>
oder dieprofile
-Zuordnung (bzw.host
-Zuordnung) nicht angegeben ist.
Gehen Sie für die OAuth M2M-Authentifizierung wie folgt vor:
Führen Sie die Anweisungen zum Einrichten der OAuth M2M-Authentifizierung aus. Weitere Informationen finden Sie unter Autorisieren des unbeaufsichtigten Zugriffs auf Azure Databricks-Ressourcen mit einem Dienstprinzipal mithilfe von OAuth.
Installieren Sie die Databricks CLI mithilfe eines der folgenden Verfahren auf der Zielcomputeressource:
- Informationen zum manuellen Installieren der Databricks CLI auf der Computeressource in Echtzeit 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, lesen Sie die Dokumentation Ihres CI/CD-Anbieters und installieren oder aktualisieren Sie die Databricks CLI.
Legen Sie die folgenden Umgebungsvariablen für die Computeressource wie folgt 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 zum Betriebssystem ihrer Zielberechnungsressource oder des CI/CD-Systems.
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
- Erstellen Sie ein Bundle, das ein Notebook in einem Azure Databricks-Arbeitsbereich bereitstellt, und führen Sie dann das bereitgestellte Notebook als Azure Databricks-Auftrag aus. Weitere Informationen finden Sie unter Entwickeln eines Auftrags in Azure Databricks mithilfe von Databricks-Ressourcen-Bundles.
- Erstellen Sie ein Bündel, das ein Notizbuch in einem Azure Databricks-Arbeitsbereich bereitstellt, und führt dann das bereitgestellte Notizbuch als Delta Live Tables-Pipeline aus. Weitere Informationen finden Sie unter Entwickeln von Delta Live Tables-Pipelines mit Databricks-Ressourcenbundles.
- Erstellen Sie ein Bundle, das einen MLOps Stapel bereitstellt und ausführt. Weitere Informationen finden Sie unter Databricks-Ressourcenpakete für MLOps-Stapel.
- Fügen Sie einem CI/CD-Workflow (Continuous Integration/Continuous Deployment) in GitHub ein Bundle hinzu. Weitere Informationen finden Sie unter Ausführen eines CI/CD-Workflows mit einem Databricks-Ressourcenpaket und GitHub Actions.
- Erstellen Sie ein Bundle, das eine Python-Wheel-Datei erstellt, bereitstellt und ausführt. Weitere Informationen finden Sie unter Entwickeln einer Python-Wheel-Datei mithilfe von Databricks-Ressourcenpaketen.
- Erstellen Sie eine benutzerdefinierte Vorlage, die Sie und andere zum Erstellen eines Pakets verwenden können. Eine benutzerdefinierte Vorlage kann Standardberechtigungen, Dienstprinzipale und eine benutzerdefinierte CI/CD-Konfiguration enthalten. Weitere Informationen finden Sie unter Vorlagen für Databricks-Ressourcenpakete.
- Migrieren von dbx zu Databricks-Ressourcenpaketen. Siehe Migrieren von dbx zu Paketen.
- Entdecken Sie die wichtigsten neuen Features, die für Databricks Asset Bundles veröffentlicht wurden. Siehe Featurereleases-Hinweise von Databricks Asset Bundles.