Pular para o conteúdo principal

Migrar o recurso existente para um pacote

Ao criar seu pacote, você pode querer incluir um recurso Databricks que já exista e esteja totalmente configurado no workspace remoto. É possível utilizar o comando Databricks CLI bundle generate para gerar automaticamente e de forma rápida a configuração no seu pacote para aplicativos, painéis, tarefas e pipelines existentes. Veja a geração do pacote databricks. A configuração que pode ser copiada e colada manualmente nos arquivos de configuração do recurso do pacote está disponível na interface do usuário do Databricks para alguns recursos, como Job e pipeline.

Após gerar a configuração para um recurso no seu pacote e implantar o pacote, utilize o comando “ bundle deployment bind ” para vincular um recurso no seu pacote ao recurso correspondente no “ workspace”. Consulte o vínculo de implantação do pacote databricks.

Esta página fornece exemplos simples que usam o site Databricks CLI ou a UI para gerar ou recuperar a configuração do recurso de pacote.

Para obter detalhes sobre definições de recurso em pacotes, consulte Databricks ativo Bundles recurso.

Gerar uma configuração de trabalho existente ou pipeline usando o Databricks CLI

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

  1. Recupere o ID do Job ou pipeline existente nos detalhes doJob ou no painel lateral de detalhes do pipeline para o Job ou pipeline na interface do usuário. Como alternativa, use o comando Databricks CLI databricks jobs list ou databricks pipelines list-pipelines.

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

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

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

Você também pode gerar configurações para um painel existente. Veja o painel de geração do pacote 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 interface do usuário Databricks workspace :

  1. Na barra lateral do site Databricks workspace, clique em Jobs & pipeline .

  2. Opcionalmente, selecione os filtros Empregos e de minha propriedade .

  3. Clique no link Nome do seu trabalho.

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

  5. Copie o YAML e adicione-o ao arquivo databricks.yml do seu pacote ou crie um arquivo de configuração para o Job no diretório resources do projeto do pacote e faça referência a ele no arquivo databricks.yml. Ver recurso.

  6. Faça o download e adicione todos os arquivos Python e o Notebook referenciados no trabalho existente à fonte do projeto do pacote. Normalmente, os artefatos do pacote estão localizados no diretório src em um pacote.

dica

O senhor pode exportar um Notebook existente de um Databricks workspace para o formato .ipynb clicando em File > Export > IPython Notebook na interface do usuário do Databricks Notebook.

Depois de adicionar o Notebook, os arquivos Python e outros artefatos ao pacote, altere as referências a esses arquivos na definição do trabalho para a localização local. Por exemplo, se o senhor tivesse um arquivo de configuração hello_job.job.yml na pasta resources do seu pacote e fizesse o download de um Notebook chamado hello.ipynb para a pasta src do seu pacote, o conteúdo do arquivo hello_job.job.yml seria o seguinte:

YAML
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 a visualização do trabalho como código na interface do usuário, consulte Visualizar trabalho 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 existente de pipeline na interface do usuário Databricks workspace :

  1. Na barra lateral do site Databricks workspace, clique em Jobs & pipeline .

  2. Opcionalmente, selecione o filtro de pipeline .

  3. Clique no nome do seu pipeline.

  4. Ao lado do botão Development , clique em Ícone do menu Kebab. e, em seguida, clique em view settings YAML .

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

  6. Adicione o YAML que você copiou ao arquivo databricks.yml do seu pacote ou crie um arquivo de configuração para o pipeline na pasta resources do projeto do pacote e faça referência a ele no arquivo databricks.yml. Ver recurso.

  7. Faça o download e adicione todos os arquivos Python e o Notebook que são referenciados à fonte do projeto do pacote. Normalmente, os artefatos do pacote estão localizados no diretório src em um pacote.

dica

O senhor pode exportar um Notebook existente de um Databricks workspace para o formato .ipynb clicando em File > Export > IPython Notebook na interface do usuário do Databricks Notebook.

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

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

Vincular um recurso à sua contraparte remota

Normalmente, depois de adicionar um recurso ao seu pacote, o senhor deseja garantir que o recurso no seu pacote e o recurso existente no site workspace permaneçam sincronizados. O comando bundle deployment bind permite que o senhor os vincule. Se o senhor vincular um recurso, o recurso vinculado Databricks no workspace será atualizado com base na configuração definida no pacote no próximo bundle deploy.

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

O comando a seguir vincula o recurso hello_job à sua contraparte remota no workspace. Ele solicita uma confirmação para garantir que as atualizações da configuração do trabalho no pacote sejam aplicadas ao trabalho remoto correspondente quando o pacote for implantado novamente.

Bash
databricks bundle deployment bind hello_job 6565621249

Para remover o link entre um recurso de pacote e sua contraparte no workspace, utilize bundle deployment unbind. Consulte databricks bundle deployment unbind.

Bash
databricks bundle deployment unbind hello_job

Migrar um recurso que existe em dois espaços de trabalho

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

  1. Defina os alvos de desenvolvimento e produção em seu pacote databricks.yml.

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

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

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

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

O pacote agora pode ser implantado nos dois ambientes:

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