Ingerir dados do Workday HCM
Beta
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.
Esta página mostra como criar um pipeline de ingestão do Workday Human Capital Management (HCM) usando LakeFlow Connect.
Requisitos
-
Para criar um pipeline de ingestão, você deve primeiro:
-
Seu workspace deve estar habilitado para o Unity Catalog.
-
compute sem servidor (serverless compute) deve estar habilitado para seu workspace. Consulte os requisitos compute sem servidor.
-
Se você planeja criar uma nova conexão: Você deve ter privilégios
CREATE CONNECTIONno metastore.Se o conector suportar a criação pipeline baseada em interface de usuário, um administrador poderá criar a conexão e o pipeline simultaneamente, concluindo os passos desta página. No entanto, se os usuários que criam pipelines utilizarem a criação pipeline baseada em API ou não forem administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Consulte Conectar para gerenciar fontes de ingestão.
-
Se você planeja 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 privilégios
USE SCHEMAeCREATE TABLEem um esquema existente ou privilégiosCREATE SCHEMAno catálogo de destino.
-
Para importar dados do Workday HCM, você deve primeiro concluir as etapas descritas em Configurar a autenticação no Workday HCM.
Crie um pipeline de ingestão.
Cada tabela de origem é inserida em uma tabela de transmissão. Para obter uma lista das tabelas de origem compatíveis, consulte Dados compatíveis.
- Databricks Asset Bundles
- Databricks notebook
Use pacotes ativos Databricks para gerenciar o pipeline do Workday HCM como código. Os pacotes podem conter definições YAML de Job e tarefa, são gerenciados usando a CLI Databricks e podem ser compartilhados e executados em diferentes espaços de trabalho de destino (como desenvolvimento, teste e produção). Para mais informações, consulte O que são pacotes Databricks ativos?.
-
Crie um novo pacote usando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione dois novos arquivos de recursos ao pacote:
- Um arquivo de definição de pipeline (
resources/workday_hcm_pipeline.yml). Consulte pipeline.ingestion_definition e exemplos. - Um arquivo de definição de trabalho que controla a frequência de ingestão de dados (
resources/workday_hcm_job.yml).
- Um arquivo de definição de pipeline (
-
Implante o pipeline usando a CLI Databricks :
Bashdatabricks bundle deploy
- Importe o seguinte Notebook para o seu workspace Databricks :
-
Deixe a célula um e a célula dois como estão. Não modifique o código.
-
Modifique a célula três com os detalhes da configuração do seu pipeline. Consulte pipeline.ingestion_definition e exemplos.
-
Clique em Executar tudo .
Exemplos
Utilize esses exemplos para configurar seu pipeline.
Ingerir uma única tabela de origem
- Databricks Asset Bundles
- Databricks notebook
O seguinte arquivo 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 workday_hcm_dab
resources:
pipelines:
pipeline_workday_hcm:
name: workday_hcm_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <workday-hcm-connection>
objects:
# An array of objects to ingest from Workday HCM. This example ingests the workers table.
- table:
source_schema: default
source_table: workers
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
A seguinte especificação de pipeline ingere uma única tabela de origem:
pipeline_spec = {
"name": "workday-hcm-pipeline",
"catalog": "main",
"schema": "ingest_destination_schema",
"ingestion_definition": {
"connection_name": "<workday-hcm-connection>",
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "workers",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir várias tabelas de origem
- Databricks Asset Bundles
- Databricks notebook
O seguinte arquivo de definição de pipeline ingere várias tabelas de origem:
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for workday_hcm_dab
resources:
pipelines:
pipeline_workday_hcm:
name: workday_hcm_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <workday-hcm-connection>
objects:
# An array of objects to ingest from Workday HCM.
- table:
source_schema: default
source_table: workers
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: default
source_table: payroll
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
A seguinte especificação de pipeline ingere várias tabelas de origem:
pipeline_spec = {
"name": "workday-hcm-pipeline",
"catalog": "main",
"schema": "ingest_destination_schema",
"ingestion_definition": {
"connection_name": "<workday-hcm-connection>",
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "workers",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
},
{
"table": {
"source_schema": "default",
"source_table": "payroll",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Arquivo de fluxo de trabalho do pacote
Segue abaixo um exemplo de arquivo de definição de tarefa para uso com os Bundles Ativo Databricks . A execução do trabalho ocorre todos os dias, exatamente um dia após a última execução.
resources:
jobs:
workday_hcm_dab_job:
name: workday_hcm_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_workday_hcm.id}
Padrões comuns
Para configurações avançadas pipeline , consulte Padrões comuns para gerenciar pipeline de ingestão.
Próximos passos
começar, programar e definir alerta em seu pipeline. Consulte Tarefa comum de manutenção pipeline.