O que são Databricks Asset Bundles?
Os Databricks Asset Bundles (DABs) são uma ferramenta para facilitar a adoção das melhores práticas de engenharia de software, incluindo controle do código-fonte, revisão de código, testes e integração e entrega contínuas (CI/CD) para seus projetos de dados e IA. Os pacotes permitem descrever recursos do Databricks, como trabalhos, pipelines e blocos de anotações, como arquivos de origem. Esses arquivos de origem fornecem uma definição de ponta a ponta de um projeto, incluindo como ele deve ser estruturado, testado e implantado, o que facilita a colaboração em projetos durante o desenvolvimento ativo.
Os pacotes fornecem uma maneira de incluir metadados junto com os arquivos de origem do seu projeto. Quando você implanta um projeto usando pacotes, esses metadados são usados para provisionar infraestrutura e outros recursos. A coleção de arquivos de origem e metadados do seu projeto é então implantada como um único pacote no ambiente de destino. Um pacote inclui as seguintes partes:
- Infraestrutura de nuvem e configurações de espaço de trabalho necessárias
- Arquivos de origem, como blocos de anotações e arquivos Python, que incluem a lógica de negócios
- Definições e configurações para recursos do Databricks, como trabalhos do Azure Databricks, pipelines Delta Live Tables, pontos de extremidade de serviço de modelo, experimentos MLflow e modelos registrados MLflow
- Testes unitários e testes de integração
O diagrama a seguir fornece uma visão de alto nível de um pipeline de desenvolvimento e CI/CD com pacotes:
Quando devo usar o Databricks Asset Bundles?
Os pacotes de ativos Databricks são uma abordagem de infraestrutura como código (IaC) para gerenciar seus projetos Databricks. Use-os quando quiser gerenciar projetos complexos em que vários colaboradores e automação são essenciais, e a integração e implantação contínuas (CI/CD) são um requisito. Como os pacotes são definidos e gerenciados por meio de modelos e arquivos YAML que você cria e mantém junto com o código-fonte, eles mapeiam bem para cenários onde o IaC é uma abordagem apropriada.
Alguns cenários ideais para pacotes incluem:
- Desenvolva projetos de dados, análises e ML em um ambiente baseado em equipe. Os pacotes podem ajudá-lo a organizar e gerenciar vários arquivos de origem de forma eficiente. Isso garante uma colaboração suave e processos simplificados.
- Itere problemas de ML mais rapidamente. Gerencie recursos de pipeline de ML (como treinamento e trabalhos de inferência em lote) usando projetos de ML que seguem as práticas recomendadas de produção desde o início.
- Defina padrões organizacionais para novos projetos criando modelos de pacote personalizados que incluem permissões padrão, entidades de serviço e configurações de CI/CD.
- Conformidade regulamentar: em setores onde a conformidade regulatória é uma preocupação significativa, os pacotes podem ajudar a manter um histórico versionado do trabalho de código e infraestrutura. Isso auxilia na governança e garante que os padrões de conformidade necessários sejam cumpridos.
Como funcionam os Databricks Asset Bundles?
Os metadados do pacote são definidos usando arquivos YAML que especificam os artefatos, recursos e configuração de um projeto Databricks. Você pode criar este arquivo YAML manualmente ou gerar um usando um modelo de pacote. A CLI do Databricks pode ser usada para validar, implantar e executar pacotes usando esses arquivos YAML de pacote. Você pode executar projetos de pacote diretamente de IDEs, terminais ou dentro do Databricks. Este artigo usa a CLI do Databricks.
Os pacotes podem ser criados manualmente ou com base em um modelo. A CLI do Databricks fornece modelos padrão para casos de uso simples, mas para trabalhos mais específicos ou complexos, você pode criar modelos de pacote personalizados para implementar as práticas recomendadas da sua equipe e manter as configurações comuns consistentes.
Para obter mais detalhes sobre a configuração que o YAML usou para expressar Databricks Asset Bundles, consulte Configuração do Databricks Asset Bundle.
Configurar seu ambiente para usar pacotes
Use a CLI do Databricks para implantar facilmente pacotes a partir da linha de comando. Para instalar a CLI do Databricks, consulte Instalar ou atualizar a CLI do Databricks.
Os pacotes de ativos Databricks estão disponíveis na CLI do Databricks versão 0.218.0 ou superior. Para localizar a versão da CLI do Databricks instalada, execute o seguinte comando:
databricks --version
Depois de instalar a CLI do Databricks, verifique se os espaços de trabalho remotos do Databricks estão configurados corretamente. Os pacotes exigem que o recurso de arquivos de espaço de trabalho seja habilitado, pois esse recurso oferece suporte ao trabalho com arquivos diferentes dos Blocos de Anotações Databricks, como .py
e .yml
arquivos. Se você estiver usando o Databricks Runtime versão 11.3 LTS ou superior, esse recurso será habilitado por padrão.
Autenticação
O Azure Databricks fornece vários métodos de autenticação:
- Para cenários de autenticação assistida , como fluxos de trabalho manuais em que você usa seu navegador da Web para fazer logon no espaço de trabalho de destino do Azure Databricks (quando solicitado pela CLI do Databricks), use a autenticação de usuário para máquina (U2M) OAuth. Este método é ideal para experimentar os tutoriais de introdução para Databricks Asset Bundles ou para o rápido desenvolvimento de pacotes.
- Para cenários de autenticação autônoma , como fluxos de trabalho totalmente automatizados nos quais não há oportunidade de usar seu navegador da Web para fazer logon no espaço de trabalho de destino do Azure Databricks naquele momento, use a autenticação OAuth máquina a máquina (M2M). Esse método requer o uso de entidades de serviço do Azure Databricks e é ideal para usar pacotes de ativos Databricks com sistemas de CI/CD, como o GitHub.
Para autenticação OAuth U2M, faça o seguinte:
Use a CLI do Databricks para iniciar o gerenciamento de token OAuth localmente executando o seguinte comando para cada espaço de trabalho de destino.
No comando a seguir, substitua
<workspace-url>
pela URL do Azure Databricks por espaço de trabalho, por exemplohttps://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 é substituído pelas informações que você inseriu. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários espaços de trabalho.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 navegador da Web, conclua as instruções na tela para fazer logon no espaço de trabalho do Azure Databricks.
Para exibir 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
--host
valor, talvez seja necessário especificar as--host
opções e-p
juntas para ajudar a CLI do Databricks a encontrar as informações corretas do token OAuth.
Você pode usar o nome desse perfil de configuração de uma ou mais das seguintes maneiras sempre que validar, implantar, executar ou destruir pacotes:
- Com a opção
-p <profile-name>
de linha de comando , anexado aos comandosdatabricks bundle validate
,databricks bundle deploy
,databricks bundle run
, oudatabricks bundle destroy
. Consulte Desenvolvimento de pacotes de ativos Databricks. - Como o valor do mapeamento no mapeamento de nível
workspace
superior do arquivo de configuração do pacote (embora o Databricks recomende que você use ohost
conjunto deprofile
mapeamento para a URL do espaço de trabalho do Azure Databricks em vez do mapeamento, pois torna os arquivos de configuração doprofile
pacote mais portáteis). Veja a cobertura doprofile
mapeamento no espaço de trabalho. - Se o nome do perfil de configuração for
DEFAULT
, ele será usado por padrão quando a opção-p <profile-name>
de linha de comando ou oprofile
mapeamento (ouhost
) não for especificado.
Para autenticação OAuth M2M, faça o seguinte:
Conclua as instruções de configuração de autenticação OAuth M2M. Consulte Autenticar o acesso ao Azure Databricks com uma entidade de serviço usando OAuth (OAuth M2M).
Instale a CLI do Databricks no recurso de computação de destino de uma das seguintes maneiras:
- Para instalar manualmente a CLI do Databricks no recurso de computação em tempo real, consulte Instalar ou atualizar a CLI do Databricks.
- Para usar as Ações do GitHub para instalar automaticamente a CLI do Databricks em uma máquina virtual do GitHub, consulte setup-cli no GitHub.
- Para usar outros sistemas CI/CD para instalar automaticamente a CLI do Databricks em uma máquina virtual, consulte a documentação do provedor do sistema CI/CD e Instalar ou atualizar a CLI do Databricks.
Defina as seguintes variáveis de ambiente no recurso de computação da seguinte maneira:
DATABRICKS_HOST
, definido como a URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_CLIENT_ID
, definido como o valor de ID do Aplicativo da entidade de serviço do Azure Databricks.DATABRICKS_CLIENT_SECRET
, definido como o valor OAuth Secret da entidade de serviço Azure Databricks.
Para definir essas variáveis de ambiente, consulte a documentação do sistema operacional ou do sistema CI/CD do recurso de computação de destino.
Desenvolva seu primeiro Databricks Asset Bundle
A maneira mais rápida de iniciar o desenvolvimento de pacotes é usando um modelo de projeto de pacote. Crie seu primeiro projeto de pacote usando o comando Databricks CLI bundle init. Este comando apresenta uma escolha de modelos de pacote padrão fornecidos pelo Databricks e faz uma série de perguntas para inicializar variáveis de projeto.
databricks bundle init
Criar seu pacote é a primeira etapa no ciclo de vida de um pacote. A segunda etapa é desenvolver seu pacote, cujo elemento-chave é a definição de configurações e recursos do databricks.yml
pacote nos arquivos de configuração de recursos e recursos. Para obter informações sobre a configuração do pacote, consulte Configuração do Databricks Asset Bundle.
Gorjeta
Exemplos de configuração de pacote podem ser encontrados em Exemplos de configuração de pacote e no repositório de exemplos de pacote no GitHub.
Próximos passos
- Crie um pacote que implante um bloco de anotações em um espaço de trabalho do Azure Databricks e, em seguida, execute esse bloco de anotações implantado como um trabalho do Azure Databricks. Consulte Desenvolver um trabalho no Azure Databricks usando Databricks Asset Bundles.
- Crie um pacote que implante um bloco de anotações em um espaço de trabalho do Azure Databricks e, em seguida, execute esse bloco de anotações implantado como um pipeline Delta Live Tables. Consulte Desenvolver pipelines Delta Live Tables com pacotes de ativos Databricks.
- Crie um pacote que implante e execute uma pilha de MLOps. Consulte Databricks Asset Bundles para MLOps Stacks.
- Adicione um pacote a um fluxo de trabalho de CI/CD (integração contínua/implantação contínua) no GitHub. Consulte Executar um fluxo de trabalho de CI/CD com um pacote de ativos Databricks e ações do GitHub.
- Crie um pacote que cria, implanta e chama um arquivo de roda do Python. Consulte Desenvolver um arquivo de roda Python usando Databricks Asset Bundles.
- Crie um modelo personalizado que você e outras pessoas possam usar para criar um pacote. Um modelo personalizado pode incluir permissões padrão, entidades de serviço e configuração personalizada de CI/CD. Consulte Modelos de projeto do Databricks Asset Bundle.
- Migre de dbx para Databricks Asset Bundles. Consulte Migrar de dbx para pacotes.
- Descubra os principais recursos mais recentes lançados para o Databricks Asset Bundles. Consulte Notas de versão do recurso Databricks Asset Bundles.