Compartilhar via


Desenvolver um trabalho no Azure Databricks usando 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 recursos do Azure Databricks, como trabalhos. Você também pode usar pacotes para gerenciar programaticamente pipelines do Delta Live Tables e trabalhar com MLOps Stacks. Veja que são pacotes de ativos do Databricks?.

Este artigo descreve as etapas que você pode concluir a partir de uma configuração de desenvolvimento local para usar um pacote que gerencia programaticamente um trabalho. Consulte Introdução aos fluxos de trabalho do Azure Databricks.

Se você tiver trabalhos existentes que foram criados usando a interface do usuário ou a API de fluxos de trabalho do Azure Databricks que você deseja mover para pacotes, você deverá recriá-los como arquivos de configuração de pacote. Para fazer isso, o Databricks recomenda que você primeiro crie um pacote usando as etapas abaixo e valide se o pacote funciona. Em seguida, você pode adicionar definições de trabalho, notebooks e outras fontes ao pacote. Consulte Adicionar uma definição de trabalho existente a um pacote.

Além de usar a CLI do Databricks para executar um trabalho implantado por um pacote, você também pode exibir e executar esses trabalhos na interface do usuário do Azure Databricks Jobs. Confira Exibir e executar um trabalho criado com um Pacote de Ativos do Databricks.

Requisitos

  • CLI do Databricks versão 0.218 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.

Decisão: Criar o pacote usando um modelo ou manualmente

Decida se deseja criar um pacote de exemplo usando um modelo ou manualmente:

Criar o pacote usando um modelo

Nessas etapas, você cria o pacote usando o modelo de pacote padrão do Azure Databricks para Python, que consiste em um notebook ou código Python, emparelhado com a definição de um trabalho para executá-lo. Em seguida, você valida, implanta e executa o trabalho implantado em seu workspace do Azure Databricks. O espaço de trabalho remoto deve ter arquivos de espaço de trabalho habilitados. Consulte O que são Arquivos de workspace?.

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.

  1. 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>
    
  2. 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 comando databricks auth env --profile <profile-name>.

  3. No seu navegador da Web, complete as instruções na tela para iniciar sessão no seu workspace do Azure Databricks.

  4. 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

Um pacote contém os artefatos que você deseja implantar e as configurações para os fluxos de trabalho que deseja executar.

  1. 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.

  2. Use a CLI do Dataricks para executar o comando bundle init:

    databricks bundle init
    
  3. Para Template to use, deixe o valor padrão default-python pressionando Enter.

  4. Para Unique name for this project, deixe o valor padrão de my_project, ou digite um valor diferente e pressione Enter. Isso determina o nome do diretório raiz para esse pacote. Esse diretório raiz é criado no diretório de trabalho atual.

  5. Para Include a stub (sample) notebook, selecionar yes e pressionar Enter.

  6. Para Include a stub (sample) DLT pipeline, selecionar no e pressionar Enter. Isso instrui a CLI do Databricks a não definir um pipeline de tabelas dinâmicas delta de exemplo em seu pacote.

  7. Para Include a stub (sample) Python package, selecionar no e pressionar Enter. 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 exibir os arquivos que o modelo gerou, alterne para o diretório raiz do pacote recém-criado e abra esse diretório com seu IDE preferido, por exemplo, o Visual Studio Code. Os arquivos de interesse específico incluem o seguinte:

  • databricks.yml: este arquivo especifica o nome programático do pacote, inclui uma referência à definição do trabalho e especifica as configurações sobre o workspace de destino.
  • resources/<project-name>_job.yml: esse arquivo especifica as configurações do trabalho, incluindo uma tarefa de notebook padrão.
  • src/notebook.ipynb: esse arquivo é um notebook de exemplo que, quando executado, apenas inicializa um RDD que contém os números de 1 a 10.

Para personalizar trabalhos, os mapeamentos em uma declaração de trabalho correspondem ao conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML.

Dica

Você pode definir, combinar e substituir as configurações de novos clusters de trabalho em pacotes usando as técnicas descritas nas configurações de cluster de substituição nos Pacotes de Ativos do Databricks.

Etapa 4: validar o arquivo de configuração do pacote do projeto

Nesta etapa, você verificará se a configuração do pacote é válida.

  1. No diretório raiz, use a CLI do Databricks para executar o comando bundle validate, da seguinte maneira:

    databricks bundle validate
    
  2. 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 no workspace remoto do Azure Databricks e criará o trabalho do Azure Databricks em seu workspace.

  1. Na raiz do pacote, use a CLI do Databricks para executar o comando bundle deploy, da seguinte maneira:

    databricks bundle deploy -t dev
    
  2. Verifique se o notebook local foi implantado: na barra lateral do workspace do Azure Databricks, clique em Workspace.

  3. Clique até chegar na pasta Usuários ><your-username>> .pacote ><project-name>> desenvolvimento > arquivos > src. O notebook deve estar nessa pasta.

  4. Verifique se o trabalho foi criado: na barra lateral do espaço de trabalho do Azure Databricks, clique em Fluxos de trabalho.

  5. Na guia Trabalhos, clique em [desenvolvimento <your-username>] <project-name>_job.

  6. Clique na guia Tarefas. Deve haver uma tarefa: notebook_task.

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ê executa o trabalho do Azure Databricks em seu workspace.

  1. 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>_job
    
  2. Copie o valor de Run URL que aparece em seu terminal e cole esse valor em seu navegador da Web para abrir seu workspace do Azure Databricks.

  3. No workspace do Azure Databricks, depois que a tarefa de trabalho for concluída com êxito e mostrar uma barra de título verde, clique na tarefa do trabalho para ver os resultados.

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 trabalho do workspace.

  1. No diretório raiz, use a CLI do Databricks para executar o comando bundle destroy, da seguinte maneira:

    databricks bundle destroy
    
  2. Confirme a solicitação de exclusão de trabalho: quando solicitado a destruir recursos permanentemente, digite y e pressione Enter.

  3. 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 pressione Enter.

  4. Se você também quiser excluir o pacote do computador de desenvolvimento, agora poderá excluir o diretório local da Etapa 2.

Você chegou ao final das etapas para criar um pacote usando um modelo.

Criar o pacote manualmente

Nessas etapas, você cria um pacote do zero. Esse pacote simples consiste em dois notebooks e na definição de um trabalho do Azure Databricks para executar esses notebooks. Em seguida, você valida, implanta e executa os notebooks implantados do trabalho no workspace do Azure Databricks. Essas etapas automatizam o início rápido intitulado Criar seu primeiro fluxo de trabalho com um trabalho do Azure Databricks.

Etapa 1: Criar o pacote

Um pacote contém os artefatos que você deseja implantar e as configurações para os fluxos de trabalho que deseja executar.

  1. Crie ou identifique um diretório vazio em sua máquina de desenvolvimento.
  2. Alterne para o diretório vazio no terminal ou abra o diretório vazio no IDE.

Dica

Seu diretório vazio pode ser associado a um repositório clonado gerenciado por um provedor Git. Isso permite que você gerencie seu pacote com controle de versão externo e colabore mais facilmente com outros desenvolvedores e profissionais de TI em seu projeto. No entanto, para ajudar a simplificar essa demonstração, um repositório clonado não é usado aqui.

Se você optar por clonar um repositório para essa demonstração, o Databricks recomenda que o repositório esteja vazio ou tenha apenas arquivos básicos, como README e .gitignore. Caso contrário, quaisquer arquivos pré-existentes no repositório poderão ser sincronizados desnecessariamente com seu espaço de trabalho do Azure Databricks.

Etapa 2: adicionar blocos de anotações ao projeto

Nesta etapa, você adiciona dois blocos de anotações ao seu projeto. O primeiro caderno recebe uma lista de nomes de bebês em alta desde 2007 das fontes de dados públicos do Departamento de Saúde do Estado de Nova York. Veja Nomes de bebês: tendência por nome: início de 2007 no site do departamento. Depois, o primeiro notebook salva esses dados no volume do Catálogo do Unity do Azure Databricks chamado my-volume, em um esquema chamado default dentro de um catálogo chamado main. O segundo bloco de anotações consulta os dados salvos e exibe contagens agregadas dos nomes dos bebês por nome e sexo para 2014.

  1. Na raiz do diretório, crie o primeiro bloco de anotações, um arquivo chamado retrieve-baby-names.py.

  2. Adicione o seguinte código ao arquivo retrieve-baby-names.py:

    # Databricks notebook source
    import requests
    
    response = requests.get('http://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv')
    csvfile = response.content.decode('utf-8')
    dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)
    
  3. Crie o segundo bloco de anotações, um arquivo chamado filter-baby-names.py, no mesmo diretório.

  4. Adicione o seguinte código ao arquivo filter-baby-names.py:

    # Databricks notebook source
    babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv")
    babynames.createOrReplaceTempView("babynames_table")
    years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist()
    years.sort()
    dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
    display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
    

Etapa 3: Adicionar um arquivo de esquema de configuração de pacote ao projeto

Se você estiver usando um IDE, como Visual Studio Code, PyCharm Professional ou IntelliJ IDEA Ultimate que fornece suporte para arquivos YAML e arquivos de esquema JSON, você pode usar seu IDE para não apenas criar o arquivo de esquema de configuração de pacote, mas também para verificar a sintaxe e a formatação do arquivo de configuração do pacote do projeto e fornecer dicas de conclusão de código da seguinte maneira. Observe que, embora o arquivo de configuração de pacote que você criará posteriormente na Etapa 5 seja baseado em YAML, o arquivo de esquema de configuração de pacote nesta etapa é baseado em JSON.

Código do Visual Studio

  1. Adicione suporte ao servidor de linguagem YAML ao Visual Studio Code, por exemplo, instalando a extensão YAML do Visual Studio Code Marketplace.

  2. Gere o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks para executar o comando bundle schema e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamado bundle_config_schema.json no diretório atual, da seguinte maneira:

    databricks bundle schema > bundle_config_schema.json
    
  3. Observe que, posteriormente, na Etapa 5, você adicionará o seguinte comentário ao início do arquivo de configuração de pacote, que associa seu arquivo de configuração de pacote ao arquivo de esquema JSON especificado:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    Observação

    No comentário anterior, se o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks estiver em um caminho diferente, substitua bundle_config_schema.json pelo caminho completo para o arquivo de esquema.

Pycharm professsional

  1. Gere o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks para executar o comando bundle schema e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamado bundle_config_schema.json no diretório atual, da seguinte maneira:

    databricks bundle schema > bundle_config_schema.json
    
  2. Configure o PyCharm para reconhecer o arquivo de esquema JSON de configuração de pacote e conclua o mapeamento de esquema JSON seguindo as instruções em Configurar um esquema JSON personalizado.

  3. Observe que, posteriormente, na Etapa 5, você usará o PyCharm para criar ou abrir um arquivo de configuração de pacote. Por convenção, esse arquivo é nomeado databricks.yml.

Intellij idea ultimate

  1. Gere o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks para executar o comando bundle schema e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamado bundle_config_schema.json no diretório atual, da seguinte maneira:

    databricks bundle schema > bundle_config_schema.json
    
  2. Configure o IntelliJ IDEA para reconhecer o arquivo de esquema JSON de configuração de pacote e conclua o mapeamento de esquema JSON seguindo as instruções em Configurar um esquema JSON personalizado.

  3. Observe que, posteriormente, na Etapa 5, você usará o IntelliJ IDEA para criar ou abrir um arquivo de configuração de pacote. Por convenção, esse arquivo é nomeado databricks.yml.

Etapa 4: 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.

  1. 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>
    
  2. 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 comando databricks auth env --profile <profile-name>.

  3. No seu navegador da Web, complete as instruções na tela para iniciar sessão no seu workspace do Azure Databricks.

  4. 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 5: Adicionar um arquivo de configuração de pacote ao projeto

Nesta etapa, você define como deseja implantar e executar os dois blocos de anotações. Para esta demonstração, você deseja usar um trabalho do Azure Databricks para executar o primeiro bloco de anotações e, em seguida, o segundo bloco de anotações. Como o primeiro bloco de anotações salva os dados e o segundo bloco de anotações consulta os dados salvos, você deseja que o primeiro bloco de anotações termine de ser executado antes que o segundo bloco de anotações seja iniciado. Você modela esses objetivos em um arquivo de configurações de pacote em seu projeto.

  1. Na raiz do diretório, crie o arquivo de configuração do pacote, um arquivo chamado databricks.yml.
  2. Adicione o seguinte código ao arquivo databricks.yml, substituindo <workspace-url> pela URL por espaço de trabalho, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net. Essa URL deve corresponder à do arquivo .databrickscfg:

Dica

A primeira linha, começando com # yaml-language-server, será necessária somente se o IDE der suporte a ela. Consulte a Etapa 3 anteriormente para obter detalhes.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: baby-names

resources:
  jobs:
    retrieve-filter-baby-names-job:
      name: retrieve-filter-baby-names-job
      job_clusters:
        - job_cluster_key: common-cluster
          new_cluster:
            spark_version: 12.2.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1
      tasks:
        - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./retrieve-baby-names.py
        - task_key: filter-baby-names-task
          depends_on:
            - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./filter-baby-names.py

targets:
  development:
    workspace:
      host: <workspace-url>

Para personalizar trabalhos, os mapeamentos em uma declaração de trabalho correspondem ao conteúdo de solicitação da operação de criação de trabalho, conforme definido em POST /api/2.1/jobs/create na referência da API REST, expressa no formato YAML.

Dica

Você pode definir, combinar e substituir as configurações de novos clusters de trabalho em pacotes usando as técnicas descritas nas configurações de cluster de substituição nos Pacotes de Ativos do Databricks.

Etapa 6: validar o arquivo de configuração do pacote do projeto

Nesta etapa, você verificará se a configuração do pacote é válida.

  1. Use a CLI do Databricks para executar o comando bundle validate da seguinte maneira:

    databricks bundle validate
    
  2. Se um resumo da configuração do pacote for retornado, a validação terá sido 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 7: implantar o projeto local no espaço de trabalho remoto

Nesta etapa, você implanta os dois blocos de anotações locais em seu espaço de trabalho remoto do Azure Databricks e cria o trabalho do Azure Databricks em seu espaço de trabalho.

  1. Use a CLI do Databricks para executar o comando bundle deploy da seguinte maneira:

    databricks bundle deploy -t development
    
  2. Verifique se os dois blocos de anotações locais foram implantados: na barra lateral do espaço de trabalho do Azure Databricks, clique em Espaço de trabalho.

  3. Clque até chegar na pasta Usuários ><your-username>> .pacote > baby-names > desenvolvimento > arquivos. Os dois blocos de anotações devem estar nesta pasta.

  4. Verifique se o trabalho foi criado: na barra lateral do espaço de trabalho do Azure Databricks, clique em Fluxos de trabalho.

  5. Na guia Trabalhos, clique em retrieve-filter-baby-names-job.

  6. Clique na guia Tarefas. Deve haver duas tarefas: retrieve-baby-names-task e filter-baby-names-task.

Se você fizer todas as alterações em seu pacote após esta etapa, deverá repetir as etapas 6 a 7 para verificar se a configuração do pacote ainda é válida e, em seguida, reimplantar o projeto.

Etapa 8: Executar o projeto implantado

Nesta etapa, você executa o trabalho do Azure Databricks em seu workspace.

  1. Use a CLI do Databricks para executar o comando bundle run da seguinte maneira:

    databricks bundle run -t development retrieve-filter-baby-names-job
    
  2. Copie o valor de Run URL que aparece em seu terminal e cole esse valor em seu navegador da Web para abrir seu espaço de trabalho do Azure Databricks.

  3. No seu espaço de trabalho do Azure Databricks, depois que as duas tarefas forem concluídas com êxito e mostrarem barras de título verdes, clique na tarefa filter-baby-names-task para ver os resultados da consulta.

Se você fizer todas as alterações no pacote após esta etapa, deverá repetir as etapas de 6 a 8 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.

Passo 9: limpar

Nesta etapa, você exclui os dois blocos de anotações implantados e o trabalho do seu espaço de trabalho.

  1. Use a CLI do Databricks para executar o comando bundle destroy da seguinte maneira:

    databricks bundle destroy
    
  2. Confirme a solicitação de exclusão de trabalho: quando solicitado a destruir recursos permanentemente, digite y e pressione Enter.

  3. Confirme a solicitação de exclusão dos blocos de anotações: quando solicitado a destruir permanentemente a pasta implantada anteriormente e todos os seus arquivos, digite y e pressione Enter.

A execução do comando bundle destroy exclui apenas o trabalho implantado e a pasta que contém os dois blocos de anotações implantados. Esse comando não exclui efeitos colaterais, como o arquivo de babynames.csv que o primeiro bloco de anotações criou. Para excluir o arquivo babybnames.csv, faça o seguinte:

  1. Na barra lateral do seu workspace do Azure Databricks, clique em Catálogo.
  2. Clique em Procurar DBFS.
  3. Clique na pasta FileStore.
  4. Clique na seta suspensa ao lado de babynames.csv e clique em Excluir.
  5. Se você também quiser excluir o pacote do computador de desenvolvimento, agora poderá excluir o diretório local da Etapa 1.

Adicionar uma definição de trabalho existente a um pacote

Você pode usar uma definição de trabalho existente como base para definir um novo trabalho em um arquivo de configuração de pacote. Para fazer isso, execute estas etapas.

Observação

As etapas a seguir criam um novo trabalho que tem as mesmas configurações do trabalho existente. No entanto, o novo trabalho tem uma ID de trabalho diferente do trabalho existente. Você não pode importar automaticamente uma ID de trabalho existente para um pacote.

Etapa 1: obter a definição de trabalho existente no formato YAML

Nesta etapa, utilize a interface do usuário do workspace do Azure Databricks para obter a representação YAML da definição de trabalho existente.

  1. Na barra lateral do espaço de trabalho do Azure Databricks, clique em Workflows.
  2. Na guia Trabalhos, clique no link Nome do trabalho.
  3. Ao lado do botão Executar agora, clique nas reticências e, em seguida, clique em Exibir YAML.
  4. Na guia Trabalhos, copie o YAML da definição do trabalho para a área de transferência local, clicando em Copiar.

Etapa 2: adiciona o YAML de definição de trabalho a um arquivo de configuração do pacote

No arquivo de configuração do pacote, adicione o YAML copiado da etapa anterior a um dos seguintes locais rotulados <job-yaml-can-go-here> nos arquivos de configuração do pacote, da seguinte maneira:

resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      <job-yaml-can-go-here>

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <some-unique-programmatic-identifier-for-this-job>:
          <job-yaml-can-go-here>

Etapa 3: adicionar notebooks, arquivos Python e outros artefatos ao pacote

Todos os arquivos e notebooks do Python referenciados no trabalho existente devem ser movidos para as fontes do pacote.

Para obter melhor compatibilidade com pacotes, os notebooks devem usar o formato de notebook IPython (.ipynb). Se você desenvolver o pacote localmente, poderá exportar um notebook existente de um workspace do Azure Databricks para o formato .ipynb clicando em Arquivo > Exportar > IPython Notebook da interface do usuário do notebook do Azure Databricks. Por convenção, você deve colocar o bloco de anotações baixado no diretório src/ em seu pacote.

Depois de adicionar seus notebooks, arquivos Python e outros artefatos ao pacote, verifique se a definição do trabalho faz referência a eles. Por exemplo, para um notebook com o nome do arquivo de hello.ipynb que está em um diretório src/ e o diretório src/ está na mesma pasta que o arquivo de configuração de pacote que faz referência ao diretório src/, a definição do trabalho pode ser expressa da seguinte maneira:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
      - task_key: hello-task
        notebook_task:
          notebook_path: ./src/hello.ipynb

Etapa 4: Validar, implantar e executar o novo trabalho

  1. Valide se os arquivos de configuração do pacote estão sintaticamente corretos executando o seguinte comando:

    databricks bundle validate
    
  2. Implante o pacote executando o comando a seguir. Neste comando, substitua <target-identifier> pelo identificador programático exclusivo para o destino da configuração do pacote:

    databricks bundle deploy -t <target-identifier>
    
  3. Execute o trabalho com o comando a seguir.

    databricks bundle run -t <target-identifier> <job-identifier>
    
    • Substitua <target-identifier> pelo identificador programático exclusivo para o destino da configuração do pacote.
    • Substitua <job-identifier> pelo identificador programático exclusivo para o trabalho da configuração do pacote.

Configurar um trabalho que usa computação sem servidor

Importante

A computação sem servidor para fluxos de trabalho está em Visualização pública. Para obter informações sobre qualificação e habilitação, confira Habilitar a visualização pública de computação sem servidor.

Os exemplos a seguir demonstram configurações de pacote para criar um trabalho que usa computação sem servidor.

Para usar a computação sem servidor para executar um trabalho que inclui tarefas de notebook, omita a configuração job_clusters do arquivo de configuração do pacote.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: baby-names

resources:
  jobs:
    retrieve-filter-baby-names-job-serverless:
      name: retrieve-filter-baby-names-job-serverless
      tasks:
        - task_key: retrieve-baby-names-task
          notebook_task:
            notebook_path: ./retrieve-baby-names.py
        - task_key: filter-baby-names-task
          depends_on:
            - task_key: retrieve-baby-names-task
          notebook_task:
            notebook_path: ./filter-baby-names.py

  targets:
    development:
      workspace:
        host: <workspace-url>

Para usar a computação sem servidor para executar um trabalho que inclui tarefas do Python, inclua a configuração environments.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: serverless-python-tasks

resources:
jobs:
  serverless-python-job:
    name: serverless-job-with-python-tasks

    tasks:
      - task_key: wheel-task-1
        python_wheel_task:
          entry_point: main
          package_name: wheel_package
        environment_key: Default

    environments:
      - environment_key: Default
        spec:
          client: "1"
          dependencies:
            - workflows_authoring_toolkit==0.0.1

targets:
  development:
    workspace:
      host: <workspace-url>

Confira Executar seu trabalho do Azure Databricks com computação sem servidor para fluxos de trabalho.