Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.
Cette page montre comment créer un pipeline d’ingestion de GitHub managé à l’aide de Databricks Lakeflow Connect.
Requirements
Pour créer un pipeline d’ingestion, vous devez d’abord répondre aux exigences suivantes :
Vous devez activer votre espace de travail pour Unity Catalog.
Le calcul serverless doit être activé pour votre espace de travail. Consultez les exigences en matière de calcul serverless.
Pour créer une nouvelle connexion, vous devez disposer de privilèges
CREATE CONNECTIONsur le metastore. Consultez Gérer les privilèges dans Unity Catalog.Si le connecteur prend en charge la création de pipelines basée sur l’interface utilisateur, un administrateur peut créer la connexion et le pipeline en même temps en effectuant les étapes de cette page. Toutefois, si les utilisateurs qui créent des pipelines utilisent la création de pipelines basée sur l’API ou sont des utilisateurs non administrateurs, un administrateur doit d’abord créer la connexion dans l’Explorateur de catalogues. Consultez Se connecter aux sources d’ingestion managées.
Pour utiliser une connexion existante, vous devez disposer
USE CONNECTIONde privilèges ouALL PRIVILEGESsur l’objet de connexion.Vous devez disposer de privilèges
USE CATALOGsur le catalogue cible.Vous devez avoir les privilèges
USE SCHEMAetCREATE TABLEsur un schéma existant ou les privilègesCREATE SCHEMAsur le catalogue cible.
Pour ingérer à partir de GitHub, vous devez d’abord effectuer les étapes de Créer une connexion GitHub.
Créer un pipeline d’ingestion
Chaque table source est ingérée dans une table en flux continu. Pour obtenir la liste des tables sources prises en charge, consultez Données prises en charge.
Interface utilisateur Databricks
- Dans la barre latérale de l’espace de travail Azure Databricks, cliquez sur Ingestion de données.
- Dans la page Add data, sous Databricks connectors, cliquez sur GitHub.
- Dans la page Connection de l’Assistant d’ingestion, sélectionnez la connexion qui stocke vos informations d’identification d’accès GitHub. Si vous disposez du privilège
CREATE CONNECTIONsur le metastore, Vous pouvez cliquer surCréer une connexion pour créer une connexion avec les détails d’authentification dans Créer une connexion GitHub.
- Cliquez sur Suivant.
- Dans la page de configuration de l’ingestion , entrez un nom unique pour le pipeline.
- Sélectionnez un catalogue et un schéma pour écrire des journaux d’événements. Si vous disposez des privilèges
et sur le catalogue, vous pouvez cliquer sur dans le menu déroulant pour créer un nouveau schéma.l’icône Plus - Cliquez sur Créer un pipeline et continuez.
- Dans la page Source , sélectionnez les tables à ingérer.
- Cliquez sur Enregistrer et continuer.
- Dans la page Destination , sélectionnez un catalogue et un schéma dans lequel charger des données. Si vous disposez des privilèges
et sur le catalogue, vous pouvez cliquer sur dans le menu déroulant pour créer un nouveau schéma.l’icône Plus - Cliquez sur Enregistrer et continuer.
- (Facultatif) Dans la page Planifications et notifications , cliquez sur
Créez une planification. Définissez la fréquence pour actualiser les tables de destination.
- (Facultatif) Cliquez sur
Ajoutez une notification pour définir des notifications par e-mail pour la réussite ou l’échec de l’opération de pipeline, puis cliquez sur Enregistrer et exécuter le pipeline.
Paquets d'Automatisation déclarative
Utilisez des bundles Automation déclaratifs pour gérer les pipelines GitHub en tant que code. Les bundles peuvent contenir des définitions YAML de travaux et de tâches, sont gérés à l’aide de l’interface CLI Databricks et peuvent être partagés et exécutés dans différents espaces de travail cibles (tels que le développement, la préproduction et la production). Pour plus d’informations, consultez Qu’est-ce que Declarative Automation Bundles ?.
Créez un bundle à l’aide de l’interface CLI Databricks :
databricks bundle initAjoutez deux nouveaux fichiers de ressources à l’offre groupée :
- Fichier de définition de pipeline (par exemple,
resources/github_pipeline.yml). Consultez pipeline.ingestion_definition et des exemples. - Fichier de définition de travail qui contrôle la fréquence d’ingestion de données (par exemple).
resources/github_job.yml
- Fichier de définition de pipeline (par exemple,
Déployez le pipeline à l’aide de l’interface CLI Databricks :
databricks bundle deploy
Notebook Databricks
Importez le notebook suivant dans votre espace de travail Azure Databricks :
Laissez la cellule 1 telle quelle.
Modifiez la cellule 3 avec les détails de configuration de votre pipeline. Consultez pipeline.ingestion_definition et des exemples.
Cliquez sur Exécuter tout.
Exemples
Utilisez ces exemples pour configurer votre pipeline. Le champ source_schema spécifie le nom de l’organisation GitHub à partir duquel ingérer. Le destination_table nom est facultatif . Si vous ne le fournissez pas, le connecteur utilise le source_table nom.
Ingérer une table source unique
Paquets d'Automatisation déclarative
Le fichier de définition de pipeline suivant ingère une table source unique :
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}
Notebook Databricks
Voici un exemple de spécification de pipeline qui ingère une table source unique :
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)
Ingérer plusieurs tables sources
Paquets d'Automatisation déclarative
Le fichier de définition de pipeline suivant ingère plusieurs tables sources :
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}
Notebook Databricks
Voici un exemple de spécification de pipeline qui ingère plusieurs tables sources :
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)
Fichier de définition de tâche groupée
Voici un exemple de fichier de définition de tâche à utiliser avec des Declarative Automation Bundles. Le travail s’exécute tous les jours, exactement un jour à partir de la dernière exécution.
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}
Modèles courants
Pour connaître les configurations de pipeline avancées, consultez Modèles courants pour les pipelines d’ingestion managés.
Étapes suivantes
Démarrez, planifiez et définissez des alertes sur votre pipeline. Consultez les tâches courantes de maintenance de pipeline.
Ressources additionnelles
- limitations du connecteur GitHub
- Référence du connecteur GitHub