Desenvolver pipelines do Delta Live Tables com Pacotes de Ativos do Databricks
Os Pacotes de Ativos do Databricks, também conhecidos simplesmente como pacotes, permitem que você valide, implante e execute programaticamente os recursos do Azure Databricks, como os pipelines das Tabelas Dinâmicas Delta. Veja que são pacotes de ativos do Databricks?.
Este artigo descreve como criar um pacote para gerenciar um pipeline de maneira programática. ConsulteO que é o Delta Live Tables?. O pacote é criado usando o modelo padrão de Databricks Asset Bundles para Python, que consiste em um notebook emparelhado com a definição de um pipeline e trabalho para executá-lo. Em seguida, você valida, implanta e executa o pipeline implantado em seu workspace do Azure Databricks.
Dica
Se houver pipelines que foram criados usando a interface do usuário ou a API do Azure Databricks que você deseja mover para pacotes, é necessário defini-los em arquivos de configuração de pacote. O Databricks recomenda que primeiro você crie um pacote seguindo as etapas abaixo e valide se o pacote funciona. Em seguida, você pode adicionar outras definições, notebooks e outras fontes ao pacote. Confira Adicionar uma definição de pipeline existente a um pacote.
Requisitos
- CLI do Databricks versão 0.218.0 ou superior. Para verificar a versão instalada da CLI do Databricks, execute o comando
databricks -v
. Para instalar a CLI do Databricks, consulte Instalar ou atualizar a CLI do Databricks. - O espaço de trabalho remoto deve ter arquivos de espaço de trabalho habilitados. Consulte O que são Arquivos de workspace?.
(Opcional) Instalar um módulo Python para dar suporte ao desenvolvimento de pipeline local
O Databricks fornece um módulo Python para ajudar no desenvolvimento local do código de pipeline do Delta Live Tables fornecendo verificação de sintaxe, preenchimento automático e verificação de tipo de dados enquanto você escreve 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 Delta Live Tables.
Criar um pacote usando um modelo de projeto
Crie o pacote usando o modelo de pacote padrão do Azure Databricks para Python. Este modelo consiste em um notebook para definir um pipeline do Delta Live Tables, que filtra dados do conjunto de dados original. Para obter informações sobre modelos de pacote, veja Modelos de Pacote de Ativos do Databricks.
Para criar um pacote do zero, confira Criar um pacote manualmente.
Etapa 1: configurar a autenticação
Nesta etapa, você configura a autenticação entre a CLI do Databricks em sua máquina de desenvolvimento e seu workspace do Azure Databricks. Esse artigo pressupõe que você deseja usar a autenticação U2M (usuário para computador) do OAuth e um perfil de configuração correspondente do Azure Databricks chamado DEFAULT
para autenticação.
Observação
A autenticação U2M é apropriada para testar essas etapas em tempo real. Para fluxos de trabalho totalmente automatizados, o Databricks recomenda que você use a autenticação M2M (máquina a máquina) do OAuth. Veja as instruções de configuração da autenticação M2M em Autenticação.
Use a CLI do Databricks para iniciar o gerenciamento de token OAuth localmente executando o comando a seguir para cada workspace de destino.
No comando a seguir, substitua
<workspace-url>
pela URL por workspace do Azure Databricks, por exemplo,https://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
A CLI do Databricks solicita que você salve as informações inseridas como um perfil de configuração do Azure Databricks. Pressione
Enter
para aceitar o nome de perfil sugerido ou digite o nome de um perfil novo ou existente. Qualquer perfil existente com o mesmo nome será substituído pelas informações inseridas. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários workspaces.Para obter uma lista de quaisquer 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 seu navegador da Web, complete as instruções na tela para iniciar sessão no seu workspace do Azure Databricks.
Para visualizar o valor atual do token OAuth de um perfil e o carimbo de data/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
em conjunto 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 modelo padrão de projeto de pacote Python.
Use seu terminal ou prompt de comando para alternar para um diretório em seu computador de desenvolvimento local que conterá o pacote gerado do modelo.
Use a CLI do Databricks para realizar a execução do comando
bundle init
:databricks bundle init
Para
Template to use
, deixe o valor padrãodefault-python
pressionandoEnter
.Para
Unique name for this project
, deixe o valor padrão demy_project
, ou digite um valor diferente e pressioneEnter
. Isso determina o nome do diretório raiz para esse pacote. Esse diretório raiz é criado no diretório de trabalho atual.Para
Include a stub (sample) notebook
, selecionarno
e pressionarEnter
. Isso instrui a CLI do Databricks a não adicionar um bloco de anotações de amostra neste momento, pois o bloco de anotações de amostra associado a essa opção não tem nenhum código Delta Live Tables nele.Para
Include a stub (sample) DLT pipeline
, deixe o valor padrãoyes
pressionandoEnter
. Isso instrui a CLI do Databricks a adicionar um bloco de anotações de amostra que tenha código Delta Live Tables nele.Para
Include a stub (sample) Python package
, selecionarno
e pressionarEnter
. Isso instrui a CLI do Databricks a não adicionar arquivos de pacote wheel Python de exemplo ou instruções de build relacionadas ao seu pacote.
Etapa 3: explorar o pacote
Para visualizar os arquivos gerados pelo modelo, alterne para o diretório raiz do pacote recém-criado. Os arquivos de interesse específico incluem o seguinte:
databricks.yml
: arquivo que especifica o nome programático do pacote, inclui uma referência à definição do pipeline e especifica as configurações sobre o workspace de destino.resources/<project-name>_job.yml
eresources/<project-name>_pipeline.yml
: esses arquivos definem o trabalho que contém uma tarefa de atualização de pipeline e as configurações do pipeline.src/dlt_pipeline.ipynb
: arquivo que é um notebook que, quando executado, executa o pipeline.
Para personalizar pipelines, os mapeamentos em uma declaração de pipeline correspondem ao conteúdo de solicitação da operação de pipeline de criação, conforme definido em POST /api/2.0/pipelines na referência da API REST, expressa no formato YAML.
Etapa 4: validar o arquivo de configuração do pacote do projeto
Nesta etapa, você verificará se a configuração do pacote é válida.
No diretório raiz, use a CLI do Databricks para executar o comando
bundle validate
, da seguinte maneira:databricks bundle validate
Se um resumo da configuração do pacote for retornado, então a validação foi bem-sucedida. Se algum erro for retornado, corrija-os e repita essa etapa.
Se você fizer quaisquer alterações em seu pacote após essa etapa, deverá repetir essa etapa para verificar se a configuração do pacote ainda é válida.
Etapa 5: implantar o projeto local no workspace remoto
Nesta etapa, você implantará o notebook local em seu workspace remoto do Azure Databricks e criará o pipeline do Delta Live Tables no workspace.
Na raiz do pacote, use a CLI do Databricks para executar o comando
bundle deploy
, da seguinte maneira:databricks bundle deploy -t dev
Verifique se o notebook local foi implantado: na barra lateral do workspace do Azure Databricks, clique em Workspace.
Clique até chegar na pasta Usuários >
<your-username>
> .pacote ><project-name>
> desenvolvimento > arquivos > src. O notebook deve estar nessa pasta.Verifique se o pipeline foi criado: na barra lateral do workspace do Azure Databricks, clique em Delta Live Tables.
Na guia Delta Live Tables, clique em [dev
<your-username>
]<project-name>
_pipeline.
Se você fizer todas as alterações em seu pacote após esta etapa, deverá repetir as etapas 4 a 5 para verificar se a configuração do pacote ainda é válida e, em seguida, reimplantar o projeto.
Etapa 6: executar o projeto implantado
Nesta etapa, você aciona uma execução do pipeline do Delta Live Tables no seu workspace usando a linha de comando.
No diretório raiz, use a CLI do Databricks para executar o comando
bundle run
, da seguinte maneira, substituindo<project-name>
pelo nome do projeto da Etapa 2:databricks bundle run -t dev <project-name>_pipeline
Copie o valor de
Update URL
que aparece em seu terminal e cole esse valor em seu navegador da Web para abrir seu workspace do Azure Databricks.No workspace do Azure Databricks, depois que o pipeline for concluído com êxito, clique na exibição taxi_raw e na exibição materializada filtered_taxis para ver os detalhes.
Se você fizer todas as alterações no pacote após esta etapa, deverá repetir as etapas de 4 a 6 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.
Etapa 7: limpar
Nesta etapa, você exclui o notebook implantado e o pipeline do workspace.
No diretório raiz, use a CLI do Databricks para executar o comando
bundle destroy
, da seguinte maneira:databricks bundle destroy -t dev
Confirme a solicitação de exclusão de pipeline: quando solicitado a destruir recursos permanentemente, 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 do computador de desenvolvimento, agora poderá excluir o diretório local da Etapa 2.
Adicionar uma definição de pipeline existente a um pacote
Você pode usar uma definição de pipeline do Delta Live Tables existente como base para definir um novo pipeline em um arquivo de configuração de pacote. Para obter uma definição de pipeline existente, recupere-a manualmente usando a interface do usuário ou gere-a programaticamente usando a CLI do Databricks.
Obter uma definição de pipeline existente usando a interface do usuário
Para obter a representação YAML da definição de pipeline existente na interface do usuário do workspace do Azure Databricks:
Na barra lateral do espaço de trabalho do Azure Databricks, clique em Workflows.
Na guia Delta Live Tables, clique no link Nome do seu pipeline.
Ao lado do botão Desenvolvimento, clique no kebab e, em seguida, clique em YAML de configurações de exibição.
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 clicando no ícone de cópia.
Adicione ao arquivo
databricks.yml
do pacote configurável o YAML que você copiou ou crie um arquivo de configuração para seu pipeline na pastaresources
do projeto do pacote configurável e faça referência a ele no arquivodatabricks.yml
. Confira os recursos.Baixe e adicione à origem do projeto do pacote todos os arquivos e notebooks do Python referenciados. Normalmente, os artefatos de pacote estão no diretório
src
em um pacote.Dica
É possível exportar um notebook existente de um workspace do Azure Databricks para o formato
.ipynb
selecionando Arquivo > Exportar > IPython Notebook da interface do usuário de notebook do Azure Databricks.Depois de adicionar seus notebooks, arquivos Python e outros artefatos ao pacote, verifique se a definição do pipeline faz a referência correta a eles. Por exemplo, para um notebook chamado
hello.ipynb
no diretóriosrc/
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 do Databricks
Para gerar programaticamente a configuração do pacote para um pipeline existente:
Recupere a ID do pipeline existente no painel lateral Detalhes do pipeline para o pipeline na interface do usuário ou use o comando
databricks pipelines list-pipelines
na CLI do Databricks.Use o comando
bundle generate pipeline
na CLI do Databricks, configurando o ID do pipeline:databricks bundle generate pipeline --existing-pipeline-id 6565621249
Esse comando cria um arquivo de configuração de pacote para o pipeline na pasta
resources
do pacote e faz download de todos os artefatos referenciados para a pastasrc
.Dica
Quando você usa
bundle deployment bind
pela primeira vez para associar um recurso em um pacote a outro no workspace, o recurso no workspace é atualizado com base na configuração definida no pacote ao qual ele está associado após o próximobundle deploy
. Para obter informações sobrebundle deployment bind
, confira Associar recursos de pacote.