Grupo-4.svg
Versionamento no Databricks e integração com Git em workflows de dados

Descubra os benefícios do controle de versão de seu trabalho no Databricks. Saiba como transformar processos complexos em fluxos de trabalho organizados e colaborativos que melhoram a qualidade de seus projetos de dados. Ao seguir as práticas recomendadas de controle de versão, os profissionais de dados podem acompanhar as alterações, colaborar com mais eficiência, evitar conflitos de código e garantir a reprodutibilidade de seus pipelines de dados.

No mundo da engenharia de dados, a combinação de poderosas ferramentas de controle de versão com os recursos analíticos da Databricks pode aumentar significativamente a produtividade da equipe e a confiabilidade do sistema. Descubra como implementar um sistema de controle de versão eficaz no Databricks e obter resultados significativos para a sua equipe de dados.

O que é o controle de versão de código e por que ele é essencial na Databricks?

O controle de versão de código é um sistema que rastreia as alterações nos arquivos ao longo do tempo, permitindo que você recupere versões específicas sempre que necessário. Em plataformas como a Databricks, em que notebooks, scripts e trabalhos são fundamentais para os fluxos de trabalho de dados, o controle de versão se torna ainda mais essencial.

Por que o controle de versão do código é essencial na Databricks?
Por que o controle de versão do código é essencial na Databricks?

Desafios do desenvolvimento sem controle de versão no Databricks

Sem um sistema de controle de versão adequado, as equipes que usam o Databricks enfrentam problemas como:

Como um engenheiro de dados compartilhou recentemente: "Perdemos dois dias inteiros de trabalho quando um notebook de produção foi sobrescrito acidentalmente. O controle de versão teria nos poupado essa dor de cabeça".

Benefícios do controle de versão adequado

A implementação de práticas sólidas de controle de versão traz várias vantagens importantes:

Integração da Databricks com o Git: A base do controle de versão

Conectar o Databricks a sistemas Git, como GitHub, GitLab ou Azure DevOps, estabelece as bases para um controle de versão robusto. Essa integração traz o poder do controle de versão distribuído para seus fluxos de trabalho de dados.

Configuração da integração do Git no Databricks

Para configurar a integração do Git no Databricks, siga estas etapas:

Aqui está um exemplo de como configurá-lo usando a API REST do Databricks:

import requests
import json

databricks_instance = “https://seuworkspace.databricks.com”
api_token = “api_token”
headers = {“Authorization”: f”Bearer {api_token}}

git_config = {
“personal_access_token”: “personal_access_token”,
“git_username”: “git_username”,
“git_provider”: “gitHub” # or “gitLab”,
# “azureDevOpsServices”
# “bitbucketCloud”
}

response = requests.patch(
f"{databricks_instance}/api/2.0/git-credentials",
headers=headers,
data=json.dumps(git_config)
)

print(f”status: {response.status_code})
print(f”response: {response.json()})

Fluxos de trabalho comuns do Git no Databricks

Os fluxos de trabalho com Git mais eficazes para equipes que usam Databricks incluem: 

Fluxo do Git

Ideal para equipes maiores com ciclos de lançamento regulares, o Git Flow define ramificações específicas:

Fluxo do GitHub

Mais simples e mais adequado para implantação contínua:

Fluxo do GitLab

Adiciona branches específicos do ambiente ao GitHub Flow:

Pastas Git: Controle de versão nativo na plataforma Databricks

O Git Folders (anteriormente conhecido como Databricks Repos) é um recurso nativo que facilita o trabalho com repositórios Git diretamente na interface do Databricks, trazendo o controle de versão para a própria plataforma.

Principais recursos do Git Folders

Como configurar e usar as pastas do Git

Para começar a usar o Git Folders no Databricks:

Uma vez configurado, você pode:

Organização de código com pastas do Git

Uma estrutura eficaz para organizar projetos de dados nas pastas do Git pode ser assim:

project/
|- notebooks/
| | |- bronze/ # ingestão e validação inicial
| | |- silver/ # transformações intermediárias
| |- gold/ # camada analítica e modelagem
|- conf/ # configurações específicas do ambiente
|- jobs/ # definições de trabalho
|- libraries/ # bibliotecas compartilhadas
|- tests/ # testes automatizados
|- README.md

Práticas recomendadas para controle de versão no Databricks

Seguir essas práticas garantirá um processo de controle de versão robusto e eficiente.

Obtenção de um controle de versão robusto.
Obtenção de um controle de versão robusto.

Estrutura do repositório e organização do código

Estratégias de ramificação para diferentes ambientes

Uma estratégia eficaz inclui filiais dedicadas para:

Implemente gates de qualidade entre ambientes usando solicitações pull com as aprovações necessárias.

Revisão de código e solicitações pull

Seu processo de revisão de código deve incluir:

Controle de versão semântico para bibliotecas e versões

Adotar o controle de versão semântico(SemVer) para todas as versões:

Integração de CI/CD com controle de versão

Integre seu processo de controle de versão aos pipelines de CI/CD:

# Exemplo de um pipeline de CI/CD para Databricks no Azure DevOps
trigger:
branches:
include:
- desenvolver
- principais

estágios:
- estágio: BuildAndTest
trabalhos:
- job: UnitTests
steps:
- script: pytest tests/unit
displayName: 'Run Unit Tests' (Executar testes de unidade)

- stage: DeployToQA
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))
trabalhos:
- job: DeployNotebooks
etapas:
- task: DatabricksDeployment@0
entradas:
databricksAccessToken: $(databricks_qa_token)
workspaceUrl: 'https://qa-workspace.databricks.com'
notebooksFolderPath: '$(Build.SourcesDirectory)/notebooks'
notebooksTargetPath: '/Shared/project-name'

- stage: DeployToProd
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
trabalhos:
- job: DeployNotebooks
etapas:
- task: DatabricksDeployment@0
inputs:
databricksAccessToken: $(databricks_prod_token)
workspaceUrl: 'https://prod-workspace.databricks.com'
notebooksFolderPath: '$(Build.SourcesDirectory)/notebooks'
notebooksTargetPath: '/Shared/project-name'

Ferramentas complementares para controle de versão em Databricks

Para aprimorar ainda mais seu processo de controle de versão, considere o uso das seguintes ferramentas complementares.

Utilitário de exportação de Notebooks do Databricks

Esse utilitário permite que você exporte notebooks de forma programática:

import os
from databricks_cli.workspace.api import WorkspaceApi
from databricks_cli.configure.provider import ProfileConfigProvider
from databricks_cli.sdk.api_client import ApiClient

def export_notebooks(source_path, target_dir, format=“SOURCE”):
“””
Exports all notebooks from a Databricks workspace directory to local files.

Args:
source_path: Path of the directory in the Databricks workspace
target_dir: Local directory to save the notebooks
format: Export format (SOURCE, HTML, JUPYTER)
“””

config = ProfileConfigProvider(“DEFAULT”).get_config()
api_client = ApiClient(host=config.host, token=config.token)
workspace_api = WorkspaceApi(api_client)

# list all objects in the directory
objects = workspace_api.list(source_path)

if not os.path.exists(target_dir):
os.makedirs(target_dir)

for obj in objects:
target_path = os.path.join(target_dir, obj.basename)

if obj.object_type == “DIRECTORY”:
# recursively export subdirectories
export_notebooks(obj.path, target_path, format)
elif obj.object_type == “NOTEBOOK”:
# export the notebook
with open(f”{target_path}.py”, “wb”) as f:
content = workspace_api.export(obj.path, format)
f.write(content)
print(f”Exported: {obj.path} -> {target_path}.py”)

# example usage
export_notebooks(“/Shared/Project”, “./backup_notebooks”)

dbx: CLI para fluxos de trabalho do Databricks

dbx é uma ferramenta de linha de comando que simplifica:

Instalação e configuração básicas:

pip install dbx

# initialize a new project
dbx init –template jobs-minimal

# deploy a job
dbx deploy —jobs=job_name –environment=dev

Integrações com gerenciadores de pacotes

Para bibliotecas Python compartilhadas:

# create package structure
mkdir -p mypackage/mypackage
touch mypackage/setup.py
mypackage/mypackage/__init__.py

# in setup.py
from setuptools import setup, find_packages

setup(
name=“mypackage”,
version=“0.1.0”,
packages=find_packages(),
install_requires=[
“pyspark>=3.0.0”,
“delta-spark>=1.0.0”
]
)

# build and upload to cluster
python setup.py sdist bdist_wheel
databricks fs cp ./dist/mypackage-0.1.0.whl dbfs:/FileStore/packages/

Desenvolvimento colaborativo com controle de versão no Databricks

O controle de versão adequado é a base para o desenvolvimento colaborativo eficiente no Databricks.

Gerenciamento de conflitos e fusão

Gerenciar conflitos de forma eficaz:

Documentação integrada ao controle de versão

Vincule sua documentação ao controle de versão:

Cultura de treinamento e controle de versão

Criar uma forte cultura de controle de versão:

Implementação do controle de versão em projetos existentes

A migração de projetos existentes para um sistema de controle de versão requer um planejamento cuidadoso.

Estratégias de migração

Uma abordagem gradual e segura inclui:

Estudo de caso: Otimização de uma plataforma de dados no setor financeiro

Uma empresa de gestão de investimentos transformou sua infraestrutura de dados após identificar limitações críticas em sua nova plataforma. O projeto se concentrou em três pilares principais: otimização do desempenho, governança robusta e redução dos custos operacionais.

A abordagem implementada incluiu:

Isso resultou em resultados mensuráveis, como:

Essa transformação destaca como a especialização direcionada pode transformar desafios técnicos em vantagens competitivas, estabelecendo uma base sólida para o crescimento sustentável no setor financeiro.

Conclusão: O futuro do controle de versão em bancos de dados

O controle de versão de código adequado é essencial para as equipes de dados que trabalham com Databricks. Com a integração do Git, os repositórios do Databricks e as práticas recomendadas descritas neste artigo, sua equipe pode colaborar de forma mais eficaz, segura e eficiente.

A implementação de um sistema robusto de controle de versão traz benefícios imediatos em termos de rastreabilidade, qualidade do código e produtividade da equipe. Ele também estabelece uma base sólida para a adoção de práticas avançadas, como DevOps de dados e MLOps.

Comece hoje mesmo a versionar seu código no Databricks. Sua equipe agradecerá pela clareza, segurança e eficiência que isso traz.

Sobre a Indicium

A Indicium é líder global em serviços de dados e inteligência artificial, criada para ajudar empresas a resolver o que importa agora e se preparar para o que vem depois. Com um investimento de 40 milhões de dólares e um time com mais de 400 profissionais certificados, entregamos soluções ponta a ponta ao longo de todo o ciclo de vida dos dados. Nosso framework proprietário, o IndiMesh, impulsionado por inteligência artificial, orienta cada entrega com inteligência coletiva, expertise comprovada e controle de qualidade rigoroso. Líderes de mercado como PepsiCo e Bayer confiam na Indicium para transformar desafios complexos de dados em resultados duradouros.

Mantenha-se conectado

Receba as últimas atualizações e notícias diretamente em sua caixa de entrada.

 

Estados Unidos

119 West 24th St.

Nova York, NY

Brasil

Avenida Paulista, 1374

São Paulo, SP

Rua Patrício Farias, 131 Florianópolis, SC

Receba as últimas atualizações e notícias diretamente em sua caixa de entrada. Ao se inscrever, você concorda em receber e-mails de acordo com nossa Política de Privacidade.

© 2025 | Todos os direitos reservados por Indicium