Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.
Esta página mostra como criar um pipeline de ingestão GitHub gerido usando o Databricks Lakeflow Connect.
Requirements
Para criar um pipeline de ingestão, deve primeiro cumprir os seguintes requisitos:
Seu espaço de trabalho deve estar habilitado para o Catálogo Unity.
A computação sem servidor deve ser habilitada para seu espaço de trabalho. Consulte Requisitos de computação sem servidor.
Para criar uma nova ligação, tens de ter
CREATE CONNECTIONprivilégios na metastore. Consulte Gerenciar privilégios no Catálogo Unity.Se o conector oferecer suporte à criação de pipeline baseada em interface do usuário, um administrador poderá criar a conexão e o pipeline ao mesmo tempo concluindo as etapas nesta página. No entanto, se os usuários que criam pipelines usam a criação de pipeline baseada em API ou são usuários não administradores, um administrador deve primeiro criar a conexão no Gerenciador de Catálogos. Consulte Conectar-se a fontes de ingestão gerenciadas.
Para usar uma ligação existente, deve ter
USE CONNECTIONprivilégios ouALL PRIVILEGESsobre o objeto de ligação.Você deve ter
USE CATALOGprivilégios no catálogo de destino.Você deve ter
USE SCHEMAeCREATE TABLEprivilégios em um esquema existente ouCREATE SCHEMAprivilégios no catálogo de destino.
Para ingerir a partir de GitHub, deve primeiro completar os passos em Criar uma ligação GitHub.
Criar um fluxo de ingestão
Cada tabela de origem é importada numa tabela de streaming. Para uma lista de tabelas de origem suportadas, veja Dados suportados.
Interface do usuário do Databricks
- Na barra lateral do espaço de trabalho do Azure Databricks, clique em Ingestão de Dados.
- Na página Add data, em Databricks conectores, clique em GitHub.
- Na página Connection do assistente de ingestão, selecione a ligação que armazena as suas credenciais de acesso GitHub. Se tiver o privilégio
CREATE CONNECTIONna metastore, pode clicar emCriar ligação para criar uma nova ligação com os detalhes de autenticação em Criar uma ligação GitHub.
- Clique em Next.
- Na página de Configuração de Ingestão , introduza um nome único para o pipeline.
- Selecione um catálogo e um esquema para escrever registos de eventos. Se tiver
USE CATALOGeCREATE SCHEMAprivilégios no catálogo, pode clicar no íconeCriar esquema no menu suspenso para criar um novo esquema.
- Clique em Criar pipeline e continue.
- Na página Origem , selecione as tabelas a serem ingeridas.
- Clique em Salvar e continuar.
- Na página de Destino , selecione um catálogo e um esquema para carregar dados. Se tiver
USE CATALOGeCREATE SCHEMAprivilégios no catálogo, pode clicar no íconeCriar esquema no menu suspenso para criar um novo esquema.
- Clique em Salvar e continuar.
- (Opcional) Na página de Horários e notificações , clique
Crie um horário. Defina a frequência para atualizar as tabelas de destino.
- (Opcional)
Adicione uma notificação para definir notificações por email para o sucesso ou fracasso da operação do pipeline, depois clique em Guardar e executar pipeline.
Pacotes de Automação Declarativa
Use Declarative Automation Bundles para gerir os pipelines do GitHub como código. Os pacotes podem conter definições YAML de trabalhos e tarefas, são gerenciados usando a CLI do Databricks e podem ser compartilhados e executados em diferentes espaços de trabalho de destino (como desenvolvimento, preparação e produção). Para mais informações, veja O que são os Pacotes de Automação Declarativa?.
Crie um novo pacote usando a CLI do Databricks:
databricks bundle initAdicione dois novos arquivos de recursos ao pacote:
- Um ficheiro de definição de pipeline (por exemplo,
resources/github_pipeline.yml). Veja pipeline.ingestion_definition e exemplos. - Um ficheiro de definição de funções que controla a frequência de ingestão de dados (por exemplo,
resources/github_job.yml).
- Um ficheiro de definição de pipeline (por exemplo,
Implante o pipeline usando a CLI do Databricks:
databricks bundle deploy
Caderno de Notas do Databricks
Importe o seguinte caderno para o seu espaço de trabalho Azure Databricks:
Deixe a célula um tal como está.
Modifica a célula três com os detalhes da configuração do teu pipeline. Veja pipeline.ingestion_definition e exemplos.
Clique Executar todos os.
Exemplos
Use estes exemplos para configurar o seu pipeline. O campo source_schema especifica o nome da organização do GitHub a partir da qual ingerir dados. O destination_table nome é opcional — se não fornecer um, o conector usa esse source_table nome.
Ingerir uma única tabela de fonte
Pacotes de Automação Declarativa
O seguinte ficheiro de definição de pipeline ingere uma única tabela de origem:
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}
Caderno de Notas do Databricks
Segue-se um exemplo de especificação de pipeline que processa uma única tabela fonte:
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)
Ingerir múltiplas tabelas de fonte
Pacotes de Automação Declarativa
O seguinte ficheiro de definição de pipeline ingere múltiplas tabelas fonte:
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}
Caderno de Notas do Databricks
Segue-se um exemplo de especificação de pipeline que ingere múltiplas tabelas de origem:
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)
Ficheiro de definição de tarefa em conjunto
Segue-se um exemplo de ficheiro de definição de trabalho para usar com Pacotes de Automação Declarativa. O trabalho executa-se todos os dias, exatamente um dia após a última execução.
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}
Padrões comuns
Para configurações avançadas de pipelines, consulte os Padrões comuns para pipelines de ingestão geridos.
Passos seguintes
Inicia, agenda e configura alertas no seu pipeline. Ver Tarefas comuns de manutenção de oleodutos.