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, endpoints de Model Serving, experimentos MLflow e modelos registados no 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 where vários contribuidores e a 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 where 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.
- Set 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 where 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 generate 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 pacotes a partir da linha de comando. Para instalar a CLI do Databricks, consulte Instalar ou update 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 a função de ficheiros do espaço de trabalho esteja habilitada. 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 assistido em cenários de autenticação, como fluxos de trabalho manuais where utiliza-se o navegador da Web para iniciar sessão no espaço de trabalho de destino do Azure Databricks (quando a CLI do Databricks solicitar), use a autenticação OAuth de utilizador para máquina (U2M). 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 get uma list de quaisquer perfis existentes, num terminal ou prompt de comando separado, use a Databricks CLI 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 de
profile
no mapeamento deworkspace
de nível superior do arquivo de configuração do pacote (embora o Databricks recomende que você use ohost
de mapeamento de set para a URL do espaço de trabalho do Azure Databricks em vez do mapeamento deprofile
, pois torna os arquivos de configuração do 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 o Databricks CLI no recurso de computação em tempo real, consulte Instalar ou update o Databricks CLI.
- 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 utilizar outros sistemas de CI/CD para instalar automaticamente a CLI do Databricks numa máquina virtual, consulte a documentação do fornecedor do sistema CI/CD e Instale ou update a CLI do Databricks.
Set as seguintes variáveis de ambiente no recurso de computação da seguinte maneira:
, aode URL por espaço de trabalho do Azure Databricks , por exemplo, . , ao valor ID de Aplicativo da entidade de serviço Azure Databricks. , ao valor de OAuth Secret da entidade de serviço Azure Databricks.
Para set essas variáveis de ambiente, consulte a documentação do sistema operacional do recurso de computação de destino ou do sistema CI/CD.
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 notebook num espaço de trabalho do Azure Databricks e, em seguida, execute esse notebook implantado como uma canalização Delta Live Tables. Veja Desenvolver pipelines Delta Live Tables com os 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.