Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.
Diese Seite zeigt, wie Sie mithilfe von Databricks Lakeflow Connect eine verwaltete GitHub Aufnahmepipeline erstellen.
Requirements
Um eine Aufnahmepipeline zu erstellen, müssen Sie zuerst die folgenden Anforderungen erfüllen:
Ihr Arbeitsbereich muss für Unity Catalog aktiviert sein.
Serverlose Berechnung muss für Ihren Arbeitsbereich aktiviert sein. Siehe Serverlose Computeanforderungen.
Wenn Sie eine neue Verbindung erstellen möchten: Sie müssen über Berechtigungen auf den Metastore
CREATE CONNECTIONverfügen. Weitere Informationen finden Sie unter Verwalten von Berechtigungen in Unity Catalog.Wenn der Connector die benutzeroberflächenbasierte Pipelineerstellung unterstützt, kann ein Administrator die Verbindung und die Pipeline gleichzeitig erstellen, indem er die Schritte auf dieser Seite ausführt. Wenn die Benutzer, die Pipelines erstellen, jedoch API-basierte Pipelineerstellung verwenden oder Nicht-Administratorbenutzer sind, muss ein Administrator zuerst die Verbindung im Katalog-Explorer erstellen. Siehe Herstellen einer Verbindung mit verwalteten Aufnahmequellen.
Wenn Sie beabsichtigen, eine vorhandene Verbindung zu verwenden: Sie müssen über
USE CONNECTIONPrivilegien oderALL PRIVILEGESBerechtigungen für das Verbindungsobjekt verfügen.Sie müssen über
USE CATALOGBerechtigungen für den Zielkatalog verfügen.Sie müssen über
USE SCHEMA- undCREATE TABLE-Berechtigungen für ein vorhandenes Schema oderCREATE SCHEMA-Berechtigungen für den Zielkatalog verfügen.
Um Daten aus GitHub zu importieren, müssen Sie zunächst die Schritte unter Eine GitHub-Verbindung erstellen abschließen.
Erstellen einer Aufnahmepipeline
Jede Quelltabelle wird in eine Streamingtabelle eingelesen. Eine Liste der unterstützten Quelltabellen finden Sie unter "Unterstützte Daten".
Databricks UI
- Klicken Sie in der Randleiste des Azure Databricks-Arbeitsbereichs auf "Datenaufnahme".
- Klicken Sie auf der Seite Daten hinzufügen unter Databricks-Connectors auf GitHub.
- Wählen Sie auf der Seite Verbindung des Erfassungsassistenten die Verbindung aus, in der Ihre GitHub-Zugangsdaten gespeichert sind. Wenn Sie über das
CREATE CONNECTION-Privileg für den Metastore verfügen, Sie können aufVerbindung erstellen klicken, um eine neue Verbindung mit den Authentifizierungsdetails in Create a GitHub connection zu erstellen.
- Klicke auf Weiter.
- Geben Sie auf der Seite "Einrichtung der Datenaufnahme" einen eindeutigen Namen für die Pipeline ein.
- Wählen Sie einen Katalog und ein Schema aus, in das Ereignisprotokolle geschrieben werden sollen. Wenn Sie über die
- und -Berechtigungen im Katalog verfügen, können Sie auf das im Dropdown-Menü klicken, um ein neues Schema zu erstellen.Plus-Symbol - Klicken Sie auf "Pipeline erstellen", und fahren Sie fort.
- Wählen Sie auf der Seite "Quelle" die aufzunehmenden Tabellen aus.
- Klicken Sie auf Speichern und fortfahren.
- Wählen Sie auf der Seite "Ziel " einen Katalog und ein Schema aus, in das Daten geladen werden sollen. Wenn Sie über die
- und -Berechtigungen im Katalog verfügen, können Sie auf das im Dropdown-Menü klicken, um ein neues Schema zu erstellen.Plus-Symbol - Klicken Sie auf Speichern und fortfahren.
- (Optional) Klicken Sie auf der Seite "Zeitpläne und Benachrichtigungen " auf das
Zeitplan erstellen. Legen Sie die Häufigkeit fest, mit der die Zieltabellen aktualisiert werden.
- (Optional) Klicken Sie auf
Fügen Sie eine Benachrichtigung hinzu, um E-Mail-Benachrichtigungen für Erfolg oder Fehler des Pipelinevorgangs festzulegen, und klicken Sie dann auf " Speichern und Ausführen der Pipeline".
Deklarative Automatisierungspakete
Verwenden Sie deklarative Automatisierungspakete, um GitHub Pipelines als Code zu verwalten. Bundles können YAML-Definitionen von Aufträgen und Aufgaben enthalten, mithilfe der Databricks CLI verwaltet und in verschiedenen Zielarbeitsbereichen (z. B. Entwicklung, Staging und Produktion) freigegeben und ausgeführt werden. Weitere Informationen finden Sie unter Was sind deklarative Automatisierungs-Bundles?.
Erstellen Eines neuen Bündels mithilfe der Databricks CLI:
databricks bundle initFügen Sie dem Bundle zwei neue Ressourcendateien hinzu:
- Eine Pipelinedefinitionsdatei (z. B
resources/github_pipeline.yml. ). Siehe pipeline.ingestion_definition und Beispiele. - Eine Auftragsdefinitionsdatei, die die Häufigkeit der Datenaufnahme steuert (z. B.
resources/github_job.yml).
- Eine Pipelinedefinitionsdatei (z. B
Stellen Sie die Pipeline mithilfe der Databricks CLI bereit:
databricks bundle deploy
Databricks-Notizbuch
Importieren Sie das folgende Notizbuch in Ihren Azure Databricks-Arbeitsbereich:
Lassen Sie Zelle 1 unverändert.
Ändern Sie die dritte Zelle mit den Details der Pipelinekonfiguration. Siehe pipeline.ingestion_definition und Beispiele.
Klicken Sie auf Alle ausführen.
Beispiele
Verwenden Sie diese Beispiele, um Ihre Pipeline zu konfigurieren. Das Feld source_schema gibt den Namen der GitHub-Organisation an, aus der Daten erfasst werden sollen. Der destination_table Name ist optional – wenn Sie keinen angeben, verwendet der Connector den source_table Namen.
Einlesen einer einzelnen Quelltabelle
Deklarative Automatisierungspakete
Die folgende Pipeline-Definitionsdatei nimmt eine einzelne Quelltabelle auf.
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for github_dab
resources:
pipelines:
pipeline_github:
name: github_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <github-connection>
objects:
# An array of objects to ingest from GitHub. This example ingests the repositories table.
- table:
source_schema: <your_org_name>
source_table: repositories
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
Databricks-Notizbuch
Es folgt eine Beispiel-Pipelinespezifikation, die eine einzelne Quelltabelle importiert:
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<github-connection>",
"objects": [
{
"table": {
"source_schema": "<your_org_name>",
"source_table": "repositories",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Eingabe mehrerer Quelltabellen
Deklarative Automatisierungspakete
Die folgende Pipelinedefinitionsdatei nimmt mehrere Quelltabellen ein:
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for github_dab
resources:
pipelines:
pipeline_github:
name: github_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <github-connection>
objects:
# An array of objects to ingest from GitHub. This example ingests the repositories and pull_requests tables.
- table:
source_schema: <your_org_name>
source_table: repositories
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: <your_org_name>
source_table: pull_requests
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
Databricks-Notizbuch
Im Folgenden sehen Sie eine Beispielpipelinespezifikation, die mehrere Quelltabellen verarbeitet:
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<github-connection>",
"objects": [
{
"table": {
"source_schema": "<your_org_name>",
"source_table": "repositories",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
},
{
"table": {
"source_schema": "<your_org_name>",
"source_table": "pull_requests",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Bündel-Auftragsdefinitionsdatei
Es folgt eine Beispielauftragsdefinitionsdatei, die mit deklarativen Automatisierungspaketen verwendet werden soll. Der Job wird jeden Tag ausgeführt, genau einen Tag nach der letzten Ausführung.
resources:
jobs:
github_dab_job:
name: github_dab_job
trigger:
periodic:
interval: 1
unit: DAYS
email_notifications:
on_failure:
- <email-address>
tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.pipeline_github.id}
Allgemeine Muster
Weitere Informationen zu erweiterten Pipelinekonfigurationen finden Sie unter "Allgemeine Muster für verwaltete Aufnahmepipelinen".
Nächste Schritte
Starten Sie, planen Sie und legen Sie Benachrichtigungen für Ihre Pipeline fest. Siehe allgemeine Pipelinewartungsaufgaben.