Acquisire dati da GitHub

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Questa pagina illustra come creare una pipeline di inserimento GitHub gestita usando Databricks Lakeflow Connect.

Requirements

  • Per creare una pipeline di inserimento, è prima necessario soddisfare i requisiti seguenti:

    • L'area di lavoro deve essere abilitata per Unity Catalog.

    • L'ambiente di calcolo serverless deve essere abilitato per l'area di lavoro. Consulta Requisiti di calcolo serverless.

    • Per creare una nuova connessione, è necessario disporre di privilegi CREATE CONNECTION sul metastore. Consulta Gestione dei privilegi in Unity Catalog.

      Se il connettore supporta la creazione di pipeline basate sull'interfaccia utente, un amministratore può creare la connessione e la pipeline contemporaneamente completando i passaggi in questa pagina. Tuttavia, se gli utenti che creano pipeline utilizzano pipeline create tramite API o sono utenti non amministratori, un amministratore deve prima creare la connessione in Esplora Cataloghi. Vedere Connettersi alle origini di inserimento gestite.

    • Per usare una connessione esistente, è necessario disporre dei privilegi USE CONNECTION o ALL PRIVILEGES sull'oggetto connessione.

    • È necessario disporre dei privilegi USE CATALOG sul catalogo di destinazione.

    • È necessario disporre di privilegi USE SCHEMA e CREATE TABLE su uno schema esistente o di privilegi CREATE SCHEMA sul catalogo di destinazione.

  • Per inserire da GitHub, è necessario prima completare i passaggi descritti in Creare una connessione GitHub.

Creare un flusso di inserimento dati

Ogni tabella di origine viene inserita in una tabella di streaming. Per un elenco delle tabelle di origine supportate, vedere Dati supportati.

Interfaccia utente di Databricks

  1. Nella barra laterale dell'area di lavoro di Azure Databricks fare clic su Inserimento dati.
  2. Nella pagina Aggiungi dati, in Connettori Databricks, fare clic su GitHub.
  3. Nella pagina Connection della procedura guidata di inserimento selezionare la connessione in cui sono archiviate le credenziali di accesso GitHub. Se si dispone del privilegio CREATE CONNECTION nel metastore, È possibile fare clic su Plusicona. Crea connessione per creare una nuova connessione con i dettagli di autenticazione in Creare una connessione GitHub.
  4. Fare clic su Avanti.
  5. Nella pagina Configurazione inserimento inserisci un nome univoco per la pipeline.
  6. Selezionare un catalogo e uno schema in cui scrivere i registri eventi. Se si dispone di USE CATALOG e CREATE SCHEMA privilegi sul catalogo, è possibile fare clic sull'icona Plus. Creare uno schema nel menu a discesa per creare un nuovo schema.
  7. Fare clic su Crea pipeline e continuare.
  8. Nella pagina Origine selezionare le tabelle da inserire.
  9. Fare clic su Salva e continua.
  10. Nella pagina Destinazione selezionare un catalogo e uno schema in cui caricare i dati. Se si dispone di USE CATALOG e CREATE SCHEMA privilegi sul catalogo, è possibile fare clic sull'icona Plus. Creare uno schema nel menu a discesa per creare un nuovo schema.
  11. Fare clic su Salva e continua.
  12. (Facoltativo) Nella pagina Pianificazioni e notifiche fare clic sull'icona Più. Creare una pianificazione. Impostare la frequenza per aggiornare le tabelle di destinazione.
  13. (Facoltativo) Fare clic sull'icona Con il segno più. Aggiungere una notifica per impostare le notifiche di posta elettronica per l'esito positivo o negativo dell'operazione della pipeline, quindi fare clic su Salva ed esegui pipeline.

Pacchetti di automazione dichiarativa

Usa i Bundle di automazione dichiarativa per gestire le pipeline GitHub come codice. I bundle possono contenere definizioni YAML di processi e attività, vengono gestiti tramite l'interfaccia della riga di comando di Databricks e possono essere condivisi ed eseguiti in aree di lavoro di destinazione diverse, ad esempio sviluppo, gestione temporanea e produzione. Per altre informazioni, vedere Che cosa sono i bundle di automazione dichiarativa?.

  1. Creare un nuovo bundle usando l'interfaccia della riga di comando di Databricks:

    databricks bundle init
    
  2. Aggiungere due nuovi file di risorse al bundle:

    • Un file di definizione della pipeline , ad esempio resources/github_pipeline.yml. Vedere pipeline.ingestion_definition ed esempi.
    • File di definizione del processo che controlla la frequenza di inserimento dei dati , ad esempio resources/github_job.yml.
  3. Distribuire la pipeline usando la CLI di Databricks.

    databricks bundle deploy
    

Notebook di Databricks

  1. Importare il notebook seguente nell'area di lavoro di Azure Databricks:

    Ottieni il notebook

  2. Lasciare la cella 1 così com'è.

  3. Modificare la cella 3 con i dettagli della configurazione della pipeline. Vedere pipeline.ingestion_definition ed esempi.

  4. Fare clic su Esegui tutto.

Examples

Usare questi esempi per configurare la pipeline. Il campo source_schema specifica il nome dell'organizzazione GitHub da cui inserire. Il destination_table nome è facoltativo. Se non ne viene specificato uno, il connettore usa il source_table nome.

Inserire una singola tabella di origine

Pacchetti di automazione dichiarativa

Il file di definizione della pipeline seguente inserisce una singola tabella di origine:

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 di Databricks

Di seguito è riportata una specifica di pipeline di esempio che inserisce una singola tabella di origine:

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)

Inserire più tabelle di origine

Pacchetti di automazione dichiarativa

Il file di definizione della pipeline seguente inserisce più tabelle di origine:

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 di Databricks

Di seguito è riportata una specifica di pipeline di esempio che inserisce più tabelle di origine:

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)

File di definizione dell'attività di raggruppamento

Di seguito è riportato un file di definizione del lavoro di esempio da usare con Bundle di Automazione Dichiarativa. L'attività viene eseguita ogni giorno, esattamente un giorno dopo l'ultima esecuzione.

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}

Modelli comuni

Per le configurazioni avanzate della pipeline, vedere Modelli comuni per le pipeline di inserimento gestite.

Passaggi successivi

Avvia, pianifica e imposta avvisi sulla tua pipeline. Vedere Attività comuni di manutenzione della pipeline.

Risorse aggiuntive

  • limitazioni del connettore GitHub
  • Informazioni di riferimento sul connettore GitHub