Use as pastas Git da Databricks em CI/CD
Aprenda técnicas para usar Databricks Git pastas em CI/CD fluxo de trabalho. Ao configurar as pastas Databricks Git no workspace, o senhor pode usar o controle de origem para arquivos de projeto nos repositórios Git e integrá-los ao seu pipeline de engenharia de dados.
A maior parte do trabalho de desenvolvimento da automação para as pastas do Git está na configuração inicial das pastas e na compreensão do Databricks Repos REST API que o senhor usa para automatizar as Git operações do Databricks Job. Antes de começar a criar a automação e configurar as pastas, analise os repositórios remotos do Git que serão incorporados aos fluxos de automação e selecione os repositórios certos para os diferentes estágios da automação, incluindo desenvolvimento, integração, preparação e produção.
A figura a seguir fornece uma visão geral que descreve os fluxos básicos para automação usando as pastas Git do Databricks. Nele, há pastas de produção, pastas de usuário e automação criadas usando o Databricks Job que executa o código do Notebook quando acionado.
- Admin fluxo de trabalho : Para fluxos de produção, um administrador Databricks workspace deve configurar pastas de nível superior em seu workspace. O administrador clona um repositório Git e uma ramificação ao criá-los e deve dar a essas pastas nomes significativos, como "Production", "Test" ou "Staging", que correspondem à finalidade dos repositórios Git remotos em seus fluxos de desenvolvimento. Para obter mais detalhes, consulte Pastas Git de produção neste tópico.
- Fluxo de trabalho do usuário : um usuário pode criar uma pasta Git em
/Volumes/Users/<email>/
com base em um repositório remoto Git. Um usuário deve criar uma ramificação local específica do usuário para o trabalho que o usuário commit fará nele e enviará para o repositório remoto. Para obter informações sobre como colaborar em pastas Git específicas do usuário, consulte Colaborar usando pastas Git neste tópico. - merge fluxo de trabalho : Os usuários podem criar pull requests (PRs) a partir de qualquer pasta, o que pode acionar o Databricks Job automation para chamar o Databricks Repos API para testar e processar suas alterações. Essas alterações podem ser enviadas para as ramificações "main" de suas pastas Git de produção, também usando a API Databricks Repos.
Para obter uma visão geral mais abrangente da CI/CD com a Databricks, consulte CI/CD na Databricks.
Escolha uma configuração de pasta Git
Há dois tipos de pastas Databricks Git , que se diferenciam por seu padrão de uso e localização no site workspace:
-
Pastas em nível de usuário . Quando um usuário clona um repositório remoto na interface de usuário Databricks para criar uma pasta Git, a pasta Git é criada em sua pasta pessoal em
/Workspace/Users/<email>/
por default. As pastas em nível de usuário são usadas para desenvolvimento individual. É possível pensar nas pastas Git do Databricks nas pastas de usuários como "checkouts locais" específicos para cada usuário e onde os usuários fazem e enviam alterações em seus códigos. -
Pastas de produção . Uma pasta de produção é criada fora do espaço de trabalho do usuário por um administrador do Databricks e hospeda uma ramificação de produção do repositório de apoio Git. Ele é usado principalmente para a automação da implantação e só deve ser atualizado quando um PR é mesclado no ramo de apoio.
-
Se o senhor ainda não estiver pronto para adotar oDatabricks ativo Bundles, mas quiser que seu código tenha controle de origem, poderá configurar uma pasta de produção Git. O senhor usa a automação para mantê-la atualizada com o repositório e a ramificação remotos do Git. Isso pode ser feito de duas maneiras:
- Use ferramentas externas CI/CD, como GitHub Actions, para puxar o commit mais recente para a pasta de produção Git e criar uma solicitação merge para o repositório e a ramificação remotos Git.
- Crie um trabalho agendado para refresh as outras pastas Git em seu workspace com o estado atual da pasta de produção Git.
Databricks ativo Bundles, que permitem que o senhor defina recursos como Job e pipeline em arquivos de origem, podem ser criados, implantados e gerenciados em uma pasta Git no site workspace. Consulte Colaboração em pacotes no site workspace.
Colaborar usando pastas Git
O senhor pode colaborar facilmente com outras pessoas usando pastas Git, obtendo atualizações e enviando alterações diretamente da interface do usuário do Databricks. Por exemplo, use um recurso ou uma ramificação de desenvolvimento para agregar alterações feitas em várias ramificações de colaboradores.
O fluxo a seguir descreve como colaborar usando uma ramificação de recurso chamada feature-b
com base na ramificação main
.
-
Clone o repositório Git existente para o Databricks workspace .
-
Use a UI de pastas do Git para criar uma ramificação de recurso a partir da ramificação principal. Este exemplo usa um único ramo de recurso
feature-b
para simplificar. O senhor pode criar e usar várias ramificações de recurso para fazer seu trabalho. -
Faça suas modificações no Databricks Notebook e em outros arquivos do repositório.
-
Faça o commit e envie suas alterações para o repositório Git remoto.
-
Os colaboradores agora podem clonar o repositório Git em sua própria pasta de usuário.
- Trabalhando em uma nova filial, um colega de trabalho faz alterações no Notebook e em outros arquivos da pasta Git.
- O colaborador faz o commit e envia suas alterações para o repositório Git remoto.
-
Para merge alterações de outras ramificações ou rebase da ramificação
feature-b
nas pastas Git UI em Databricks, use um dos seguintes fluxos:- mesclar ramificações. Se não houver conflito, o merge é enviado para o repositório remoto Git usando o
git push
. - Rebase em outra filial.
- mesclar ramificações. Se não houver conflito, o merge é enviado para o repositório remoto Git usando o
-
Quando o senhor estiver pronto para merge seu trabalho no repositório remoto Git e na ramificação
main
, use a interface do usuário de pastas Git para merge as alterações defeature-b
. Se preferir, em vez disso, o senhor pode fazer alterações no merge diretamente no repositório Git que faz o backup da pasta Git.
Databricks recomenda que cada desenvolvedor trabalhe em seu próprio ramo de recurso. Para obter informações sobre como resolver conflitos em merge, consulte Resolver conflitos em merge.
Pastas Git de produção
Uma pasta de produção é uma pasta Git designada para produção e implementação. Você pode criá-la em uma pasta de usuário ou como uma pasta de equipe em \Workspace
, por exemplo, \Workspace\Production
. A Databricks recomenda a criação de uma pasta Git específica para a produção.
As pastas de produção são criadas a partir de repositórios remotos com ramificações que servem para agregar alterações ou representar diferentes estágios em sua automação de compilação e implementação, e têm permissões que restringem os usuários de fazer commit diretamente no conteúdo. Para as pastas de produção Git, limite o acesso do usuário a somente leitura e permita que apenas os administradores e a Databricks entidade de serviço editem seu conteúdo. O repositório remoto Git e a ramificação que o suporta devem ser designados especificamente para código pronto para produção e ativo.
Para criar uma pasta de produção do Git:
-
Escolha um repositório e uma ramificação do Git que você use especificamente para produção e implementação do seu código e ativo. Configure a autenticação da entidade de serviço para o repositório e limite os privilégios do usuário Git para que os códigos-fonte não possam ser facilmente alterados por usuários de fora da organização.
-
Crie uma pasta do Databricks Git para o repositório e a ramificação do Git em
Workspace
ou em uma subpasta dedicada a um projeto ou equipe. Dê a ele um nome facilmente identificável, como " Production " ou " Deployment ". -
Selecione Share depois de selecionar a pasta ou Share (Permissions) clicando com o botão direito do mouse na pasta na árvore do espaço de trabalho . Configure a pasta Git com as seguintes permissões:
- Defina Pode executar para todos os usuários do projeto que precisam executar o Notebook ou outro código dessa pasta.
- O senhor pode definir o Can Execution para qualquer conta da Databricks entidade de serviço que irá executar a automação para ela.
- Se for apropriado para o seu projeto, defina Can view para todos os usuários no site workspace para incentivar a descoberta e o compartilhamento.
-
Selecione Adicionar .
Produção Trabalho fluxo de trabalho
Databricks Git As pastas oferecem duas opções para executar o trabalho de produção:
- Opção 1 : Fornecer uma referência Git remota na definição do trabalho. Por exemplo, executar um Notebook específico na ramificação
main
de um repositório Git. - Opção 2 : configurar um repositório Git de produção e chamar as APIs Repos para atualizá-lo programaticamente. Execução Job na pasta Databricks Git que clona esse repositório remoto. A chamada Repos API deve ser a primeira tarefa do trabalho.
Opção 1: execução do trabalho usando o Notebook em um repositório remoto
Simplifique o processo de definição do trabalho e mantenha uma única fonte de verdade executando um trabalho Databricks usando o Notebook localizado em um repositório Git remoto. Essa referência Git pode ser uma Git commit, tag ou branch e é fornecida pelo senhor na definição do trabalho.
Isso ajuda a evitar alterações não intencionais no trabalho de produção, como quando um usuário faz edições locais em um repositório de produção ou troca de ramificações. Ele também automatiza a etapa de CD, pois o senhor não precisa criar uma pasta Git de produção separada no Databricks, gerenciar as permissões para ela e mantê-la atualizada.
Consulte Use Git with Job.
Opção 2: Configurar uma pasta Git de produção e automação Git
Nessa opção, o senhor configura uma pasta Git de produção e uma automação para atualizar a pasta Git no merge.
Etapa 1: configurar pastas de nível superior
Primeiro, peça a um administrador do Databricks que crie pastas de nível superior no seu workspace para conter pastas individuais do Git para as ramificações de desenvolvimento, preparação e produção. Por exemplo, se a sua empresa usa o ramo main
para produção, a pasta Git de produção deve ser configurada para usar o ramo main
.
Normalmente, as permissões nessas pastas de nível superior são somente leitura para todos os usuários não administradores no site workspace. Para essas pastas de nível superior, o site Databricks recomenda que o senhor forneça apenas entidades de serviço com as permissões Can Edit e Can gerenciar para evitar edições acidentais no seu código de produção por usuários do site workspace.
Etapa 2: configurar atualizações automatizadas para as pastas Git da Databricks usando a API
Para manter uma pasta Git em Databricks atualizada com a versão mais recente dos arquivos de origem e do ativo, o senhor pode configurar a automação de Git para chamar o Repos API. Usando as Git ferramentas do seu provedor CI/CD (ou ferramentas compatíveis de terceiros), configure a automação que chama o Repos API endpoint na pasta Git apropriada para atualizá-la com a versão mais recente dos seus códigos-fonte após cada bem-sucedido merge de um PR no ramo principal. Por exemplo, o senhor pode usar o GitHub Actions se o GitHub for seu provedor.
Para obter mais informações sobre o site Databricks Repos API, consulte a documentaçãoDatabricks REST API para Repos.