Ingerir dados do Workday
Beta
Esse recurso está em Beta. Para usá-lo, um administrador do workspace deve ativar o Lakeflow Connect for Workday Activity Logging na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
Crie um pipeline de ingestão de logs de atividade do Workday gerenciado no Lakeflow Connect para ingerir eventos de logs de atividade do usuário no Databricks.
Requirements
-
Para criar um pipeline de ingestão, primeiro atenda aos 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 na interface do usuário, um administrador poderá criar a conexão e o pipeline ao mesmo tempo, concluindo os passos desta 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á criar primeiro a conexão no Catalog Explorer. Consulte Conectar-se a fontes de ingestão gerenciadas.
-
Para usar uma conexão existente, você deve ter os privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter os privilégios
USE CATALOGno catálogo de destino. -
You must have
USE SCHEMAandCREATE TABLEprivileges on an existing schema orCREATE SCHEMAprivileges on the target catalog.
-
-
Para ingerir dados do Workday, primeiro configure a autenticação no Databricks e crie uma conexão. Consulte Configurar a autenticação para o Workday e Criar uma conexão de registro de atividades do Workday.
Criar um pipeline de ingestão
Para ver a tabela de origem suportada, consulte Tabelas de origem suportadas.
- Declarative Automation Bundles
- Databricks notebook
Use Declarative Automation Bundles to gerenciar Workday Activity Logging pipelines as code. Bundles can contain YAML definitions of Jobs and tarefas, are gerenciados using the Databricks CLI, and can be shared and run in different target Workspaces (such as development, staging, and production). For more information, see What are Declarative Automation Bundles?.
-
Crie um pacote usando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione dois novos arquivos de recurso ao pacote:
- Um arquivo de definição de pipeline (por exemplo,
resources/workday_activity_logging_pipeline.yml). Consulte pipeline.ingestion_definition e Exemplos. - A Job definition file that controls the frequency of ingestão de dados (for example,
resources/workday_activity_logging_job.yml).
- Um arquivo de definição de pipeline (por exemplo,
-
Implantar 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, dois e três como estão. Não modifique.
-
Modifique a quarta célula com os detalhes de configuração do seu pipeline. Consulte pipeline.ingestion_definition e Exemplos.
-
Opcionalmente, configure as configurações avançadas do pipeline. Consulte Padrões comuns para pipelines de ingestão gerenciados.
-
Clique em Executar tudo .
Exemplos
O conector Workday Activity Logging disponibiliza 1 tabela de origem no esquema de origem default. Ingira a tabela ou o esquema inteiro.
Ingerir uma tabela específica
Use esta opção para personalizar a nomeação de destino para a tabela.
- Declarative Automation Bundles
- Databricks notebook
O seguinte arquivo de definição de pipeline ingere a tabela Workday Activity Logging:
resources:
pipelines:
workday_activity_logging_pipeline:
name: workday_activity_logging_pipeline
catalog: '<destination-catalog>'
target: '<destination-schema>'
channel: PREVIEW
ingestion_definition:
connection_name: '<workday-activity-logging-connection>'
objects:
- table:
source_schema: 'default'
source_table: 'activity_logging'
destination_catalog: '<destination-catalog>'
destination_schema: '<destination-schema>'
destination_table: '<destination-table>'
A especificação de pipeline a seguir ingere a tabela de logs de atividade do Workday:
pipeline_name = "workday_activity_logging_pipeline"
connection_name = "<workday-activity-logging-connection>"
pipeline_spec = {
"name": pipeline_name,
"catalog": "<catalog-name-for-event-logs>",
"schema": "<schema-name-for-event-logs>",
"channel": "PREVIEW",
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "activity_logging",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"destination_table": "<destination-table>"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir o esquema de origem
Use esta opção para ingerir o esquema de origem default com uma declaração. O esquema atualmente contém apenas a tabela activity_logging.
- Declarative Automation Bundles
- Databricks notebook
O seguinte arquivo de definição de pipeline ingere o esquema de origem default em um esquema de destino:
resources:
pipelines:
workday_activity_logging_pipeline:
name: workday_activity_logging_pipeline
catalog: '<destination-catalog>'
target: '<destination-schema>'
channel: PREVIEW
ingestion_definition:
connection_name: '<workday-activity-logging-connection>'
objects:
- schema:
source_schema: 'default'
destination_catalog: '<destination-catalog>'
destination_schema: '<destination-schema>'
The following pipeline specification ingests the default source schema into a destination schema:
pipeline_name = "workday_activity_logging_pipeline"
connection_name = "<workday-activity-logging-connection>"
pipeline_spec = {
"name": pipeline_name,
"catalog": "<catalog-name-for-event-logs>",
"schema": "<schema-name-for-event-logs>",
"channel": "PREVIEW",
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"schema": {
"source_schema": "default",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Arquivo de definição de job dos Pacotes de Automação Declarativa
O exemplo a seguir é um arquivo de definição de job para uso com os Pacotes de Automação Declarativa. O job é executado diariamente.
- Declarative Automation Bundles
resources:
jobs:
workday_activity_logging_job:
name: workday_activity_logging_job
schedule:
quartz_cron_expression: '0 0 0 * * ?'
timezone_id: 'UTC'
tasks:
- task_key: workday_activity_logging_ingestion
pipeline_task:
pipeline_id: ${resources.pipelines.workday_activity_logging_pipeline.id}
Padrões comuns
Para configurações avançadas de pipeline, consulte Padrões comuns para pipelines de ingestão gerenciados.
Passos seguintes
Começar, programar e definir alertas no seu pipeline. Consulte Tarefas comuns de manutenção de pipeline.