Compartilhar via


Migrar recursos existentes para um pacote

Ao compilar seu pacote, convém incluir recursos do Databricks que já existem e estão totalmente configurados no workspace remoto. Você pode usar o comando bundle generate da CLI do Databricks para gerar rapidamente a configuração no seu pacote para aplicativos, painéis, trabalhos e pipelines existentes. Confira a geração do pacote do Databricks. A configuração que você pode copiar e colar manualmente em arquivos de configuração do pacote de recursos está disponível na interface do Databricks para alguns recursos, como trabalhos e pipelines.

Depois de gerar a configuração de um recurso em seu pacote e implantar o pacote, use o bundle deployment bind comando para associar um recurso em seu pacote ao recurso correspondente no workspace. Consulte a associação de implantação do pacote do Databricks.

Esta página fornece exemplos simples que usam a CLI ou a interface do usuário do Databricks para gerar ou recuperar a configuração de recursos do pacote.

Para obter detalhes sobre definições de recursos em pacotes, consulte os recursos de Pacotes de Ativos do Databricks.

Gerar a configuração de um trabalho ou pipeline existente usando a CLI do Databricks

Para gerar programaticamente a configuração do pacote para um trabalho ou pipeline existente:

  1. Recupere a ID do trabalho ou pipeline existente no painel lateral Detalhes do trabalho ou Detalhes do pipeline para o trabalho ou pipeline na interface do usuário. Como alternativa, use o comando CLI databricks jobs list ou o comando Databricks databricks pipelines list-pipelines.

  2. Execute o comando bundle generate job ou bundle generate pipeline da CLI do Databricks, definindo a ID do trabalho ou pipeline:

    databricks bundle generate job --existing-job-id 6565621249
    
    databricks bundle generate pipeline --existing-pipeline-id 6565621249
    

    Esse comando cria um arquivo de configuração de pacote para o recurso na pasta do resources pacote e baixa todos os artefatos referenciados para a src pasta.

Você também pode gerar a configuração para um painel existente. Consulte o painel de geração do pacote do Databricks.

Recuperar uma definição de trabalho existente usando a interface do usuário

Para recuperar a representação YAML de uma definição de trabalho existente na UI do workspace do Azure Databricks:

  1. Na barra lateral do workspace do Azure Databricks, clique em Jobs & Pipelines.

  2. Opcionalmente, selecione os filtros Trabalhos e Propriedade minha .

  3. Clique no link Nome do seu trabalho.

  4. Ao lado do botão Executar agora, clique no menu kebab e depois em Editar como YAML.

  5. Copie o YAML e adicione-o ao arquivo databricks.yml do pacote, ou crie um arquivo de configuração para sua tarefa no diretório resources do projeto do pacote e faça referência a ele a partir do arquivo databricks.yml. Consulte os recursos.

  6. Baixe e adicione todos os arquivos e blocos de anotações do Python referenciados no trabalho existente à origem do projeto do pacote. Normalmente, os artefatos de pacote estão localizados na pasta src de um pacote.

    Dica

    Você pode exportar um notebook existente de um workspace do Azure Databricks para o formato .ipynb clicando em Arquivo > Exportar > Notebook IPython na interface do usuário do notebook do Azure Databricks.

    Depois de adicionar seus notebooks, arquivos Python e outros artefatos ao pacote, altere as referências a esses arquivos em sua definição de trabalho para o local. Por exemplo, se você tivesse um hello_job.job.yml arquivo de configuração na resources pasta do pacote e baixasse um bloco de anotações nomeado hello.ipynb para a src pasta do pacote, o conteúdo do hello_job.job.yml arquivo seria o seguinte:

    resources:
      jobs:
        hello_job:
          name: hello_job
          tasks:
            - task_key: hello_task
              notebook_task:
                notebook_path: ../src/hello.ipynb
    

Para obter mais informações sobre como exibir trabalhos como código na interface do usuário, consulte Exibir trabalhos como código.

Recuperar uma definição de pipeline existente usando a interface do usuário

Para recuperar a representação YAML de uma definição de pipeline existente na interface de usuário do workspace do Azure Databricks:

  1. Na barra lateral do workspace do Azure Databricks, clique em Jobs & Pipelines.

  2. Opcionalmente, selecione o filtro Pipelines .

  3. Clique no Nome do seu pipeline.

  4. Ao lado do botão Desenvolvimento , clique no ícone de menu Kebab. Em seguida, clique em Exibir configurações YAML.

  5. Copie o YAML da definição de pipeline na caixa de diálogo YAML de configurações de pipeline para a área de transferência local do seu computador clicando no ícone de cópia.

  6. Adicione o YAML copiado ao arquivo databricks.yml do seu pacote, ou crie um arquivo de configuração para seu pipeline na pasta resources do projeto do seu pacote e faça referência a ele a partir do arquivo databricks.yml. Consulte os recursos.

  7. Baixe e adicione todos os arquivos e notebooks do Python referenciados à origem do projeto do pacote. Normalmente, os artefatos de pacote estão localizados na pasta src de um pacote.

    Dica

    Você pode exportar um notebook existente de um workspace do Azure Databricks para o formato .ipynb clicando em Arquivo > Exportar > Notebook IPython na interface do usuário do notebook do Azure Databricks.

    Depois de adicionar seus notebooks, arquivos Python e outros artefatos ao pacote, certifique-se de que a definição do pipeline os referencie adequadamente. Por exemplo, para um notebook chamado hello.ipynb no diretório src/ do pacote:

    resources:
      pipelines:
        hello_pipeline:
          name: hello_pipeline
          libraries:
            - notebook:
                path: ../src/hello.ipynb
    

Associar um recurso ao seu equivalente remoto

Normalmente, depois de adicionar um recurso ao seu pacote, você desejará garantir que o recurso em seu pacote e o recurso existente no workspace permaneçam em sincronia. O bundle deployment bind comando permite vinculá-los. Se você vincular um recurso, o recurso do Azure Databricks associado no workspace será atualizado com base na configuração definida no pacote na próxima bundle deploy.

Para obter mais informações bundle deployment bind e detalhes sobre o suporte a recursos, consulte a associação de implantação do pacote databricks.

O comando a seguir associa o recurso hello_job ao seu equivalente remoto no workspace. Ele solicita uma confirmação para garantir que as atualizações na configuração do trabalho no pacote sejam aplicadas ao trabalho remoto correspondente quando o pacote for implantado novamente.

databricks bundle deployment bind hello_job 6565621249

Para remover o link entre um recurso de pacote e seu equivalente no workspace, use bundle deployment unbind. Consulte a implantação do pacote do Databricks desassociada.

databricks bundle deployment unbind hello_job

Migrar um recurso que existe em dois workspaces

Em algumas configurações, o mesmo recurso pode existir em mais de um workspace. Por exemplo, o mesmo trabalho pode estar em um workspace de produção e desenvolvimento. Se o trabalho existente for adicionado ao pacote e, em seguida, o pacote for implantado em um desses workspaces, trabalhos duplicados serão criados. Para evitar isso, use databricks bundle generate e databricks bundle deployment bind juntos:

  1. Defina os destinos de desenvolvimento e de prod em seu pacote databricks.yml.

  2. Gere a configuração do pacote para o recurso (neste exemplo, um trabalho) no destino de desenvolvimento:

    databricks bundle generate job --existing-job-id <dev_job_id> –-target dev
    
  3. A configuração do recurso no prod provavelmente será diferente da configuração do recurso no desenvolvimento, de modo que agora que você gerou a configuração para o recurso, defina as configurações específicas de produção para o recurso (no destino do prod) no pacote.

    targets:
      dev:
        default: true
        #...
      prod:
        #...
        resources:
          jobs:
            my_job:
              # Job prod settings
    
  4. Associe o recurso no pacote ao trabalho existente nos destinos de desenvolvimento e prod:

    databricks bundle deployment bind my_job <dev_job_id> --target dev
    
    databricks bundle deployment bind my_job <prod_job_id> --target prod
    

Agora, o pacote pode ser implantado nos dois ambientes:

databricks bundle deploy --target dev
databricks bundle deploy --target prod