Freigeben über


Entwickeln von Delta Live Tables-Pipelines mit Databricks-Ressourcenbundles

Databricks-Ressourcenbundles, die auch einfach als Bundles bezeichnet werden, ermöglichen Ihnen die programmgesteuerte Überprüfung, Bereitstellung und Ausführung von Azure Databricks-Ressourcen wie z. B. Delta Live Tables-Pipelines. Sie können Bündel auch verwenden, um Azure Databricks-Aufträge programmgesteuert zu verwalten und mit MLOps-Stacks zu arbeiten. Weitere Informationen finden Sie unter Was sind Databricks-Ressourcenbundles?

Dieser Artikel beschreibt eine Reihe von Schritten, die Sie auf Ihrem lokalen Entwicklungscomputer ausführen können, um ein Bündel zu verwenden, das eine Delta Live Tables-Pipeline programmgesteuert verwaltet.

Anforderungen

  • Databricks CLI-Version 0.218 oder höher. Führen Sie den Befehl databricks -v aus, um zu überprüfen, welche Version der Databricks-CLI installiert ist. Informationen zum Installieren der Databricks CLI finden Sie unter Installieren oder Aktualisieren der Databricks CLI.
  • Für den Remotearbeitsbereich müssen Arbeitsbereichsdateien aktiviert sein. Weitere Informationen finden Sie unter Was sind Arbeitsbereichsdateien?.

(Optional) Installieren eines Python-Moduls zur Unterstützung der lokalen Pipelineentwicklung

Databricks bietet ein Python-Modul, das die lokale Entwicklung von Delta Live Tables-Pipelinecode unterstützt, indem Syntaxüberprüfung, AutoVervollständigen und Datentypüberprüfung beim Schreiben von Code in Ihrer IDE bereitgestellt werden.

Das Python-Modul für die lokale Entwicklung ist auf PyPi verfügbar. Informationen zum Installieren des Moduls finden Sie unter Python-Stub für Delta Live Tables.

Entscheidung: Paket mithilfe einer Vorlage oder manuell erstellen

Entscheiden Sie, ob Sie das Paket mithilfe einer Vorlage oder manuell erstellen möchten:

Erstellen des Bündels mithilfe einer Vorlage

In diesen Schritten erstellen Sie das Pakets mithilfe der Standardpaketvorlage Azure Databricks für Python. Mit diesen Schritten erstellen Sie ein Paket, das aus einem Notebook besteht, das eine Delta Live Tables-Pipeline definiert, die Daten aus dem ursprünglichen Dataset filtert. Sie überprüfen dann die Pipeline, stellen sie bereit und führen die bereitgestellte Pipeline in Ihrem Azure Databricks-Arbeitsbereich aus.

Schritt 1: Einrichten der Authentifizierung

In diesem Schritt richten Sie die Authentifizierung zwischen der Databricks CLI auf Ihrem Entwicklungscomputer und Ihrem Azure Databricks-Arbeitsbereich ein. In diesem Artikel wird davon ausgegangen, dass Sie zur Authentifizierung die OAuth-U2M-Authentifizierung (User-to-Machine, Benutzer-zu-Computer) und ein entsprechendes Azure Databricks-Konfigurationsprofil namens DEFAULT verwenden möchten.

Hinweis

Die U2M-Authentifizierung eignet sich für das Testen dieser Schritte in Echtzeit. Bei vollständig automatisierten Workflows empfiehlt Databricks stattdessen die Verwendung der OAuth-M2M-Authentifizierung (Machine-to-Machine, Computer-zu-Computer). Lesen Sie die Anweisungen zur Einrichtung der M2M-Authentifizierung unter Authentifizierung.

  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 demselben --host-Wert verfügen, müssen Sie möglicherweise die Optionen --host und -p zusammen angeben, damit die Databricks CLI die richtigen übereinstimmenden Informationen des OAuth-Tokens ermitteln kann.

Schritt 2: Erstellen des Pakets

Ein Bundle enthält die Artefakte, die Sie bereitstellen sowie die Einstellungen für die Workflows, die Sie ausführen möchten.

  1. Verwenden Sie Ihr Terminal oder die Eingabeaufforderung, um zu einem Verzeichnis auf Ihrem lokalen Entwicklungscomputer zu wechseln, welches das aus der Vorlage generierte Paket enthält.

  2. Verwenden Sie die Dataricks CLI, um den Befehl bundle init auszuführen:

    databricks bundle init
    
  3. Übernehmen Sie für Template to use den Standardwert default-python, indem Sie Enter drücken.

  4. Lassen Sie für Unique name for this project, den Standardwert von my_project, oder geben Sie einen anderen Wert ein, und drücken Sie dann Enter. Dadurch wird der Name des Stammverzeichnisses für dieses Bündel bestimmt. Dieses Stammverzeichnis wird in Ihrem aktuellen Arbeitsverzeichnis erstellt.

  5. Wählen Sie für Include a stub (sample) notebookno aus, und drücken Sie Enter. Dadurch wird die Databricks CLI angewiesen, zu diesem Zeitpunkt kein Beispielnotizbuch hinzuzufügen, da das mit dieser Option verknüpfte Beispielnotebook keinen Delta Live Tables-Code enthält.

  6. Behalten Sie für Include a stub (sample) DLT pipeline den Standardwert yes bei, indem Sie Enter drücken. Dadurch wird die Databricks CLI angewiesen, ein Beispielnotebook mit Delta Live Tables-Code hinzuzufügen.

  7. Wählen Sie für Include a stub (sample) Python packageno aus, und drücken Sie Enter. Damit wird die Databricks CLI angewiesen, Ihrem Paket Beispiel-Python-Wheel-Paketdateien und zugehörige Buildanweisungen hinzuzufügen.

Schritt 3: Erkunden des Pakets

Um die von der Vorlage generierten Dateien anzuzeigen, wechseln Sie zum Stammverzeichnis Ihres neu erstellten Bündels, und öffnen Sie dieses Verzeichnis mit Ihrer bevorzugten IDE, z. B. Visual Studio Code. Von besonderem Interesse sind die folgenden Dateien:

  • databricks.yml: Diese Datei gibt den programmgesteuerten Namen des Pakets an, enthält einen Verweis auf die Pipelinedefinition und gibt Einstellungen für den Zielarbeitsbereich an.
  • resources/<project-name>_job.yml und resources/<project-name>_pipeline.yml: Diese Datei die Einstellungen der Pipeline an.
  • src/dlt_pipeline.ipynb: Bei dieser Datei handelt es sich um ein Notebook, das bei der Ausführung die Pipeline ausführt.

Zum Anpassen von Pipelines entsprechen die Zuordnungen innerhalb einer Pipelinedeklaration der Anforderungsnutzlast des Erstellungsvorgangs gemäß der Definition in POST /api/2.0/pipelines im REST-API-Verweis, ausgedrückt im YAML-Format.

Schritt 4: Überprüfen der Bundlekonfigurationsdatei des Projekts

In diesem Schritt überprüfen Sie, ob die Bundlekonfiguration gültig ist.

  1. Verwenden Sie im Stammverzeichnis die Databricks CLI, um den bundle validate-Befehl wie folgt auszuführen:

    databricks bundle validate
    
  2. Wenn eine Zusammenfassung der Bundlekonfiguration zurückgegeben wird, war die Prüfung erfolgreich. Wenn Fehler zurückgegeben werden, müssen Sie sie beheben und dann diesen Schritt wiederholen.

Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie diesen Schritt wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist.

Schritt 5: Bereitstellen des lokalen Projekts im Remotearbeitsbereich

In diesem Schritt stellen Sie das lokale Notebook in Ihrem Azure Databricks-Remotearbeitsbereich bereit und erstellen die Delta Live Tables-Pipeline in Ihrem Arbeitsbereich.

  1. Verwenden Sie die Databricks CLI, um den Befehl bundle validate folgendermaßen auszuführen:

    databricks bundle deploy -t dev
    
  2. Überprüfen Sie, ob das lokale Notebook bereitgestellt wurden: Klicken Sie in der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Arbeitsbereich.

  3. Klicken Sie in den Ordner Benutzer ><your-username>> .bundle ><project-name>> dev > files > src. Das Notebook sollte sich in diesem Ordner befinden.

  4. Überprüfen Sie, ob die Pipeline erstellt wurde: Klicken Sie in der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Delta Live Tables.

  5. Klicken Sie auf der Registerkarte Delta Live Tables auf [dev <your-username>] <project-name>_pipeline.

Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie die Schritte 4 bis 5 wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist, und dann das Projekt erneut bereitstellen.

Schritt 6: Ausführen des bereitgestellten Projekts

In diesem Schritt führen Sie die Delta Live Tables-Pipeline in Ihrem Arbeitsbereich aus.

  1. Verwenden Sie im Stammverzeichnis die Databricks CLI, um den Befehl bundle runwie folgt auszuführen, wobei Sie <project-name> durch den Namen des Projekts aus Schritt 2 ersetzen:

    databricks bundle run -t dev <project-name>_pipeline
    
  2. Kopieren Sie den Wert von Update URL, der in Ihrem Terminal angezeigt wird, und fügen Sie ihn in Ihren Webbrowser ein, um Ihren Azure Databricks-Arbeitsbereich zu öffnen.

  3. Nach erfolgreichem Abschluss der Pipeline klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf die Ansicht taxi_raw und die materialisierte Ansicht filtered_taxis, um die Details anzuzeigen.

Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie die Schritte 4 bis 6 wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist, das Projekt erneut bereitstellen und dieses Projekt ausführen.

Schritt 7: Bereinigen

In diesem Schritt löschen Sie das bereitgestellte Notebook und die Pipeline aus Ihrem Arbeitsbereich.

  1. Verwenden Sie im Stammverzeichnis die Databricks CLI, um den Befehl bundle destroy wie folgt auszuführen:

    databricks bundle destroy -t dev
    
  2. Bestätigen Sie die Anforderung zum Löschen der Pipeline: Wenn Sie aufgefordert werden, die Ressourcen dauerhaft zu löschen, geben Sie y ein, und drücken Sie dann Enter.

  3. Bestätigen Sie die Löschanforderung für das Notebook: Wenn Sie aufgefordert werden, den zuvor bereitgestellten Ordner und alle seine Dateien dauerhaft zu löschen, geben Sie y ein und drücken Sie Enter.

  4. Wenn Sie das Paket auch von Ihrem Entwicklungscomputer löschen möchten, können Sie jetzt das lokale Verzeichnis aus Schritt 2 löschen.

Sie haben das Ende der Schritte zum Erstellen eines Pakets mithilfe einer Vorlage erreicht.

Manuelles Erstellen des Bündels

In diesen Schritten erstellen Sie das Paket von Grund auf. Diese Schritte leiten Sie dazu an, ein Paket zu erstellen, das aus einem Notebook mit eingebetteten Delta Live Tables-Anweisungen und der Definition einer Delta Live Tables-Pipeline zum Ausführen dieses Notebooks besteht. Anschließend überprüfen Sie das bereitgestellte Notebook aus der Pipeline in Ihrem Azure Databricks-Arbeitsbereich, stellen es bereit und führen es aus.

Schritt 1: Erstellen des Bundles

Ein Bundle enthält die Artefakte, die Sie bereitstellen sowie die Einstellungen für die Workflows, die Sie ausführen möchten.

  1. Erstellen oder identifizieren Sie ein leeres Verzeichnis auf Ihrem Entwicklungscomputer.
  2. Wechseln Sie zum leeren Verzeichnis in Ihrem Terminal, oder öffnen Sie das leere Verzeichnis in Ihrer integrierten Entwicklungsumgebung (IDE).

Tipp

Ihr leeres Verzeichnis könnte einem geklonten Repository zugeordnet sein, das von einem Git-Anbieter verwaltet wird. Dadurch können Sie Ihr Bündel mit externer Versionskontrolle verwalten und einfacher mit anderen Entwicklern und IT-Experten an Ihrem Projekt zusammenarbeiten. Um diese Demonstration zu vereinfachen, wird hier jedoch kein geklontes Repository verwendet.

Wenn Sie ein Repository für diese Demo klonen, empfiehlt Databricks ein Repository, das leer ist oder nur grundlegende Dateien wie README und .gitignore enthält. Andernfalls werden alle bereits vorhandenen Dateien im Repository möglicherweise unnötig mit Ihrem Azure Databricks-Arbeitsbereich synchronisiert.

Schritt 2: Hinzufügen eines Notebooks zum Projekt

In diesem Schritt fügen Sie ein Notebook zu Ihrem Projekt hinzu. Dieses Notebook führt folgende Aktionen aus:

  • Liest unformatierte JSON-Clickstreamdaten aus Databricks-Datasets in eine unformatierte Delta-Tabelle im pipelines-Ordner innerhalb des DBFS-Stammordners Ihres Azure Databricks-Arbeitsbereichs.
  • Liest Datensätze aus der unformatierten Delta-Tabelle und verwendet eine Delta Live Tables-Abfrage und -Erwartungen, um eine neue Delta-Tabelle mit bereinigten und vorbereiteten Daten zu erstellen.
  • Führt eine Analyse der vorbereiteten Daten in der neuen Delta-Tabelle mit einer Delta Live Tables-Abfrage durch.
  1. Erstellen Sie im Stammverzeichnis eine Datei mit dem Namen dlt-wikipedia-python.py.

  2. Fügen Sie der Datei dlt-wikipedia-python.py den folgenden Code hinzu:

    # Databricks notebook source
    import dlt
    from pyspark.sql.functions import *
    
    # COMMAND ----------
    json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json"
    
    # COMMAND ----------
    @dlt.table(
      comment="The raw wikipedia clickstream dataset, ingested from /databricks-datasets."
    )
    def clickstream_raw():
      return (spark.read.format("json").load(json_path))
    
    # COMMAND ----------
    @dlt.table(
      comment="Wikipedia clickstream data cleaned and prepared for analysis."
    )
    @dlt.expect("valid_current_page_title", "current_page_title IS NOT NULL")
    @dlt.expect_or_fail("valid_count", "click_count > 0")
    def clickstream_prepared():
      return (
        dlt.read("clickstream_raw")
          .withColumn("click_count", expr("CAST(n AS INT)"))
          .withColumnRenamed("curr_title", "current_page_title")
          .withColumnRenamed("prev_title", "previous_page_title")
          .select("current_page_title", "click_count", "previous_page_title")
      )
    
    # COMMAND ----------
    @dlt.table(
      comment="A table containing the top pages linking to the Apache Spark page."
    )
    def top_spark_referrers():
      return (
        dlt.read("clickstream_prepared")
          .filter(expr("current_page_title == 'Apache_Spark'"))
          .withColumnRenamed("previous_page_title", "referrer")
          .sort(desc("click_count"))
          .select("referrer", "click_count")
          .limit(10)
      )
    

Schritt 3: Hinzufügen einer Konfigurationsschemadatei für Bündeleinstellungen zum Projekt

Wenn Sie eine IDE wie Visual Studio Code, PyCharm Professional oder IntelliJ IDEA Ultimate verwenden, die Unterstützung für YAML-Dateien und JSON-Schemadateien bereitstellt, können Sie Ihre IDE nicht nur zum Erstellen der Schemadatei für die Bündelkonfiguration, sondern auch zum Überprüfen der Syntax und Formatierung der Bündelkonfigurationsdatei Ihres Projekts und folgendermaßen zum Bereitstellen von Codeabschlusshinweisen verwenden. Beachten Sie, dass die Bündelkonfigurationsdatei, die Sie später in Schritt 5 erstellen, YAML-basiert ist, die Schemadatei für die Bündelkonfiguration in diesem Schritt jedoch JSON-basiert.

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 Databricks-Ressourcenbundlekonfiguration, indem Sie die Databricks-CLI verwenden, um den Befehl bundle schema 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. Beachten Sie, dass Sie später in Schritt 5 den folgenden Kommentar am Anfang der Bündelkonfigurationsdatei hinzufügen, um Ihre Bündelkonfigurationsdatei der angegebenen JSON-Schemadatei zuzuordnen:

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

    Hinweis

    Wenn sich Ihre JSON-Konfigurationsschemadatei des Databricks-Ressourcenbundles in einem anderen Pfad befindet, ersetzen Sie bundle_config_schema.json im vorherigen Kommentar durch den vollständigen Pfad zu Ihrer Schemadatei.

Pycharm Professional

  1. Generieren Sie die JSON-Schemadatei der Databricks-Ressourcenbundlekonfiguration, indem Sie die Databricks-CLI verwenden, um den Befehl bundle schema 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. Beachten Sie, dass Sie später in Schritt 5 PyCharm verwenden, um eine Bündelkonfigurationsdatei zu erstellen oder zu öffnen. Grundsätzlich heißt diese Datei databricks.yml.

IntelliJ IDEA Ultimate

  1. Generieren Sie die JSON-Schemadatei der Databricks-Ressourcenbundlekonfiguration, indem Sie die Databricks-CLI verwenden, um den Befehl bundle schema 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. Beachten Sie, dass Sie später in Schritt 5 IntelliJ IDEA verwenden, um eine Bündelkonfigurationsdatei zu erstellen oder zu öffnen. Grundsätzlich heißt diese Datei databricks.yml.

Schritt 4: Einrichten der Authentifizierung

In diesem Schritt richten Sie die Authentifizierung zwischen der Databricks CLI auf Ihrem Entwicklungscomputer und Ihrem Azure Databricks-Arbeitsbereich ein. In diesem Artikel wird davon ausgegangen, dass Sie zur Authentifizierung die OAuth-U2M-Authentifizierung (User-to-Machine, Benutzer-zu-Computer) und ein entsprechendes Azure Databricks-Konfigurationsprofil namens DEFAULT verwenden möchten.

Hinweis

Die U2M-Authentifizierung eignet sich für das Testen dieser Schritte in Echtzeit. Bei vollständig automatisierten Workflows empfiehlt Databricks stattdessen die Verwendung der OAuth-M2M-Authentifizierung (Machine-to-Machine, Computer-zu-Computer). Lesen Sie die Anweisungen zur Einrichtung der M2M-Authentifizierung unter Authentifizierung.

  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 demselben --host-Wert verfügen, müssen Sie möglicherweise die Optionen --host und -p zusammen angeben, damit die Databricks CLI die richtigen übereinstimmenden Informationen des OAuth-Tokens ermitteln kann.

Schritt 5: Hinzufügen einer Bündelkonfigurationsdatei zum Projekt

In diesem Schritt definieren Sie, wie Sie dieses Notebook bereitstellen und ausführen möchten. Für diese Demo wollen Sie eine Delta Live Tables-Pipeline verwenden, um das Notebook auszuführen. Sie modellieren dieses Ziel innerhalb einer Bündelkonfigurationsdatei in Ihrem Projekt.

  1. Verwenden Sie Ihren bevorzugten Text-Editor oder Ihre IDE, um die Bündelkonfigurationsdatei im Stammverzeichnis zu erstellen. Grundsätzlich heißt diese Datei databricks.yml.
  2. Fügen Sie der Datei databricks.yml den folgenden Code hinzu, und ersetzen Sie dabei <workspace-url> durch Ihre jeweilige Arbeitsbereichs-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net. Diese URL muss mit der URL in Ihrer .databrickscfg-Datei übereinstimmen:

Tipp

Die erste Zeile, beginnend mit # yaml-language-server, ist nur erforderlich, wenn Ihre IDE diese unterstützt. Ausführliche Informationen finden Sie weiter oben in Schritt 3.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: dlt-wikipedia

resources:
  pipelines:
    dlt-wikipedia-pipeline:
      name: dlt-wikipedia-pipeline
      development: true
      continuous: false
      channel: "CURRENT"
      photon: false
      libraries:
        - notebook:
            path: ./dlt-wikipedia-python.py
      edition: "ADVANCED"
      clusters:
        - label: "default"
          num_workers: 1

targets:
  development:
    workspace:
      host: <workspace-url>

Zum Anpassen von Pipelines entsprechen die Zuordnungen innerhalb einer Pipelinedeklaration der Anforderungsnutzlast des Erstellungsvorgangs gemäß der Definition in POST /api/2.0/pipelines im REST-API-Verweis, ausgedrückt im YAML-Format.

Schritt 6: Überprüfen der Bündelkonfigurationsdatei des Projekts

In diesem Schritt überprüfen Sie, ob die Bundlekonfiguration gültig ist.

  1. Verwenden Sie die Databricks CLI, um den Befehl bundle validate folgendermaßen auszuführen:

    databricks bundle validate
    
  2. Wenn eine Zusammenfassung der Bundlekonfiguration zurückgegeben wird, war die Prüfung erfolgreich. Wenn Fehler zurückgegeben werden, müssen Sie sie beheben und dann diesen Schritt wiederholen.

Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie diesen Schritt wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist.

Schritt 7: Bereitstellen des lokalen Projekts im Remotearbeitsbereich

In diesem Schritt stellen Sie das lokale Notebook in Ihrem Azure Databricks-Remotearbeitsbereich bereit und erstellen die Delta Live Tables-Pipeline in Ihrem Arbeitsbereich.

  1. Verwenden Sie die Databricks CLI, um den Befehl bundle validate folgendermaßen auszuführen:

    databricks bundle deploy -t development
    
  2. Überprüfen Sie, ob das lokale Notebook bereitgestellt wurden: Klicken Sie in der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Arbeitsbereich.

  3. Klicken Sie in den Ordner Benutzer ><your-username>> .bundle > dlt-wikipedia > development > files. Das Notebook sollte sich in diesem Ordner befinden.

  4. Überprüfen Sie, ob die Delta Live Tables-Pipeline erstellt wurde: Klicken Sie in der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Workflows.

  5. Klicken Sie auf der Registerkarte Delta Live Tables auf dlt-wikipedia-pipeline.

Wenn Sie nach diesem Schritt Änderungen an Ihrem Bündel vornehmen, sollten Sie die Schritte 6 bis 7 wiederholen, um zu überprüfen, ob Ihre Bündelkonfiguration noch gültig ist, und dann das Projekt erneut bereitstellen.

Schritt 8: Ausführen des bereitgestellten Projekts

In diesem Schritt führen Sie den Azure Databricks-Auftrag in Ihrem Arbeitsbereich aus.

  1. Verwenden Sie die Databricks CLI, um den Befehl bundle run folgendermaßen auszuführen:

    databricks bundle run -t development dlt-wikipedia-pipeline
    
  2. Kopieren Sie den Wert von Update URL, der in Ihrem Terminal angezeigt wird, und fügen Sie ihn in Ihren Webbrowser ein, um Ihren Azure Databricks-Arbeitsbereich zu öffnen.

  3. Klicken Sie zum Anzeigen weiterer Details in Ihrem Azure Databricks-Arbeitsbereich auf die materialisierten Ansichten clickstream_raw, clickstream_prepared, oder top_spark_referrers, nachdem die Delta Live Tables-Pipeline erfolgreich abgeschlossen wurde und grüne Titelleisten in den verschiedenen materialisierten Ansichten angezeigt werden.

  4. Bevor Sie mit dem nächsten Schritt zum Bereinigen beginnen, notieren Sie sich den Speicherort der in DBFS erstellten Delta-Tabellen wie folgt. Sie werden diese Informationen benötigen, wenn Sie diese Delta-Tabellen später manuell bereinigen möchten:

    1. Wenn die Delta Live Tables-Pipeline noch geöffnet ist, klicken Sie auf die Schaltfläche Einstellungen (neben den Schaltflächen Berechtigungen und Zeitplan ).
    2. Notieren Sie sich im Bereich Ziel den Wert des Felds Speicherort. Hier wurden die Delta-Tabellen in DBFS erstellt.

Wenn Sie nach diesem Schritt Änderungen an Ihrem Bündel vornehmen, sollten Sie die Schritte 6 bis 8 wiederholen, um zu überprüfen, ob Ihre Bündelkonfiguration noch gültig ist, das Projekt erneut bereitstellen und dieses Projekt ausführen.

Schritt 9: Bereinigen

In diesem Schritt löschen Sie das bereitgestellte Notebook und die Delta Live Tables-Pipeline aus Ihrem Arbeitsbereich.

  1. Verwenden Sie die Databricks CLI, um den Befehl bundle destroy folgendermaßen auszuführen:

    databricks bundle destroy
    
  2. Bestätigen Sie die Löschanforderung für die Delta Live Tables-Pipeline: Wenn Sie aufgefordert werden, die Ressourcen dauerhaft zu löschen, geben Sie y ein und drücken Sie Enter.

  3. Bestätigen Sie die Löschanforderung für das Notebook: Wenn Sie aufgefordert werden, den zuvor bereitgestellten Ordner und alle seine Dateien dauerhaft zu löschen, geben Sie y ein und drücken Sie Enter.

Durch Ausführen des Befehls bundle destroy werden nur die bereitgestellte Delta Live Tables-Pipeline und der Ordner gelöscht, der die beiden bereitgestellten Notebooks enthält. Dieser Befehl löscht keine Nebeneffekte, wie z. B. die Delta-Tabellen, die das Notebook in DBFS erstellt hat. Wenn Sie diese Delta-Tabellen löschen müssen, müssen Sie dies manuell tun.

Hinzufügen einer vorhandenen Pipelinedefinition zu einem Bündel

Sie können eine vorhandene Delta Live Tables-Pipelinedefinition als Grundlage verwenden, um eine neue Pipeline in einer Bündelkonfigurationsdatei zu definieren. Führen Sie dazu folgende Schritte aus.

Hinweis

Mit den folgenden Schritten wird eine neue Pipeline erstellt, die die gleichen Einstellungen wie die vorhandene Pipeline aufweist. Die neue Pipeline verfügt jedoch über eine andere Pipeline-ID als die vorhandene Pipeline. Sie können eine vorhandene Pipeline-ID nicht automatisch in ein Bündel importieren.

Schritt 1: Abrufen der vorhandenen Pipelinedefinition im JSON-Format

In diesem Schritt verwenden Sie die Benutzeroberfläche des Azure Databricks-Arbeitsbereichs, um die JSON-Darstellung der vorhandenen Pipelinedefinition abzurufen.

  1. Klicken Sie auf der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Workflows.
  2. Klicken Sie auf der Registerkarte Delta Live Tables auf den Link Name für Ihre Pipeline.
  3. Klicken Sie zwischen den Schaltflächen Berechtigungen und Zeitplan auf die Schaltfläche Einstellungen.
  4. Klicken Sie auf die Schaltfläche JSON.
  5. Kopieren Sie die JSON-Datei der Pipelinedefinition.

Schritt 2: Konvertieren der Pipelinedefinition aus dem JSON- in das YAML-Format

Bei der Pipelinedefinition, die Sie aus dem vorherigen Schritt kopiert haben, handelt es sich um eine Datei im JSON-Format. Bündelkonfigurationen sind Dateien im YAML-Format. Sie müssen die Pipelinedefinition aus dem JSON- in das YAML-Format konvertieren. Es wird von Databricks empfohlen, die folgenden Ressourcen zum Konvertieren von Dateien aus dem JSON- in das YAML-Format zu verwenden:

Schritt 3: Hinzufügen der Pipelinedefinition als YAML-Code zu einer Bündelkonfigurationsdatei

Fügen Sie in Ihrer Bündelkonfigurationsdatei den YAML-Code, den Sie aus dem vorherigen Schritt kopiert haben, folgendermaßen zu einem der folgenden Speicherorte hinzu, die mit <pipeline-yaml-can-go-here> in Ihren Bündelkonfigurationsdateien gekennzeichnet sind:

resources:
  pipelines:
    <some-unique-programmatic-identifier-for-this-pipeline>:
      <pipeline-yaml-can-go-here>

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      pipelines:
        <some-unique-programmatic-identifier-for-this-pipeline>:
          <pipeline-yaml-can-go-here>

Schritt 4: Hinzufügen von Notebooks, Python-Dateien und anderen Artefakten zum Bündel

Alle Python-Dateien und Notebooks, auf die in der vorhandenen Pipeline verwiesen wird, sollten in die Quellen des Bündels verschoben werden.

Um eine bessere Kompatibilität mit Bündeln zu gewährleisten, sollten Notebooks das IPython-Notebookformat (.ipynb) verwenden. Wenn Sie das Bündel lokal entwickeln, können Sie ein vorhandenes Notebook aus einem Azure Databricks-Arbeitsbereich in das .ipynb-Format exportieren, indem Sie auf der Benutzeroberfläche des Azure Databricks-Notebooks auf Datei > Exportieren > IPython-Notebook klicken. Das heruntergeladene Notebook sollten Sie dann per Konvention in das src/-Verzeichnis in Ihrem Bündel einfügen.

Stellen Sie nach dem Hinzufügen Ihrer Notebooks, Python-Dateien und anderen Artefakte zum Bündel sicher, dass Ihre Pipelinedefinition auf diese verweist. Für ein Notebook mit dem Dateinamen hello.ipynb, das sich in einem src/-Verzeichnis befindet, wobei sich das src/-Verzeichnis wiederum im selben Ordner wie die Bündelkonfigurationsdatei befindet, die auf das src/-Verzeichnis verweist, könnte die Pipelinedefinition beispielsweise folgendermaßen ausgedrückt werden:

resources:
  pipelines:
    hello-pipeline:
      name: hello-pipeline
      libraries:
      -
        notebook:
          path: ./src/hello.ipynb

Schritt 5: Überprüfen, Bereitstellen und Ausführen der neuen Pipeline

  1. Überprüfen Sie die syntaktische Korrektheit der Bündelkonfigurationsdateien, indem Sie den folgenden Befehl ausführen:

    databricks bundle validate
    
  2. Stellen Sie das Bündel mit dem folgenden Befehl bereit. Ersetzen Sie in diesem Befehl <target-identifier> durch den eindeutigen programmgesteuerten Bezeichner für das Ziel aus der Bündelkonfiguration:

    databricks bundle deploy -t <target-identifier>
    
  3. Führen Sie die Pipeline mit dem folgenden Befehl aus. Ersetzen Sie in diesem Befehl Folgendes:

    • Ersetzen Sie <target-identifier> durch den eindeutigen programmgesteuerten Bezeichner für das Ziel aus der Bündelkonfiguration.
    • Ersetzen Sie <pipeline-identifier> durch den eindeutigen programmgesteuerten Bezeichner für die Pipeline aus der Bündelkonfiguration.
    databricks bundle run -t <target-identifier> <pipeline-identifier>