Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
O Databricks recomenda que o utilizador utilize o Databricks Asset Bundles em vez do dbx pelo Databricks Labs. Artigos relacionados sobre dbx foram retirados e podem não ser atualizados.
Este artigo descreve como migrar projetos do dbx Databricks Labs para o Databricks Asset Bundles. Consulte Introdução ao dbx pelo Databricks Labs e O que são Databricks Asset Bundles?.
Antes de migrar, observe as seguintes limitações e comparações de recursos entre dbx o Databricks Labs e o Databricks Asset Bundles.
Comparações de recursos
Antes de migrar, observe como os seguintes recursos do dbx Databricks Labs são implementados no Databricks Asset Bundles.
Modelos e projetos
dbx fornecer suporte para Jinja templating. Você pode incluir modelos Jinja na configuração de implantação e passar variáveis de ambiente em linha ou através de um arquivo de variáveis. Embora não seja recomendado, dbx também fornece suporte experimental para funções de usuário personalizadas.
Os pacotes fornecem suporte para modelos Go para reutilização de configuração. Os usuários podem criar pacotes com base em modelos pré-construídos. Há quase paridade total nos templates, exceto para funções de utilizador personalizadas.
Gestão de edifícios
dbx fornece suporte à compilação através de pip wheel, Poetry e Flit. Os usuários podem especificar a opção de compilação na build seção do arquivo de um projeto deployment.yml .
Os pacotes permitem que os usuários criem, implantem e executem arquivos de roda do Python. Os utilizadores podem aproveitar a entrada interna whl no arquivo databricks.yml de um pacote.
Sincronize, implante e execute código
dbx permite carregar código separadamente da geração de recursos do espaço de trabalho, como Lakeflow Jobs.
Os pacotes sempre carregam código e criam ou atualizam recursos do espaço de trabalho ao mesmo tempo. Isso simplifica as implantações e evita o bloqueio de condições para trabalhos que já estão em andamento.
Migrar um projeto dbx para um pacote
Depois de observar as limitações anteriores e as comparações de recursos entre dbx o Databricks Labs e o Databricks Asset Bundles, você estará pronto para migrar de dbx para pacotes.
O Databricks recomenda que, para iniciar uma dbx migração de projeto, você mantenha seu dbx projeto em sua pasta original e tenha uma pasta separada e em branco para a qual copie o conteúdo do projeto original dbx . Esta pasta separada será o seu novo pacote. Você pode encontrar problemas inesperados se você começar a converter seu dbx projeto em sua pasta original para um pacote e, em seguida, cometer alguns erros ou quiser começar de novo desde o início,
Etapa 1: Instalar e configurar a CLI do Databricks
Os pacotes de ativos Databricks estão geralmente disponíveis na CLI do Databricks versão 0.218.0 e superior. Se você já tiver instalado e configurado a CLI do Databricks versão 0.218.0 ou superior, pule para a Etapa 2.
Nota
Os pacotes não são compatíveis com as versões 0.18 e inferiores da CLI do Databricks.
- Instale ou atualize para a CLI do Databricks versão 0.218.0 ou superior. Consulte Instalar ou atualizar a CLI do Databricks.
- Configure a CLI do Databricks para autenticação com seus espaços de trabalho de destino do Azure Databricks, por exemplo, usando a autenticação de token de acesso pessoal (preterida). Para outros tipos de autenticação do Azure Databricks, consulte Autenticação para a CLI do Databricks.
Etapa 2: Criar o arquivo de configuração do pacote
Se você estiver usando um IDE, como Visual Studio Code, PyCharm Professional ou IntelliJ IDEA Ultimate que fornece suporte para arquivos YAML e arquivos de esquema JSON, você pode usar seu IDE não apenas para criar o arquivo de configuração do pacote, mas para verificar a sintaxe e a formatação do arquivo e fornecer dicas de conclusão de código, da seguinte maneira.
Código do Visual Studio
Adicione suporte ao servidor de idiomas 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 Databricks Asset Bundle usando a CLI do Databricks para executar o comando
bundle schemae redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsondentro do diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.jsonUse o Visual Studio Code para criar ou abrir um arquivo de configuração de pacote dentro do diretório atual. Por convenção, este ficheiro é chamado
databricks.yml.Adicione o seguinte comentário ao início do arquivo de configuração do pacote:
# yaml-language-server: $schema=bundle_config_schema.jsonNota
No comentário anterior, se o arquivo de esquema JSON de configuração do Databricks Asset Bundle estiver em um caminho diferente, substitua
bundle_config_schema.jsonpelo caminho completo para o arquivo de esquema.Use os recursos do servidor de idiomas YAML que você adicionou anteriormente. Para obter mais informações, consulte a documentação do servidor de idiomas YAML.
PyCharm Profissional
Gere o arquivo de esquema JSON de configuração do Databricks Asset Bundle usando a CLI do Databricks para executar o comando
bundle schemae redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsondentro do diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.jsonConfigure o PyCharm para reconhecer o arquivo de esquema JSON de configuração do pacote e, em seguida, conclua o mapeamento do 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. Por convenção, este ficheiro é chamado
databricks.yml. À medida que 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 Databricks Asset Bundle usando a CLI do Databricks para executar o comando
bundle schemae redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsondentro do diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.jsonConfigure o IntelliJ IDEA para reconhecer o arquivo de esquema JSON de configuração do pacote e, em seguida, conclua o mapeamento do 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. Por convenção, este ficheiro é chamado
databricks.yml. À medida que digitas, o IntelliJ IDEA verifica a sintaxe e a formatação do esquema JSON e fornece sugestões de preenchimento automático de código.
Etapa 3: Converter as configurações do projeto dbx em databricks.yml
Converta as configurações no arquivo do dbx seu .dbx/project.json projeto para as configurações equivalentes no arquivo do databricks.yml seu pacote. Para obter detalhes, consulte Convertendo configurações de projeto dbx para databricks.yml.
Etapa 4: Converter as configurações de implantação do dbx em databricks.yml
Converta as configurações na pasta do dbx seu conf projeto para as configurações equivalentes no arquivo do databricks.yml seu pacote. Para obter detalhes, consulte Convertendo configurações de implantação dbx em databricks.yml.
Etapa 5: Validar o pacote
Antes de implantar artefatos ou executar um trabalho do Azure Databricks, um :, ou um pipeline MLOps, você deve certificar-se de que seu arquivo de configuração do pacote está sintaticamente correto. Para fazer isso, execute o bundle validate comando a partir da raiz do pacote:
databricks bundle validate
Para obter informações sobre bundle validate, consulte databricks bundle validate.
Etapa 6: Implantar o pacote
Para implantar quaisquer artefatos locais especificados no espaço de trabalho remoto, execute o bundle deploy comando a partir da raiz do pacote. Se nenhuma opção de comando for especificada, o destino padrão declarado no arquivo de configuração do pacote será usado:
databricks bundle deploy
Para implantar os artefatos no contexto de um destino específico, especifique a -t opção (ou --target) junto com o nome do destino conforme declarado no arquivo de configuração do pacote. Por exemplo, para um destino declarado com o nome development:
databricks bundle deploy -t development
Para obter informações sobre bundle deploy, consulte databricks bundle deploy.
Gorjeta
Você pode vincular trabalhos e pipelines definidos pelo pacote a trabalhos e pipelines existentes no espaço de trabalho do Azure Databricks para mantê-los sincronizados. Consulte databricks bundle deployment bind.
Etapa 7: Executar o pacote
Para executar um trabalho ou pipeline específico, execute o bundle run comando a partir da raiz do pacote. Você deve especificar o trabalho ou pipeline declarado no arquivo de configuração do pacote. Se a -t opção não for especificada, o destino padrão conforme declarado no arquivo de configuração do pacote será usado. Por exemplo, para executar um trabalho nomeado hello_job dentro do contexto do destino padrão:
databricks bundle run hello_job
Para executar um trabalho nomeado hello_job dentro do contexto de um destino declarado com o nome development:
databricks bundle run -t development hello_job
Para obter informações, consulte bundle run sobre .
(Opcional) Etapa 8: Configurar o pacote para CI/CD com o GitHub
Se utilizar o GitHub para CI/CD, pode utilizar GitHub Actions para executar automaticamente os comandos databricks bundle deploy e databricks bundle run, com base em eventos específicos do fluxo de trabalho do GitHub e noutros critérios. Consulte Ações do GitHub.
Convertendo as configurações do projeto dbx em databricks.yml
Para dbx, as configurações do projeto são, por padrão, em um arquivo nomeado project.json na pasta do .dbx projeto. Consulte Referência do arquivo do projeto.
Para bundles, as configurações de bundle são, por padrão, em um arquivo chamado databricks.yml dentro da pasta raiz do bundle. Consulte Configuração do Databricks Asset Bundle.
Para um conf/project.json arquivo com o seguinte conteúdo de exemplo:
{
"environments": {
"default": {
"profile": "charming-aurora",
"storage_type": "mlflow",
"properties": {
"workspace_directory": "/Workspace/Shared/dbx/charming_aurora",
"artifact_location": "/Workspace/Shared/dbx/projects/charming_aurora"
}
}
},
"inplace_jinja_support": true
}
O ficheiro correspondente databricks.yml é o seguinte:
bundle:
name: <some-unique-bundle-name>
targets:
default:
workspace:
profile: charming-aurora
root_path: /Shared/dbx/charming_aurora
artifact_path: /Shared/dbx/projects/charming_aurora
resources:
# See an example "resources" mapping in the following section.
Os seguintes objetos no arquivo anterior conf/project.json deste exemplo não são suportados em databricks.yml arquivos e não têm soluções alternativas:
inplace_jinja_supportstorage_type
Os seguintes objetos adicionais permitidos em conf/project.json arquivos não são suportados em databricks.yml arquivos e não têm soluções alternativas:
enable-context-based-upload-for-executeenable-failsafe-cluster-reuse-with-assets
Convertendo as configurações de implantação do dbx em databricks.yml
Para dbx, as configurações de implantação são, por padrão, em um arquivo dentro da pasta do conf projeto. Consulte Referência do arquivo de implantação. O arquivo de configurações de implantação por padrão tem um dos seguintes nomes de arquivo:
deployment.ymldeployment.yamldeployment.jsondeployment.yml.j2deployment.yaml.j2deployment.json.j2
Para pacotes, as configurações de implantação são, por padrão, em um arquivo nomeado databricks.yml dentro da pasta raiz do pacote. Consulte Configuração do Databricks Asset Bundle.
Para um conf/deployment.yml arquivo com o seguinte conteúdo de exemplo:
build:
python: 'pip'
environments:
default:
workflows:
- name: 'workflow1'
tasks:
- task_key: 'task1'
python_wheel_task:
package_name: 'some-pkg'
entry_point: 'some-ep'
O ficheiro correspondente databricks.yml é o seguinte:
bundle:
name: <some-unique-bundle-name>
targets:
default:
workspace:
# See an example "workspace" mapping in the preceding section.
resources:
jobs:
workflow1:
tasks:
- task_key: task1
python_wheel_task:
package_name: some-pkg
entry_point: some-ep
O seguinte objeto no arquivo anterior conf/deployment.yml deste exemplo não é suportado em databricks.yml arquivos e não tem soluções alternativas:
-
build(embora veja Construir um arquivo de roda Python usando Databricks Asset Bundles)
Os seguintes objetos adicionais permitidos e funcionalidade em conf/deployment.yml arquivos não são suportados em databricks.yml arquivos e não têm soluções alternativas, a menos que indicado de outra forma:
access_control_list-
custom(use âncoras YAML padrão em vez disso) deployment_config- Formato Lakeflow Jobs 2.0 (utilize em vez disso o formato Jobs 2.1)
-
dbxJinja características - Propriedades baseadas em nome