Desenvolvimento dos Pacotes de Ativos do Databricks
Este artigo descreve o desenvolvimento e o ciclo de vida de um Pacote de Ativos do Databricks. Para saber mais sobre os Pacotes de Ativos do Databricks, confira O que são os Pacotes de Ativos do Databricks?.
Ciclo de vida de um pacote
Para entender como usar pacotes de maneira eficaz, é importante entender o ciclo de vida básico de um pacote:
- A estrutura do pacote é criada com base em um projeto.
- O projeto do pacote é desenvolvido localmente. Um pacote contém arquivos de configuração que definem as configurações da infraestrutura e do workspace, como destinos de implantação, configurações para recursos do Databricks como trabalhos e pipelines, arquivos de origem e outros artefatos.
- O projeto do pacote é validado. A validação verifica as configurações e definições de recursos na configuração do pacote em relação aos esquemas de objeto correspondentes para garantir que ele seja implantável no Databricks.
- O pacote é implantado em um workspace de destino. Em geral, um pacote é implantado primeiro no workspace de desenvolvimento pessoal de um usuário para teste. Depois que o teste do pacote é concluído, ele pode ser implantado no ambiente de preparo e, em seguida, nos destinos de produção.
- Os recursos de fluxo de trabalho definidos no pacote implantado podem ser executados. Por exemplo, é possível executar um trabalho.
- Se o pacote não estiver mais sendo usado, ele poderá ser destruído permanentemente.
Use os comandos de pacote da CLI do Databricks para criar, validar, implantar, executar e destruir pacotes, conforme descrito nas seções a seguir.
Etapa 1: criar um pacote
Há três maneiras de começar a criar um pacote:
- Use o modelo de pacote padrão.
- Use um modelo de pacote personalizado.
- Crie um pacote manualmente.
Use um modelo de pacote padrão
Para usar um modelo de pacote padrão do Azure Databricks a fim de criar um pacote inicial que possa ser personalizado, use a CLI do Databricks versão 0.218.0 ou versões posteriores para executar o comando bundle init
, que permite escolher entre uma lista de modelos disponíveis. Confira Criar um pacote com base em um modelo de projeto.
databricks bundle init
Você pode visualizar a fonte dos modelos de pacote padrão nos repositórios públicos databricks/cli e databricks/mlops-stacks do Github.
Vá para Etapa 2: preencher os arquivos de configuração do pacote.
Use um modelo de pacote personalizado
Para utilizar um modelo de pacote diferente do modelo de pacote padrão do Azure Databricks, você deve conhecer o caminho local ou a URL para o local do modelo de pacote remoto. Use a CLI do Databricks versão 0.218.0 ou versões posteriores para executar o comando bundle init
da seguinte maneira:
databricks bundle init <project-template-local-path-or-url>
Para obter mais informações sobre esse comando, confira os modelos do projeto de Pacote de Ativos do Databricks. Para obter informações sobre um modelo de pacote específico, consulte a documentação do provedor de modelo de pacote.
Vá para Etapa 2: preencher os arquivos de configuração do pacote.
Criar um pacote manualmente
Para criar um pacote configurável manualmente em vez de usar um modelo de pacote configurável, crie um diretório de projeto em sua máquina local ou um repositório vazio com um provedor Git de terceiros.
Em seu diretório ou repositório, crie um ou mais arquivos de configuração de pacote configurável como entrada. Esses arquivos são expressos no formato YAML. Deve haver, no mínimo, um (e apenas um) arquivo de configuração de pacote chamado databricks.yml
. Arquivos de configuração de pacote configurável adicionais devem ser referenciados no include
mapeamento do arquivo databricks.yml
.
Para criar arquivos YAML com mais facilidade e rapidez que estejam em conformidade com a sintaxe de configuração do Pacote de Ativos do Databricks, use uma ferramenta como o Visual Studio Code, o PyCharm Professional ou o IntelliJ IDEA Ultimate que forneça suporte para arquivos YAML e arquivos de esquema JSON, da seguinte maneira:
Visual Studio Code
Adicione suporte ao servidor de linguagem YAML ao Visual Studio Code, por exemplo, instalando a extensão YAML do Visual Studio Code Marketplace.
Gere o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks versão 0.218.0 ou versões posteriores para executar o
bundle schema
comando e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.json
no diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.json
Use o Visual Studio Code para criar ou abrir um arquivo de configuração de pacote no diretório atual. Esse arquivo deve ser nomeado
databricks.yml
.Adicione o seguinte comentário ao início do arquivo de configurações do pacote:
# yaml-language-server: $schema=bundle_config_schema.json
Observação
No comentário anterior, se o arquivo de esquema JSON das configurações do Pacote de Ativos do Databricks estiver em um caminho diferente, substitua
bundle_config_schema.json
pelo caminho completo do arquivo de esquema.Use os recursos do servidor de linguagem YAML adicionados anteriormente. Para obter mais informações, consulte a documentação do servidor de linguagem YAML.
PyCharm Professional
Gere o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks versão 0.218.0 ou versões posteriores para executar o
bundle schema
comando e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.json
no diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.json
Configure o PyCharm para reconhecer o arquivo de esquema JSON de configuração de pacote e conclua o mapeamento de esquema JSON seguindo as instruções em Configurar um esquema JSON personalizado.
Use o PyCharm para criar ou abrir um arquivo de configuração de pacote. Esse arquivo deve ser nomeado
databricks.yml
. Conforme você digita, o PyCharm verifica a sintaxe e a formatação do esquema JSON e fornece dicas de conclusão de código.
IntelliJ IDEA Ultimate
Gere o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks versão 0.218.0 ou versões posteriores para executar o
bundle schema
comando e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.json
no diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.json
Configure o IntelliJ IDEA para reconhecer o arquivo de esquema JSON de configuração de pacote e conclua o mapeamento de esquema JSON seguindo as instruções em Configurar um esquema JSON personalizado.
Use o IntelliJ IDEA para criar ou abrir um arquivo de configuração de pacote. Esse arquivo deve ser nomeado
databricks.yml
. Conforme você digita, o IntelliJ IDEA verifica a sintaxe e a formatação do esquema JSON e fornece dicas de conclusão de código.
Etapa 2: preencher os arquivos de configuração do pacote
Os arquivos de configuração do pacote definem os fluxos de trabalho do Azure Databricks especificando configurações como detalhes do workspace, nomes de artefatos, localizações de arquivos, detalhes de trabalhos e detalhes de pipelines. Em geral, a configuração do pacote também contém destinos de implantação de desenvolvimento, preparo e produção. Para obter informações detalhadas sobre arquivos de configuração do pacote, consulte as Configurações do Pacote de Ativos do Databricks.
É possível usar o comando bundle generate
para gerar automaticamente a configuração do pacote para um recurso atual no workspace e, em seguida, usar bundle deployment bind
para vincular a configuração do pacote ao recurso no workspace e mantê-los sincronizados. Consulte Gerar um arquivo de configuração de pacote e Associar recursos do pacote.
Etapa 3: validar os arquivos de configuração do pacote
Antes de implantar artefatos ou executar um trabalho ou pipeline, verifique se as definições nos arquivos de configuração do pacote são válidas. Para isso, execute o comando bundle validate
no diretório raiz do projeto do pacote. Confira Validar um pacote.
databricks bundle validate
Se a validação for bem-sucedida, um resumo da identidade do pacote e uma mensagem de confirmação serão retornados. Para gerar o esquema, use o comando databricks bundle schema
. Confira Exibir o esquema de configuração do pacote.
Etapa 4: implantar o pacote
Antes de implantar o pacote, verifique se o workspace remoto tem arquivos de workspace habilitados. Consulte O que são Arquivos de workspace?.
Para implantar um pacote em um workspace remoto, execute o comando bundle deploy
na raiz do pacote, conforme descrito em Implantar um pacote. A CLI do Databricks é implantada no workspace de destino declarado nos arquivos de configuração do pacote. Confira destinos.
databricks bundle deploy
A identidade exclusiva de um pacote é definida pelo nome e destino dele e pela identidade do implantador. Quando esses atributos são idênticos em diferentes pacotes, a implantação dos pacotes sofre interferência. Confira Implantar um pacote para saber mais.
Dica
Você pode executar comandos databricks bundle
fora da raiz do pacote configurável configurando a variável de ambiente BUNDLE_ROOT
. Se essa variável de ambiente não estiver definida, os comandos databricks bundle
tentarão localizar a raiz do pacote pesquisando no diretório de trabalho atual.
Etapa 5: executar o pacote
Para executar um trabalho ou pipeline específico, execute o bundle run
comando na raiz do pacote, especificando a chave de trabalho ou pipeline declarada nos arquivos de configuração do pacote, conforme descrito em Executar um trabalho ou pipeline. A chave do recurso é o elemento de nível superior do bloco YAML do recurso. Se você não especificar uma chave de trabalho ou pipeline, precisará selecionar um recurso para execução em uma lista de recursos disponíveis. Se a opção -t
não for especificada, o destino padrão, conforme declarado nos arquivos de configurações do pacote, será usado. Por exemplo, para executar um trabalho com a chave hello_job
no contexto do destino padrão:
databricks bundle run hello_job
Para executar um trabalho com uma chave hello_job
no contexto de um destino declarado com o nome dev
:
databricks bundle run -t dev hello_job
Etapa 6: destruir o pacote
Aviso
A destruição de um pacote exclui permanentemente os trabalhos, pipelines e artefatos implantados anteriormente de um pacote. Essa ação não pode ser desfeita.
Depois de concluir o pacote, se você deseja excluir os trabalhos, pipelines e artefatos implantados anteriormente, deve executar o comando bundle destroy
na raiz dele. Este comando exclui todos os trabalhos, pipelines e artefatos implantados anteriormente que estão definidos nos arquivos de configuração do pacote. Confira Implantar um pacote.
databricks bundle destroy
Por padrão, você receberá uma solicitação para confirmar a exclusão permanente dos trabalhos, pipelines e artefatos implantados anteriormente. Para ignorar esses prompts e executar a exclusão permanente automática, adicione a opção --auto-approve
ao comando bundle destroy
.