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:
-
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 listoudatabricks pipelines list-pipelines. -
Execute
bundle generate jobbundle generate pipelineo Databricks CLI comando ou, definindo o pipeline ID do Job ou:Bashdatabricks bundle generate job --existing-job-id 6565621249Bashdatabricks bundle generate pipeline --existing-pipeline-id 6565621249Esse comando cria um arquivo de configuração de pacote para o recurso na pasta
resourcesdo pacote e downloads todos os artefatos referenciados na pastasrc.
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 :
-
Na barra lateral do site Databricks workspace, clique em Jobs & pipeline .
-
Opcionalmente, selecione os filtros Empregos e de minha propriedade .
-
Clique no link Nome do seu trabalho.
-
Ao lado do botão Executar agora , clique no botão e, em seguida, clique em Editar como YAML .
-
Copie o YAML e adicione-o ao arquivo
databricks.ymldo seu pacote ou crie um arquivo de configuração para o Job no diretórioresourcesdo projeto do pacote e faça referência a ele no arquivodatabricks.yml. Ver recurso. -
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
srcem um pacote.
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:
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 um tutorial que mostra como converter um pipeline LakeFlow Spark Declarative existente em um projeto Databricks ativo Bundles, consulte Converter um pipeline em um projeto Databricks ativo Bundle.
Para recuperar a representação YAML de uma definição existente de pipeline na interface do usuário Databricks workspace :
-
Na barra lateral do site Databricks workspace, clique em Jobs & pipeline .
-
Opcionalmente, selecione o filtro de pipeline .
-
Clique no nome do seu pipeline.
-
Ao lado do botão Development , clique em
e, em seguida, clique em view settings YAML .
-
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.
-
Adicione o YAML que você copiou ao arquivo
databricks.ymldo seu pacote ou crie um arquivo de configuração para o pipeline na pastaresourcesdo projeto do pacote e faça referência a ele no arquivodatabricks.yml. Ver recurso. -
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
srcem um pacote.
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:
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.
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.
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:
-
Defina os alvos de desenvolvimento e produção em seu pacote
databricks.yml. -
Gerar a configuração do pacote para o recurso (neste exemplo, um trabalho) no destino do desenvolvimento:
Bashdatabricks bundle generate job --existing-job-id <dev_job_id> –-target dev -
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.
YAMLtargets:
dev:
default: true
#...
prod:
#...
resources:
jobs:
my_job:
# Job prod settings -
Vincule o recurso no pacote ao trabalho existente nos destinos dev e prod:
Bashdatabricks bundle deployment bind my_job <dev_job_id> --target devBashdatabricks bundle deployment bind my_job <prod_job_id> --target prod
O pacote agora pode ser implantado nos dois ambientes:
databricks bundle deploy --target dev
databricks bundle deploy --target prod