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 list
oudatabricks pipelines list-pipelines
. -
Execute
bundle generate job
bundle generate pipeline
o Databricks CLI comando ou, definindo o pipeline ID do Job ou:Bashdatabricks bundle generate job --existing-job-id 6565621249
Bashdatabricks 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 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.yml
do seu pacote ou crie um arquivo de configuração para o Job no diretórioresources
do 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
src
em 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 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.yml
do seu pacote ou crie um arquivo de configuração para o pipeline na pastaresources
do 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
src
em 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 dev
Bashdatabricks 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