Gegevens opnemen uit GitHub

Important

Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks previews beheren.

Op deze pagina ziet u hoe u een beheerde GitHub opnamepijplijn maakt met behulp van Databricks Lakeflow Connect.

Requirements

  • Als u een opnamepijplijn wilt maken, moet u eerst voldoen aan de volgende vereisten:

    • Uw werkruimte moet zijn ingeschakeld voor Unity Catalog.

    • Voor uw werkruimte moet serverloze rekenkracht ingeschakeld zijn. Zie serverloze rekenvereisten.

    • Als u een nieuwe verbinding wilt maken, moet u bevoegdheden hebben CREATE CONNECTION voor de metastore. Zie Beheer van bevoegdheden in Unity Catalog.

      Als de connector het ontwerpen van pijplijnen op basis van de gebruikersinterface ondersteunt, kan een beheerder de verbinding en de pijplijn tegelijkertijd maken door de stappen op deze pagina uit te voeren. Als de gebruikers die pijplijnen maken echter gebruikmaken van op API gebaseerde pijplijncreatie of niet-beheerders zijn, moet een beheerder eerst de verbinding maken in Catalog Explorer. Zie Verbinding maken met beheerde opnamebronnen.

    • Als u een bestaande verbinding wilt gebruiken, moet u bevoegdheden hebben USE CONNECTION of ALL PRIVILEGES voor het verbindingsobject.

    • Je moet USE CATALOG rechten op de doelcatalogus hebben.

    • U moet USE SCHEMA en CREATE TABLE bevoegdheden hebben voor een bestaand schema of CREATE SCHEMA bevoegdheden voor de doelcatalogus.

  • Als u gegevens uit GitHub wilt opnemen, moet u eerst de stappen onder Een GitHub-verbinding maken voltooien.

Een opnamepijplijn maken

Elke brontabel wordt opgenomen in een streamingtabel. Zie Ondersteunde gegevens voor een lijst met ondersteunde brontabellen.

Databricks-gebruikersinterface

  1. Klik in de zijbalk van de Azure Databricks-werkruimte op Gegevensopname.
  2. Klik op de pagina Toevoegingsgegevens onder Databricks-connectors op GitHub.
  3. Selecteer op de pagina Connection van de opnamewizard de verbinding waarin uw GitHub toegangsreferenties worden opgeslagen. Als u de bevoegdheid CREATE CONNECTION in de metastore hebt, u kunt klikken op Plus-pictogram. Verbinding maken om een nieuwe verbinding te maken met de verificatiedetails in Maak een GitHub-verbinding.
  4. Klik op Volgende.
  5. Voer op de pagina Invoerconfiguratie een unieke naam in voor de pijplijn.
  6. Selecteer een catalogus en een schema om gebeurtenislogboeken naar te schrijven. Als u de bevoegdheden USE CATALOG en CREATE SCHEMA op de catalogus hebt, kunt u op het pluspictogram klikken. Schema maken in de vervolgkeuzelijst om een nieuw schema te maken.
  7. Klik op Pijplijn maken en ga door.
  8. Selecteer op de pagina Bron de tabellen die u wilt opnemen.
  9. Klik op Opslaan en doorgaan.
  10. Selecteer op de doelpagina een catalogus en een schema om gegevens in te laden. Als u de bevoegdheden USE CATALOG en CREATE SCHEMA op de catalogus hebt, kunt u op het pluspictogram klikken. Schema maken in de vervolgkeuzelijst om een nieuw schema te maken.
  11. Klik op Opslaan en doorgaan.
  12. (Optioneel) Klik op de pagina Planningen en meldingen op Het pluspictogram. Maak een planning. Stel de frequentie in om de doeltabellen te vernieuwen.
  13. (Optioneel) Klik op pluspictogram. Voeg een melding toe om e-mailmeldingen in te stellen voor geslaagde of mislukte pijplijnen en klik vervolgens op Opslaan en pijplijn uitvoeren.

Declaratieve automatiseringsbundels

Gebruik declaratieve automationbundels om GitHub-pipelines als code te beheren. Bundels kunnen YAML-definities van taken en taken bevatten, worden beheerd met behulp van de Databricks CLI en kunnen worden gedeeld en uitgevoerd in verschillende doelwerkruimten (zoals ontwikkeling, fasering en productie). Zie Wat zijn declaratieve Automation-bundels? voor meer informatie.

  1. Maak een nieuwe bundel met behulp van de Databricks CLI:

    databricks bundle init
    
  2. Voeg twee nieuwe resourcebestanden toe aan de bundel:

    • Een pijplijndefinitiebestand (bijvoorbeeld resources/github_pipeline.yml). Zie pipeline.ingestion_definition en voorbeelden.
    • Een taakdefinitiebestand dat de frequentie van gegevensopname bepaalt (bijvoorbeeld resources/github_job.yml).
  3. Implementeer de pijplijn met behulp van de Databricks CLI:

    databricks bundle deploy
    

Databricks Notebook

  1. Importeer het volgende notebook in uw Azure Databricks-werkruimte:

    Notebook krijgen

  2. Laat cel één ongewijzigd.

  3. Wijzig cel drie met de configuratiegegevens van uw pijplijn. Zie pipeline.ingestion_definition en voorbeelden.

  4. Klik op Alleuitvoeren.

Examples

Gebruik deze voorbeelden om uw pijplijn te configureren. Het veld source_schema specificeert de naam van de GitHub-organisatie waaruit gegevens worden opgenomen. De naam destination_table is optioneel — als u er geen opgeeft, gebruikt de connector de naam source_table.

Eén brontabel opnemen

Declaratieve automatiseringsbundels

In het volgende pijplijndefinitiebestand wordt één brontabel opgenomen:

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 Notebook

Hier volgt een voorbeeld van een pijplijnspecificatie die één brontabel opneemt:

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)

Meerdere brontabellen opnemen

Declaratieve automatiseringsbundels

Het volgende pijplijndefinitiebestand neemt meerdere brontabellen op:

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 Notebook

Hier volgt een voorbeeld van een pijplijnspecificatie die meerdere brontabellen opneemt:

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)

Taakdefinitiebestand bundelen

Hier volgt een voorbeeld van een taakdefinitiebestand dat moet worden gebruikt met declaratieve Automation-bundels. De taak wordt elke dag uitgevoerd, precies één dag vanaf de laatste uitvoering.

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}

Algemene patronen

Zie Algemene patronen voor beheerde opnamepijplijnen voor geavanceerde pijplijnconfiguraties.

Volgende stappen 

Start, plan en stel waarschuwingen in voor uw pijplijn. Zie Algemene onderhoudstaken voor pijplijnen.

Aanvullende bronnen