Modos de implantação do pacote ativo do Databricks
Este artigo descreve a sintaxe dos modos de implantação do Databricks ativo Bundle . Os pacotes permitem o gerenciamento programático do fluxo de trabalho do Databricks. Consulte O que são pacotes Databricks ativos?
No CI/CD fluxo de trabalho, os desenvolvedores normalmente codificam, testam, implantam e executam soluções em várias fases ou modos. Por exemplo, o conjunto mais simples de modos inclui um modo de desenvolvimento para validação de pré-produção, seguido por um modo de produção para entregas validadas. Databricks O ativo Bundles fornece uma coleção opcional de comportamentos default que correspondem a cada um desses modos. Para usar esses comportamentos para um alvo específico, defina mode
ou configure presets
para um alvo no mapeamento de configuração targets
. Para obter informações sobre targets
, consulte mapeamento de alvos de configuração de pacotes.
Modo de desenvolvimento
Para implantar seu pacote no modo de desenvolvimento, você deve primeiro adicionar o mapeamento mode
, definido como development
, ao destino pretendido. Por exemplo, este alvo denominado dev
é tratado como um alvo de desenvolvimento:
targets:
dev:
mode: development
A implantação de um alvo no modo de desenvolvimento por meio da execução do comando databricks bundle deploy -t <target-name>
implementa os seguintes comportamentos, que podem ser personalizados com o uso de predefinições:
Acrescenta todos os recursos que não são implantados como arquivos ou Notebook com o prefixo
[dev ${workspace.current_user.short_name}]
e tags s cada Job e pipeline implantado comdev
tags do Databricks .Marca todos os pipeline Delta Live Tables implantados relacionados como
development: true
. Consulte Usar o modo de desenvolvimento para atualizações de pipeline de execução.Permite o uso de
--compute-id <cluster-id>
em chamadas relacionadas ao comandobundle deploy
, que substitui toda e qualquer definição clusters existente que já esteja especificada no arquivo de configuração do pacote configurável relacionado. Em vez de usar--compute-id <cluster-id>
em chamadas relacionadas ao comandobundle deploy
, você pode definir o mapeamentocompute_id
aqui, ou como um mapeamento filho do mapeamentobundle
, para o ID dos clusters a serem usados.pausa todos os programar e aciona os recursos implantados, como monitores de trabalho ou de qualidade. Desativar a programação e os acionadores de um Job individual, definindo
schedule.pause_status
comoUNPAUSED
.Permite a execução concorrente em todos os trabalhos implantados para uma iteração mais rápida. Desative a execução concorrente para um Job individual, definindo
max_concurrent_runs
como1
.Desativa o bloqueio de implantação para uma iteração mais rápida. Esse bloqueio evita conflitos de implantação que provavelmente não ocorrerão no modo de desenvolvimento. Reative o bloqueio definindo
bundle.deployment.lock.enabled
comotrue
.
Modo de produção
Para implantar seu pacote no modo de produção, primeiro você deve adicionar o mapeamento mode
, definido como production
, ao destino pretendido. Por exemplo, este destino denominado prod
é tratado como um destino de produção:
targets:
prod:
mode: production
A implantação de um alvo no modo de produção por meio da execução do comando databricks bundle deploy -t <target-name>
implementa os seguintes comportamentos:
Valida que todos os pipelines Delta Live Tables implantados relacionados estão marcados como
development: false
.Valida se a ramificação atual do Git é igual à ramificação do Git especificada no destino. A especificação de uma ramificação Git no destino é opcional e pode ser feita com uma propriedade
git
adicional, conforme a seguir:git: branch: main
Esta validação pode ser substituída especificando
--force
durante a implantação.Databricks recomenda que o senhor use a entidade de serviço para implementações de produção. O senhor pode impor isso definindo
run_as
como uma entidade de serviço. Consulte gerenciar entidade de serviço e Specify a execution identity for a Databricks ativo Bundles fluxo de trabalho. Se o senhor não usar a entidade de serviço, observe os seguintes comportamentos adicionais:Valida que os mapeamentos
artifact_path
,file_path
,root_path
oustate_path
não são substituídos por um usuário específico.Valida se os mapeamentos
run_as
epermissions
estão especificados para esclarecer quais identidades têm permissões específicas para implantações.
Diferentemente do comportamento anterior para definir o mapeamento
mode
comodevelopment
, definir o mapeamentomode
comoproduction
não permite substituir nenhuma definição de cluster existente especificada no arquivo de configuração do pacote relacionado, por exemplo, usando a opção--compute-id <cluster-id>
ou o mapeamentocompute_id
.
Predefinições personalizadas
Databricks O ativo Bundles oferece suporte a predefinições configuráveis para alvos, o que permite que o senhor personalize os comportamentos dos alvos. As predefinições disponíveis estão listadas na tabela a seguir:
Preset |
Descrição |
---|---|
|
As cadeias de caracteres de prefixo a serem anexadas aos nomes de recurso. |
|
Se o pipeline está ou não em modo de desenvolvimento. Os valores válidos são |
|
Um status de pausa a ser aplicado a todos os acionadores e programadores. Os valores válidos são |
|
O número máximo de execuções concorrente permitidas para o trabalho. |
|
Um conjunto de key:value tags que se aplica a todos os recursos que suportam tags, o que inclui Job e experimentos. Databricks Os pacotes ativos não são compatíveis com o site tags para o recurso |
Observação
Se ambos mode
e presets
estiverem definidos, as predefinições substituirão o comportamento do modo default e as configurações dos recursos individuais substituirão as predefinições. Por exemplo, se um programar estiver definido como UNPAUSED
, mas a predefinição trigger_pause_status
estiver definida como PAUSED
, o programar não será pausado.
O exemplo a seguir mostra uma configuração de predefinições personalizadas para o alvo chamada dev
:
targets:
dev:
presets:
name_prefix: "testing_" # prefix all resource names with testing_
pipelines_development: true # set development to true for pipelines
trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
tags:
department: finance