Ingerir dados do Asana
Beta
Esse recurso está em Beta. Para usá-lo, um administrador do workspace deve ativar o Lakeflow Connect para Asana na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
Crie um pipeline gerenciado do LakeFlow Connect que ingere dados do Asana em tabelas do Unity Catalog. Use a interface do usuário do Databricks, pacotes de automação declarativa ou um notebook do Databricks.
Requisitos
-
Para criar um pipeline de ingestão, primeiro cumpra os seguintes requisitos:
-
Seu workspace deve estar habilitado para o Unity Catalog.
-
O compute serverless deve estar habilitado para o seu workspace. Consulte Requisitos de compute Serverless.
-
Para criar uma nova conexão, você deve ter privilégios
CREATE CONNECTIONno metastore. Consulte Gerenciar privilégios no Unity Catalog.Se o conector oferecer suporte à criação de pipeline baseada em IU, um administrador poderá criar a conexão e o pipeline ao mesmo tempo completando os passos nesta página. No entanto, se os usuários que criam pipelines usarem a criação de pipeline baseada em API ou forem usuários não administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Consulte Conectar-se a fontes de ingestão gerenciadas.
-
Para usar uma conexão existente, você deve ter privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter privilégios
USE CATALOGno catálogo de destino. -
Você deve ter os privilégios
USE SCHEMAeCREATE TABLEem um esquema existente ou os privilégiosCREATE SCHEMAno catálogo de destino.
-
-
Para ingerir do Asana, primeiro configure a autenticação do Databricks e crie uma conexão. Consulte Configurar autenticação para Asana e Criar uma conexão Asana.
Criar um pipeline de ingestão
Para a lista de tabelas de origem suportadas, consulte Tabelas de origem suportadas.
- Databricks UI
- Declarative Automation Bundles
- Databricks notebook
- Na barra lateral do workspace do Databricks, clique em Ingestão de Dados .
- Na página Adicionar dados , em Conectores do Databricks , clique em Asana .
- Na página Conexão do assistente de ingestão, selecione a conexão que armazena suas credenciais do Asana. Se você tiver o privilégio
CREATE CONNECTIONno metastore, clique emCriar conexão para criar uma conexão com as credenciais de Configurar autenticação para o Asana.
- Clique em Avançar .
- Na página Configuração de ingestão , insira um nome para o pipeline.
- Selecione um catálogo e um esquema para gravar logs de eventos. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, clique emCriar esquema no menu suspenso para criar um esquema.
- Clique em Criar pipeline e continuar .
- Na página Origem , selecione as tabelas para ingestão.
- Clique em Salvar e continuar .
- Na página Destino , selecione um catálogo e um esquema para carregar os dados. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, clique emCriar esquema no menu suspenso para criar um esquema.
- Clique em Salvar e continuar .
- (Opcional) Na página Programar e notificações , clique em
Crie um programar . Defina a frequência para refresh das tabelas de destino.
- (Opcional) Clique em
Adicionar notificação para configurar notificações por email sobre o sucesso ou a falha da operação do pipeline e, em seguida, clique em Salvar e iniciar a execução do pipeline .
Use os Pacotes de Automação Declarativa para gerenciar pipelines do Asana como código. Os pacotes podem conter definições YAML de Jobs e tarefas, são gerenciados usando a CLI do Databricks e podem ser compartilhados e ter execução em diferentes Workspace de destino (como desenvolvimento, staging e produção). Consulte O que são os Pacotes de Automação Declarativa?.
-
Crie um pacote utilizando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione dois novos arquivos de recursos ao pacote:
- Um arquivo de definição de pipeline (por exemplo,
resources/asana_pipeline.yml). Veja pipeline.ingestion_definition e Exemplos. - Um arquivo de definição de job que controla a frequência de ingestão de dados (por exemplo,
resources/asana_job.yml).
- Um arquivo de definição de pipeline (por exemplo,
-
Implante o pipeline usando a CLI do Databricks:
Bashdatabricks bundle deploy
- Importe o seguinte notebook para o seu workspace do Databricks:
-
Deixe as células um e dois como estão.
-
Modifique a célula três com os detalhes da configuração do pipeline. Veja pipeline.ingestion_definition e Exemplos.
-
Opcionalmente, defina configurações avançadas de pipeline. Veja Padrões comuns para pipelines de ingestão gerenciados.
-
Clique em Executar tudo .
Exemplos
O conector do Asana disponibiliza 24 tabelas de origem no esquema de origem default. Ingira as tabelas necessárias.
Ingerir tabelas específicas
Use esta opção para ingerir um subconjunto específico de tabelas ou para personalizar a nomenclatura de destino por tabela.
- Declarative Automation Bundles
- Databricks notebook
O seguinte arquivo de definição de pipeline ingere tabelas individuais do Asana:
resources:
pipelines:
asana_pipeline:
name: asana_pipeline
catalog: 'main'
target: 'asana_data'
ingestion_definition:
connection_name: asana_connection
objects:
- table:
source_schema: 'default'
source_table: 'projects'
destination_catalog: 'main'
destination_schema: 'asana_data'
destination_table: 'projects'
- table:
source_schema: 'default'
source_table: 'tasks'
destination_catalog: 'main'
destination_schema: 'asana_data'
destination_table: 'tasks'
- table:
source_schema: 'default'
source_table: 'users'
destination_catalog: 'main'
destination_schema: 'asana_data'
destination_table: 'users'
A especificação de pipeline a seguir ingere tabelas individuais do Asana:
pipeline_name = "asana_pipeline"
connection_name = "<asana-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "projects",
"destination_catalog": "main",
"destination_schema": "asana_data",
"destination_table": "projects"
}
},
{
"table": {
"source_schema": "default",
"source_table": "tasks",
"destination_catalog": "main",
"destination_schema": "asana_data",
"destination_table": "tasks"
}
},
{
"table": {
"source_schema": "default",
"source_table": "users",
"destination_catalog": "main",
"destination_schema": "asana_data",
"destination_table": "users"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Arquivo de definição de job de Pacotes de Automação Declarativa
O exemplo a seguir é um arquivo de definição de job para uso com Declarative Automation Bundles. O Job é execução diariamente.
- Declarative Automation Bundles
resources:
jobs:
asana_job:
name: asana_job
schedule:
quartz_cron_expression: '0 0 0 * * ?'
timezone_id: 'UTC'
tasks:
- task_key: asana_ingestion
pipeline_task:
pipeline_id: ${resources.pipelines.asana_pipeline.id}
Padrões comuns
Para configurações avançadas de pipeline, consulte Padrões comuns para pipelines de ingestão gerenciados.
Os passos seguintes
Comece, programe e defina alertas em seu pipeline. Consulte Tarefas comuns de manutenção de pipeline.