Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Important
Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administrar versiones preliminares de Azure Databricks.
En esta página se muestra cómo crear una canalización de ingesta de GitHub administrada mediante Databricks Lakeflow Connect.
Requirements
Para crear una canalización de ingesta, primero debe cumplir los siguientes requisitos:
Su área de trabajo debe estar habilitada para Unity Catalog.
La computación sin servidor debe estar habilitada para tu espacio de trabajo. Consulte Requisitos de proceso sin servidor.
Para crear una nueva conexión, debe tener privilegios
CREATE CONNECTIONsobre el metastore. Consulte Administración de privilegios en Unity Catalog.Si el conector admite la creación de canalizaciones basadas en la interfaz de usuario, un administrador puede crear la conexión y la canalización al mismo tiempo completando los pasos de esta página. Sin embargo, si los usuarios que crean canalizaciones usan la creación de canalizaciones basadas en API o son usuarios que no son administradores, un administrador debe crear primero la conexión en el Explorador de catálogos. Consulte Conexión a orígenes de ingesta administrados.
Para usar una conexión existente, debe tener
USE CONNECTIONprivilegios oALL PRIVILEGESen el objeto de conexión.Debe tener
USE CATALOGprivilegios en el catálogo de destino.Debe tener privilegios
USE SCHEMAyCREATE TABLEen un esquema existente o privilegiosCREATE SCHEMAen el catálogo de destino.
Para ingerir desde GitHub, primero debe completar los pasos descritos en Crear una conexión de GitHub.
Creación de una canalización de ingesta
Cada tabla de origen se ingiere en una tabla de transmisión. Para obtener una lista de las tablas de origen admitidas, consulte Datos admitidos.
Interfaz de usuario de Databricks
- En la barra lateral del área de trabajo de Azure Databricks, haga clic en Ingesta de datos.
- En la página Add data, en Databricks connectors, haga clic en GitHub.
- En la página Connection del Asistente para ingesta, seleccione la conexión que almacena las credenciales de acceso de GitHub. Si tiene el privilegio
CREATE CONNECTIONen el metastore, puede hacer clic enCrear conexión para crear una nueva conexión con los datos de autenticación de Crear una conexión de GitHub.
- Haga clic en Next.
- En la página Configuración de ingesta , escriba un nombre único para la canalización.
- Seleccione un catálogo y un esquema en el que escribir registros de eventos. Si tiene los privilegios
USE CATALOGyCREATE SCHEMAsobre el catálogo, puede hacer clic enCrear esquema en el menú desplegable para crear un nuevo esquema.
- Haga clic en Crear canalización y continúe.
- En la página Origen , seleccione las tablas que se van a ingerir.
- Haga clic en Guardar y continuar.
- En la página Destino , seleccione un catálogo y un esquema en el que cargar datos. Si tiene los privilegios
USE CATALOGyCREATE SCHEMAsobre el catálogo, puede hacer clic enCrear esquema en el menú desplegable para crear un nuevo esquema.
- Haga clic en Guardar y continuar.
- (Opcional) En la página Programaciones y notificaciones , haga clic en
Crear programación. Establezca la frecuencia para actualizar las tablas de destino.
- (Opcional) Haga clic en
Agregue una notificación para establecer notificaciones por correo electrónico para que la operación de canalización se complete correctamente o no y, a continuación, haga clic en Guardar y ejecutar canalización.
Agrupaciones de automatización declarativa
Utilice paquetes de automatización declarativa para administrar canalizaciones de GitHub como código. Las agrupaciones pueden contener definiciones de YAML de trabajos y tareas, se administran mediante la CLI de Databricks y se pueden compartir y ejecutar en diferentes áreas de trabajo de destino (como desarrollo, almacenamiento provisional y producción). Para obtener más información, consulte ¿Qué son los conjuntos de automatización declarativos?.
Cree una nueva agrupación mediante la CLI de Databricks:
databricks bundle initAgregue dos nuevos archivos de recursos al lote:
- Un archivo de definición de canalización (por ejemplo,
resources/github_pipeline.yml). Consulte pipeline.ingestion_definition y ejemplos. - Un archivo de definición de trabajo que controla la frecuencia de ingesta de datos (por ejemplo,
resources/github_job.yml).
- Un archivo de definición de canalización (por ejemplo,
Implemente la canalización mediante la CLI de Databricks:
databricks bundle deploy
Notebook de Databricks
Importe el cuaderno siguiente en el área de trabajo de Azure Databricks:
Deje la celda uno tal cual.
Modifique la celda tres con los detalles de configuración de la canalización. Consulte pipeline.ingestion_definition y ejemplos.
Haga clic en Ejecutar todo.
Ejemplos
Use estos ejemplos para configurar la canalización. El campo source_schema especifica el nombre de la organización de GitHub desde el que se va a ingerir. El destination_table nombre es opcional; si no proporciona uno, el conector usa el source_table nombre.
Ingesta de una sola tabla de origen
Agrupaciones de automatización declarativa
El siguiente archivo de definición de canalización ingiere una sola tabla de origen:
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 de Databricks
A continuación se muestra una especificación de canalización de ejemplo que ingiere una sola tabla de origen:
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)
Ingesta de varias tablas de origen
Agrupaciones de automatización declarativa
El siguiente archivo de definición de canalización ingiere varias tablas de origen:
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 de Databricks
A continuación se muestra una especificación de canalización de ejemplo que ingiere varias tablas de origen:
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)
Archivo de definición de trabajo por lotes
A continuación se muestra un archivo de definición de trabajo de ejemplo que se usará con Paquetes de Automatización Declarativa. La tarea se ejecuta todos los días, exactamente 24 horas después de la ejecución anterior.
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}
Patrones comunes
Para conocer las configuraciones avanzadas de canalización, consulte Patrones comunes para canalizaciones de ingesta administradas.
Pasos siguientes
Inicie, programe y establezca alertas en su flujo de trabajo. Consulte Tareas comunes de mantenimiento de canalización.