CI/CD com pastas Git do Databricks

Use pastas Git do Databricks em seus fluxos de CI/CD para manter o trabalho no controle do código-fonte e integrá-lo a fluxos de trabalho de engenharia de dados. Para obter uma visão geral mais ampla de CI/CD com o Azure Databricks, consulte CI/CD no Azure Databricks.

Fluxos de uso

A automação para pastas do Git se concentra na configuração inicial de pastas e na API REST do Azure Databricks Repos para automatizar operações do Git de trabalhos do Azure Databricks. Antes de criar a automação:

  • Examine os repositórios git remotos que você usará.
  • Escolha os repositórios e ramificações certas para cada estágio (desenvolvimento, integração, preparo, produção).

Há três fluxos principais:

  • Fluxo de administrador: o administrador do workspace do Azure Databricks cria pastas de nível superior para hospedar pastas Git de produção. O administrador clona um repositório e um branch ao criar cada pasta e pode nomeá-los por finalidade (por exemplo, "Produção", "Teste" ou "Preparo"). Veja Criar uma pasta Git de produção.
  • Fluxo de usuário: um usuário cria uma pasta Git de /Workspace/Users/<email>/ de um repositório remoto, trabalha em uma ramificação específica do usuário e envia confirmações por push para o remoto. Veja Colaborar usando pastas Git.
  • Fluxo de mesclagem: após enviar por push de uma pasta Git, os usuários abrem solicitações de pull (PRs). Quando a PR é mesclada, a automação pode efetuar pull de alterações nas pastas Git de produção usando a API do Azure Databricks Repos.

Colaborar usando pastas Git

Para colaborar com outras pessoas, efetue pull e envie por push as alterações da interface do usuário do Azure Databricks. Um padrão comum é usar uma funcionalidade ou um ramo de desenvolvimento para agregar trabalho.

Para colaborar em uma ramificação de recurso:

  1. Clone seu repositório do Git existente para o workspace do Databricks.
  2. Na interface do usuário de pastas Git, crie uma ramificação de recurso da ramificação principal. Você pode usar várias ramificações de funcionalidades conforme necessário.
  3. Edite notebooks do Azure Databricks e outros arquivos no repositório.
  4. Confirme e envie suas alterações por push para o repositório remoto.
  5. Outros colaboradores podem clonar o repositório em sua própria pasta de usuário. Eles funcionam em uma ramificação, alteram blocos de anotações e arquivos na pasta Git e, depois, confirmam e efetuam push para o remoto.
  6. Quando estiver pronto, crie uma PR em seu provedor Git, analise com sua equipe e mescle na ramificação de implantação.

Observação

O Databricks recomenda que cada desenvolvedor trabalhe em seu próprio ramo. Para resolver conflitos de mesclagem, consulte Resolver conflitos de mesclagem.

Escolher uma abordagem de CI/CD

O Databricks recomenda pacotes de automação declarativa para empacotar e implantar fluxos de trabalho de CI/CD. Se você preferir implantar apenas o código no workspace, poderá usar uma pasta Git de produção. Para obter uma visão geral mais ampla de CI/CD, consulte CI/CD no Azure Databricks.

Dica

Defina recursos como jobs e pipelines na fonte usando bundles, depois crie, implante e gerencie-os nas pastas Git do workspace. Consulte Colaborar em pacotes no workspace.

Criar uma pasta git de produção

As pastas Git de produção são diferentes das pastas Git no nível do usuário em /Workspace/Users/. As pastas em nível de usuário são check-outs locais em que usuários desenvolvem e efetuam push de alterações. As pastas Git de produção são criadas por administradores fora das pastas dos usuários, mantêm ramificações de implantação e são a origem para fluxos de trabalho automatizados. Eles devem ser atualizados apenas pela automação quando as PRs são mescladas em ramificações de implantação. Restringir as pastas Git de produção ao acesso apenas para execução para a maioria dos usuários. Permitir que somente administradores e entidades de serviço do Azure Databricks os editem.

Diretórios de produção do Git mapeados para a ramificação principal em um repositório remoto.

Para criar uma pasta git de produção:

  1. Escolha o repositório Git e o branch para implantação.

  2. Crie ou use uma entidade de serviço e configure uma credencial do Git para que ela possa acessar esse repositório.

  3. Crie uma pasta Git do Azure Databricks para o repositório e ramificação em uma subpasta no Workspace (por exemplo, por projeto, equipe ou estágio).

  4. Selecione a pasta e, em seguida, compartilhe (ou clique com o botão direito do mouse em Compartilhar (Permissões) na árvore do Workspace).

  5. Atribuir níveis de permissões:

    • Pode ser executado para usuários de projeto que precisam executar fluxos de trabalho.
    • Pode executar para qualquer entidade de serviço do Azure Databricks que execute automação nesta pasta.
    • Opcionalmente, pode exibir para todos os usuários do workspace, em apoio à descoberta e ao compartilhamento.

    A janela de diálogo modal da pasta Git de compartilhamento.

  6. Clique em Adicionar.

  7. Mantenha a pasta Git de produção sincronizada com o branch remoto usando uma destas opções:

    • CI/CD externo: use ferramentas como o GitHub Actions para efetuar pull das confirmações mais recentes quando uma PR for mesclada na ramificação de implantação. Para obter um exemplo, consulte Executar um fluxo de trabalho de CI/CD que atualiza uma pasta Git.
    • Trabalho agendado: se CI/CD externo não estiver disponível, execute um trabalho agendado que atualize a pasta Git. Use um notebook simples que funcione com um cronograma.
    from databricks.sdk import WorkspaceClient
    w = WorkspaceClient()
    w.repos.update(w.workspace.get_status(path="<git-folder-workspace-full-path>").object_id, branch="<branch-name>")
    

Para obter mais informações sobre como automatizar com a API de Repos, consulte a documentação da API REST do Databricks para Repos.