Desenvolva o pipeline DLT com Databricks ativo Bundles
Databricks Os ativos Bundles , também conhecidos simplesmente como bundles , permitem que o senhor valide, implante e execute de forma programática Databricks recursos como o pipeline DLT. Veja o que são Databricks ativo Bundles?
Este artigo descreve como criar um pacote para gerenciar programaticamente o site pipeline. Consulte O que é DLT? . O pacote é criado usando o Databricks ativo Bundles default bundle padrão para Python, que consiste em um Notebook emparelhado com a definição de um pipeline e um Job para executá-lo. Em seguida, o senhor valida, implanta e executa o implantado pipeline em seu Databricks workspace.
Se o senhor tiver um pipeline existente que foi criado usando a interface de usuário Databricks ou API e quiser transferi-lo para os pacotes, deverá defini-lo nos arquivos de configuração de um pacote. A Databricks recomenda que o senhor crie primeiro um pacote usando as etapas abaixo e, em seguida, valide se o pacote funciona. Em seguida, o senhor pode adicionar outras definições, o Notebook e outras fontes ao pacote. Consulte Adicionar uma definição de pipeline existente a um pacote.
Requisitos
- Databricks CLI versão 0.218.0 ou acima. Para verificar a versão instalada do site Databricks CLI, execute o comando
databricks -v
. Para instalar a CLI da Databricks, consulte Instalar ou atualizar a CLI da Databricks. - O site workspace remoto deve ter os arquivos workspace ativados. Consulte O que são arquivos workspace?
(Opcional) Instale um módulo Python para dar suporte ao desenvolvimento do pipeline local
A Databricks fornece um módulo Python para auxiliar o desenvolvimento local do código do pipeline DLT, fornecendo verificação de sintaxe, preenchimento automático e verificação de tipo de dados à medida que o usuário escreve o código em seu IDE.
O módulo Python para desenvolvimento local está disponível no PyPi. Para instalar o módulo, consulte o stub do Python para DLT.
Criar um pacote usando um padrão de projeto
Crie o pacote usando o padrão Databricks default bundle para Python. Esse padrão consiste em um Notebook que define um DLT pipeline, que filtra os dados do dataset original. Para obter mais informações sobre o padrão bundle, consulte Databricks ativo Bundle project padrão.
Se você quiser criar um pacote do zero, consulte Criar um pacote manualmente.
Etapa 1: configurar a autenticação
Nesta etapa, o senhor configura a autenticação entre o Databricks CLI em sua máquina de desenvolvimento e o Databricks workspace. Este artigo pressupõe que o senhor deseja usar a autenticação OAuth user-to-machine (U2M) e um perfil de configuração Databricks correspondente denominado DEFAULT
para autenticação.
A autenticação U2M é adequada para testar essas etapas em tempo real. Para fluxo de trabalho totalmente automatizado, o site Databricks recomenda que o senhor use a autenticação máquina a máquina (M2M) OAuth. Consulte as instruções de configuração da autenticação M2M em Autenticação.
-
Use o comando Databricks CLI para iniciar o gerenciamento de tokens OAuth localmente, executando o seguinte comando para cada destino workspace.
No comando a seguir, substitua
<workspace-url>
pelo Databricks workspace URL da instância, porhttps://1234567890123456.7.gcp.databricks.com
exemplo,.Bashdatabricks auth login --host <workspace-url>
-
O site Databricks CLI solicita que o senhor salve as informações inseridas como um Databricks perfil de configuração. Pressione
Enter
para aceitar o nome de perfil sugerido ou insira o nome de um perfil novo ou existente. Qualquer perfil existente com o mesmo nome é substituído pelas informações que o senhor inseriu. O senhor pode usar perfis para alternar rapidamente o contexto de autenticação em vários espaços de trabalho.Para obter uma lista de todos os perfis existentes, em um terminal ou prompt de comando separado, use a CLI do Databricks para executar o comando
databricks auth profiles
. Para visualizar as configurações existentes de um perfil específico, execute o comandodatabricks auth env --profile <profile-name>
. -
No navegador da web, conclua as instruções na tela para fazer log in no workspace do Databricks.
-
Para visualizar o valor atual do token OAuth de um perfil e o registro de data e hora de expiração do token, execute um dos seguintes comandos:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Se você tiver vários perfis com o mesmo valor
--host
, talvez seja necessário especificar as opções--host
e-p
juntas para ajudar a CLI do Databricks a encontrar as informações de token OAuth correspondentes corretas.
Etapa 2: criar o pacote
Inicialize um pacote usando o padrão default Python bundle project.
-
Use o terminal ou o prompt do comando para alternar para um diretório em seu computador de desenvolvimento local que conterá o pacote gerado pelo padrão.
-
Use o endereço Databricks CLI para executar o comando
bundle init
:Bashdatabricks bundle init
-
Para
Template to use
, deixe o valor default dedefault-python
pressionandoEnter
. -
Para
Unique name for this project
, deixe o valor default demy_project
ou digite um valor diferente e pressioneEnter
. Isso determina o nome do diretório raiz desse pacote. Esse diretório raiz é criado dentro do seu diretório de trabalho atual. -
Para
Include a stub (sample) notebook
, selecioneno
e pressioneEnter
. Isso instrui o site Databricks CLI a não adicionar um Notebook de amostra nesse momento, pois o Notebook de amostra associado a essa opção não tem código DLT. -
Para
Include a stub (sample) DLT pipeline
, deixe o valor default deyes
pressionandoEnter
. Isso instrui o site Databricks CLI a adicionar um Notebook de amostra que contenha código DLT. -
Para
Include a stub (sample) Python package
, selecioneno
e pressioneEnter
. Isso instrui a CLI da Databricks a não adicionar arquivos de amostra do pacote Python wheel ou instruções de compilação relacionadas ao seu pacote.
Etapa 3: explore o pacote
Para acessar view os arquivos gerados pelo padrão, vá para o diretório raiz do pacote recém-criado. Os arquivos de interesse particular incluem o seguinte:
databricks.yml
: Esse arquivo especifica o nome programático do pacote, inclui uma referência à definição pipeline e especifica as configurações sobre o destino workspace.resources/<project-name>_job.yml
eresources/<project-name>_pipeline.yml
: Esses arquivos definem o trabalho que contém uma tarefa pipeline refresh e as configurações do pipeline.src/dlt_pipeline.ipynb
: Esse arquivo é um Notebook que, quando executado, executa o pipeline.
Para personalizar o pipeline, os mapeamentos em uma declaração pipeline correspondem à carga útil da solicitação create pipeline operações, conforme definido em POST /api/2.0/pipeline na referência REST API , expressa no formato YAML.
Etapa 4: Validar o arquivo de configuração do pacote do projeto
Nesta etapa, você verifica se a configuração do pacote é válida.
-
No diretório raiz, use o endereço Databricks CLI para executar o comando
bundle validate
, como segue:Bashdatabricks bundle validate
-
Se um resumo da configuração do pacote for retornado, a validação foi bem-sucedida. Se algum erro for retornado, corrija-o e repita essa etapa.
Se você fizer alguma alteração em seu pacote após essa etapa, repita essa etapa para verificar se a configuração do pacote ainda é válida.
Etapa 5: implantar o projeto local no projeto remoto workspace
Nesta etapa, o senhor implanta o Notebook local no site remoto Databricks workspace e cria o DLT pipeline no site workspace.
-
Na raiz do pacote, use o endereço Databricks CLI para executar o comando
bundle deploy
da seguinte forma:Bashdatabricks bundle deploy -t dev
-
Verifique se o Notebook local foi implantado: Na barra lateral do workspace do Databricks, clique em workspace .
-
Clique na pasta Users >
<your-username>
> .bundle ><project-name>
> dev > files > src . O Notebook deve estar nessa pasta. -
Verifique se o site pipeline foi criado: Na barra lateral do site Databricks workspace , clique em DLT .
-
No DLT tab, clique em [dev
<your-username>
]<project-name>
pipeline .
Se você fizer alguma alteração no pacote após essa etapa, repita as etapas 4 a 5 para verificar se a configuração do pacote ainda é válida e, em seguida, reimplantar o projeto.
Etapa 6: execução do projeto implantado
Nessa etapa, o senhor aciona a execução do DLT pipeline em seu workspace a partir da linha de comando.
-
No diretório raiz, use o endereço Databricks CLI para executar o comando
bundle run
, como segue, substituindo<project-name>
pelo nome do projeto da Etapa 2:Bashdatabricks bundle run -t dev <project-name>_pipeline
-
Copie o valor de
Update URL
que aparece no terminal e cole-o no navegador da Web para abrir o site Databricks workspace. -
Em seu Databricks workspace, depois que o pipeline for concluído com êxito, clique em taxi_raw view e em filtered_taxis materialized view para ver os detalhes.
Se fizer alguma alteração no pacote após essa etapa, repita as etapas de 4 a 6 para verificar se a configuração do pacote ainda é válida, reimplante o projeto e execute o projeto reimplantado.
Etapa 7: limpar
Nesta etapa, o senhor exclui o Notebook implantado e o pipeline do seu workspace.
-
No diretório raiz, use o endereço Databricks CLI para executar o comando
bundle destroy
, como segue:Bashdatabricks bundle destroy -t dev
-
Confirme a solicitação de exclusão do pipeline: Quando solicitado a destruir permanentemente o recurso, digite
y
e pressioneEnter
. -
Confirme a solicitação de exclusão do Notebook: Quando solicitado a destruir permanentemente a pasta implantada anteriormente e todos os seus arquivos, digite
y
e pressioneEnter
. -
Se você também quiser excluir o pacote da sua máquina de desenvolvimento, agora você pode excluir o diretório local da Etapa 2.
Adicionar uma definição de pipeline existente a um pacote
O senhor pode usar uma definição de pipeline DLT existente como base para definir um novo pipeline em um arquivo de configuração de pacote. Para obter uma definição de pipeline existente, o senhor pode recuperá-la manualmente usando a interface do usuário ou pode gerá-la programaticamente usando a CLI do Databricks.
Obtenha uma definição de pipeline existente usando a interface do usuário
Para obter a representação YAML de uma definição existente do site pipeline na interface do usuário Databricks workspace :
-
Na barra lateral do site Databricks workspace , clique em fluxo de trabalho .
-
N o DLT, cl tab pipelineique no link's Name (Nome do ).
-
Ao lado do botão Desenvolvimento , clique no botão e, em seguida, clique em visualizar configurações 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 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
Gerar uma definição de pipeline existente usando a CLI da Databricks
Para gerar programaticamente a configuração do pacote para um pipeline existente:
-
Recupere o ID do site pipeline existente no painel lateral de detalhes do pipeline para o site pipeline na interface do usuário ou use o comando Databricks CLI
databricks pipelines list-pipelines
. -
executar o
bundle generate pipeline
Databricks CLIcomando, definindo o pipeline ID:Bashdatabricks bundle generate pipeline --existing-pipeline-id 6565621249
Esse comando cria um arquivo de configuração de pacote para o site pipeline na pasta
resources
do pacote e downloads todos os artefatos referenciados na pastasrc
.
Se o senhor usar bundle deployment bind
pela primeira vez para vincular um recurso em um pacote a um recurso no site workspace, o recurso no site workspace será atualizado com base na configuração definida no pacote ao qual está vinculado após o próximo bundle deploy
. Para obter informações sobre bundle deployment bind
, consulte Bind bundle recurso.