Databricks Desenvolvimento de pacotes ativos
Este artigo descreve o desenvolvimento e o ciclo de vida de um Databricks ativo Bundle . Para obter informações gerais sobre Databricks ativo Bundles, consulte O que são Databricks ativo Bundles?
Ciclo de vida de um pacote
Para entender como usar pacotes de forma eficaz, você precisa entender o ciclo de vida básico de um pacote:
- O esqueleto do pacote é criado com base em um projeto.
- O projeto do pacote é desenvolvido localmente. Um pacote contém arquivos de configuração que definem a infraestrutura e as configurações do workspace, como alvos de implantação, configurações para o recurso Databricks, como Job e pipeline, bem como arquivos de origem e outros artefatos.
- O projeto do pacote foi validado. A validação verifica as configurações e definições de recurso na configuração do pacote em relação aos esquemas de objeto correspondentes para garantir que o pacote possa ser implementado em Databricks.
- O feixe é implantado em um alvo workspace. O mais comum é que um pacote seja implantado primeiro no site de desenvolvimento pessoal de um usuário workspace para testes. Quando o teste do pacote estiver concluído, ele poderá ser implantado em alvos de preparação e, em seguida, de produção.
- O fluxo de trabalho recurso definido no pacote implantado pode ser executado. Por exemplo, o senhor pode executar um trabalho.
- Se o pacote não estiver mais sendo usado, ele poderá ser destruído permanentemente.
Use o comandoDatabricks CLI bundle para criar, validar, implantar, executar e destruir bundles, 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 padrão default bundle.
- Use um padrão de pacote personalizado.
- Crie um pacote manualmente.
Use um padrão default bundle
Para usar um padrão de pacote Databricks default para criar um pacote inicial que possa ser personalizado posteriormente, use a Databricks CLI versão 0.218.0 ou superior para executar o comando bundle init
, que permite que o senhor escolha em uma lista de padrões disponíveis. Consulte Criar um pacote a partir de um projeto padrão.
databricks bundle init
O senhor pode view o código-fonte do pacote default padrão nos repositórios públicos do Github databricks/CLI e databricks/mlops-stacks.
Vá para a Etapa 2: Preencha os arquivos de configuração do pacote.
Usar um padrão de pacote personalizado
Para usar um pacote padrão diferente do pacote padrão Databricks default , o senhor deve conhecer o caminho local ou o URL do local do pacote padrão remoto. Use a Databricks CLI versão 0.218.0 ou superior para executar o comando bundle init
da seguinte forma:
databricks bundle init <project-template-local-path-or-url>
Para obter mais informações sobre esse comando, consulte Databricks ativo Bundle project padrão. Para obter informações sobre um padrão de pacote específico, consulte a documentação do fornecedor do padrão de pacote.
Vá para a Etapa 2: Preencha os arquivos de configuração do pacote.
Crie um pacote manualmente
Para criar um pacote manualmente em vez de usar um pacote padrão, crie um diretório de projeto em seu computador local ou um repositório vazio com um provedor Git de terceiros.
No seu diretório ou repositório, crie um ou mais arquivos de configuração do pacote como entrada. Esses arquivos são expressos no formato YAML. Deve haver no mínimo um (e somente um) arquivo de configuração de pacote chamado databricks.yml
. Arquivos adicionais de configuração do pacote devem ser referenciados no mapeamento include
do arquivo databricks.yml
.
Para criar com mais facilidade e rapidez arquivos YAML que estejam em conformidade com a sintaxe de configuração do Databricks ativo Bundle, o senhor pode usar uma ferramenta como o Visual Studio Code, PyCharm Professional ou IntelliJ IDEA Ultimate que ofereça suporte a arquivos YAML e arquivos de esquema JSON, como segue:
- Visual Studio Code
- PyCharm Professional
- IntelliJ IDEA Ultimate
-
Add YAML language server support to Visual Studio Code, for example by installing the YAML extension from the Visual Studio Code Marketplace.
-
Generate the Databricks Asset Bundle configuration JSON schema file using Databricks CLI version 0.218.0 or above to run the
bundle schema
command and redirect the output to a JSON file. For example, generate a file namedbundle_config_schema.json
within the current directory, as follows:Bashdatabricks bundle schema > bundle_config_schema.json
-
Use Visual Studio Code to create or open a bundle configuration file within the current directory. This file must be named
databricks.yml
. -
Add the following comment to the beginning of your bundle configuration file:
YAML# yaml-language-server: $schema=bundle_config_schema.json
In the preceding comment, if your Databricks Asset Bundle configuration JSON schema file is in a different path, replace bundle_config_schema.json
with the full path to your schema file.
- Use the YAML language server features that you added earlier. For more information, see your YAML language server’s documentation.
-
Generate the Databricks Asset Bundle configuration JSON schema file by using Databricks CLI version 0.218.0 or above to run the
bundle schema
command and redirect the output to a JSON file. For example, generate a file namedbundle_config_schema.json
within the current directory, as follows:Bashdatabricks bundle schema > bundle_config_schema.json
-
Configure PyCharm to recognize the bundle configuration JSON schema file, and then complete the JSON schema mapping, by following the instructions in Configure a custom JSON schema.
-
Use PyCharm to create or open a bundle configuration file. This file must be named
databricks.yml
. As you type, PyCharm checks for JSON schema syntax and formatting and provides code completion hints.
-
Generate the Databricks Asset Bundle configuration JSON schema file by using Databricks CLI version 0.218.0 or above to run the
bundle schema
command and redirect the output to a JSON file. For example, generate a file namedbundle_config_schema.json
within the current directory, as follows:Bashdatabricks bundle schema > bundle_config_schema.json
-
Configure IntelliJ IDEA to recognize the bundle configuration JSON schema file, and then complete the JSON schema mapping, by following the instructions in Configure a custom JSON schema.
-
Use IntelliJ IDEA to create or open a bundle configuration file. This file must be named
databricks.yml
. As you type, IntelliJ IDEA checks for JSON schema syntax and formatting and provides code completion hints.
Etapa 2: Preencher os arquivos de configuração do pacote
Os arquivos de configuração do pacote definem seu fluxo de trabalho Databricks especificando configurações como detalhes do workspace, nomes de artefatos, locais de arquivos, detalhes do trabalho e detalhes do pipeline. Normalmente, a configuração do pacote também contém metas de desenvolvimento, preparação e implantação de produção. Para obter informações detalhadas sobre os arquivos de configuração do pacote, consulte Databricks ativo Bundle configuration.
O senhor pode usar o comando bundle generate
para gerar automaticamente a configuração do pacote para um recurso existente no site workspace e, em seguida, usar bundle deployment bind
para vincular a configuração do pacote ao recurso no site workspace para mantê-los sincronizados. Consulte Gerar um arquivo de configuração de pacote e Vincular recurso de pacote.
Etapa 3: Validar os arquivos de configuração do pacote
Antes de implantar artefatos ou executar um Job ou pipeline, o senhor deve verificar 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 bundle. Consulte 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
. Consulte Exibir o esquema de configuração do pacote.
Etapa 4: implantar o feixe
Antes de implantar o pacote, certifique-se de que o site remoto workspace tenha os arquivos workspace ativados. Consulte O que são arquivos workspace?
Para implantar um pacote em um site remoto workspace, execute o comando bundle deploy
a partir da raiz do pacote, conforme descrito em implantado a bundle. O Databricks CLI é implantado no alvo workspace que é declarado nos arquivos de configuração do pacote. Veja os alvos.
databricks bundle deploy
A identidade exclusiva de um pacote é definida por seu nome, destino e identidade do implantador. Se esses atributos forem idênticos em pacotes diferentes, a implantação desses pacotes interferirá entre si. Consulte implantar um pacote para obter mais detalhes.
O senhor pode executar o comando databricks bundle
fora da raiz do pacote, definindo a variável de ambiente BUNDLE_ROOT
. Se essa variável de ambiente não for definida, o databricks bundle
comando tentará localizar a raiz do pacote pesquisando no diretório de trabalho atual.
Etapa 5: execução do pacote
Para executar um trabalho específico ou pipeline, execute o comando bundle run
na raiz do pacote, especificando o trabalho ou pipeline key declarado nos arquivos de configuração do pacote, conforme descrito em Execução de um trabalho ou pipeline. O recurso key é o elemento de nível superior do bloco YAML do recurso. Se o senhor não especificar um Job ou pipeline key, será solicitado a selecionar um recurso para execução em uma lista de recursos disponíveis. Se a opção -t
não for especificada, será usado o destino default conforme declarado nos arquivos de configuração do pacote. Por exemplo, para executar um trabalho com o key hello_job
no contexto do destino default:
databricks bundle run hello_job
Para executar um trabalho com key hello_job
no contexto de um destino declarado com o nome dev
:
databricks bundle run -t dev hello_job
Etapa 6: Destrua o pacote
A destruição de um pacote exclui permanentemente o trabalho, o pipeline e os artefatos implantados anteriormente no pacote. Essa ação não pode ser desfeita.
Se o senhor tiver concluído o pacote e quiser excluir o trabalho, o pipeline e os artefatos que foram implantados anteriormente, execute o comando bundle destroy
na raiz do pacote. Esse comando exclui todos os trabalhos, pipelines e artefatos implantados anteriormente que estão definidos nos arquivos de configuração do pacote. Consulte Destruir um pacote.
databricks bundle destroy
Em default, o senhor é solicitado a confirmar a exclusão permanente do Job, do pipeline e dos artefatos implantados anteriormente. Para ignorar esses avisos e realizar a exclusão permanente automática, adicione a opção --auto-approve
ao comando bundle destroy
.