Pular para o conteúdo principal

Configurar parâmetros de trabalho em pacotes de automação declarativa

As variáveis de pacote e os parâmetros de tarefa funcionam em conjunto nos Pacotes de Automação Declarativa para permitir que você substitua os valores padrão específicos do ambiente em tempo de execução. As variáveis de pacote são definidas na configuração e resolvidas durante a implantação. Os parâmetros Job são resolvidos durante a execução da tarefa, portanto, os valores default podem ser substituídos sem a necessidade de reimplantá-la.

Variáveis de pacote ou parâmetros de trabalho

Selecione se deseja usar variáveis ou parâmetros de tarefa com base em quando os valores devem ser alterados:

Se o valor mudar...

Uso

Exemplo

Por ambiente (desenvolvimento, teste, produção)

Variáveis de pacote

Tamanho do cluster, ID do armazém

Execução de trabalho

Parâmetros do job

Data de processamento, tabela de origem

Por tarefa, quando não existirem parâmetros de trabalho.

Tarefa base_parameters

Caminhos de arquivo específicos da tarefa

Defina os valores padrão dos parâmetros da tarefa usando variáveis.

Databricks recomenda o uso de variáveis de pacote como padrão para parâmetros de tarefas. Isso fornece um valor padrão específico para cada ambiente, que pode ser substituído em tempo de execução.

No exemplo a seguir, o parâmetro catalog assume o valor padrão biz_dev para uma implantação de desenvolvimento. O valor padrão é biz_prod para uma implantação de produção.

YAML
# databricks.yml
variables:
default_catalog:
description: Environment-specific catalog
default: dev_catalog

targets:
dev:
variables:
default_catalog: biz_dev
prod:
variables:
default_catalog: biz_prod

resources:
jobs:
etl_pipeline:
name: etl_pipeline
parameters:
- name: catalog
default: ${var.default_catalog}
- name: processing_date
default: '{{job.start_time.iso_date}}'
- name: mode
default: incremental
tasks:
- task_key: process_data
notebook_task:
notebook_path: ./notebooks/process.py

Limitações

A validação de pacote não permite nível de trabalho parameters e nível de tarefa base_parameters no mesmo trabalho. Essa restrição vem da API. Se você adicionar um bloco de nível de trabalho parameters , mova também todos os blocos de nível de tarefa base_parameters para o nível de trabalho.

YAML
resources:
jobs:
my_job:
parameters:
- name: catalog
default: dev
- name: schema
default: default
tasks:
- task_key: task1
notebook_task:
notebook_path: ./notebook.py

Se você precisar de parâmetros específicos da tarefa e não tiver um bloco parameters de nível de trabalho, use base_parameters na tarefa. Após adicionar quaisquer parâmetros de nível de trabalho, mova todos os parâmetros de tarefa para o nível de trabalho.

Substituir parâmetros em tempo de execução

Para substituir os valores dos parâmetros de um Job durante sua execução, passe os novos valores:

Use hífens duplos (--) para indicar que os sinalizadores de comando são parâmetros de Job. Consulte os parâmetros do Pass Job.

Bash
databricks bundle run my_job -- --catalog=prod --mode=full_refresh

Solução de problemas

As seções a seguir podem ajudá-lo a resolver alguns problemas comuns ao usar parâmetros de trabalho.

Os valores dos parâmetros não mudam durante a execução.

As variáveis do pacote são resolvidas no momento da implantação. Se você precisar que um valor seja sobrescrito em tempo de execução, defina-o como um parâmetro de Job com a variável bundle como seu default, não como uma referência ${var.name} no código da tarefa ou na configuração da tarefa. Após a implantação, os parâmetros padrão do Job podem ser alterados durante a execução, sem a necessidade de reimplantá-lo.

Parâmetros não disponíveis no Notebook

Se um parâmetro de tarefa não estiver disponível em um notebook, verifique todos os seguintes itens:

  • Os parâmetros são definidos na seção Job parameters .
  • O Notebook usa dbutils.widgets.get("name") para acessar cada parâmetro.
  • O nome do parâmetro corresponde exatamente, inclusive maiúsculas e minúsculas.
  • O pacote foi reimplantado após a adição ou renomeação de parâmetros.

Recursos adicionais