O que são pacotes de ativos Databricks?

Databricks ativo Bundles (DABs) são uma ferramenta para facilitar a adoção das melhores práticas de software engenharia, incluindo controle de origem, revisão de código, testes e integração e entrega contínuas (CI/CD), para seus projetos de dados e AI. Os pacotes possibilitam descrever o recurso Databricks, como Job, pipeline e Notebook, como arquivos de origem. Esses arquivos de origem fornecem uma definição completa 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 proporcionam uma forma 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 a infraestrutura e outros recursos. Então, a coleção de arquivos de origem e metadados de seu projeto é implantada como um único pacote em seu ambiente de destino. Um pacote inclui as seguintes partes:

  • Configurações obrigatórias de infraestrutura de nuvem e espaço de trabalho

  • Arquivos de origem, como notebooks e arquivos Python, que incluem a lógica de negócios

  • Definições e configurações para recursos do Databricks, como jobs do Databricks, pipelines do Delta Live Tables, endpoints do Model Serving, MLflow Experiments e modelos registrados do 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:

Visão geral dos Databricks Asset Bundles

Quando devo usar os Pacotes de ativos do Databricks?

Os pacotes de ativos do Databricks são uma abordagem de Infrastructure-as-Code (IaC) para gerenciar seus projetos do Databricks. Use-os quando quiser gerenciar projetos complexos em que são essenciais vários colaboradores e automação, e em que a integração e a implantação contínuas (CI/CD) são obrigatórias. Como os pacotes são definidos e gerenciados por meio de modelos e arquivos YAML criados e mantidos junto com o código-fonte, eles se adaptam bem aos cenários em que a IaC é uma abordagem adequada.

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 com eficiência. Isso garante uma colaboração tranquila e processos otimizados.

  • Itere em problemas de ML mais rapidamente. Gerencie recursos de ML pipelines (como jobs de treinamento e 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 pacotes personalizados que incluem permissões default, entidades de serviço e configurações de CI/CD.

  • Conformidade regulatória: em setores onde a conformidade regulatória é uma preocupação significativa, os pacotes podem ajudar a manter um histórico de versões do código e do trabalho de infraestrutura. Isso auxilia na governança e garante que os padrões de conformidade necessários sejam atendidos.

Como os pacotes de ativos do Databricks funcionam?

Os metadados do pacote são definidos usando arquivos YAML que especificam os artefatos, os recursos e a configuração de um projeto do Databricks. Você pode criar esse 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 em pacotes a partir de IDEs, terminais ou diretamente no 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 jobs mais específicos ou complexos, você pode criar modelos de pacotes personalizados para implementar as melhores práticas da sua equipe e manter as configurações comuns consistentes.

Para obter mais detalhes sobre a configuração YAML usada para expressar Databricks ativo Bundles, consulte Databricks ativo Bundle configuration.

Configure 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.

Databricks Os pacotes ativos estão disponíveis em Databricks CLI versão 0.218.0 ou acima. Para encontrar a versão do Databricks CLI que está instalada, execute o seguinte comando:

databricks --version

Depois de instalar o Databricks CLI, verifique se o espaço de trabalho remoto Databricks está configurado corretamente. Os pacotes exigem que o recurso workspace files esteja ativado, pois esse recurso suporta o trabalho com arquivos diferentes do Databricks Notebook, como os arquivos .py e .yml. Se o senhor estiver usando Databricks Runtime versão 11.3 LTS ou acima, esse recurso é ativado por default.

Autenticação

A Databricks oferece vários métodos de autenticação:

  • Para cenários de autenticação assistida, como fluxos de trabalho manuais em que o usuário usa o navegador da Web para fazer login no workspace de destino do Databricks (quando solicitado pela CLI do Databricks), use a autenticação OAuth user-to-machine (U2M). Este método é ideal para experimentar os tutoriais de introdução aos Databricks Asset Bundles ou para o desenvolvimento rápido de pacotes.

  • Para cenários de autenticação não supervisionada, como fluxos de trabalho totalmente automatizados em que você não tem a oportunidade de usar seu navegador da web para fazer login em sua área de trabalho do Databricks de destino naquele momento, use a autenticação OAuth machine-to-machine (M2M). Este método requer o uso de entidades de serviço do Databricks e é ideal para usar Databricks Asset Bundles com sistemas de CI/CD como o GitHub.

Para a autenticação OAuth U2M, faça o seguinte:

  1. Use a CLI do Databricks para iniciar o gerenciamento de tokens OAuth localmente executando o seguinte comando para cada workspace de destino.

    No comando a seguir, substitua <workspace-url> pela URL da instância do seu workspace do Databricks, por exemplo https://1234567890123456.7.gcp.databricks.com.

    databricks auth login --host <workspace-url>
    
  2. O site Databricks CLI solicita que o senhor salve as informações inseridas como um Databricks perfil de configuração. Pressione Enter para aceitar o nome de perfil sugerido ou insira o nome de um perfil novo ou existente. Qualquer perfil existente com o mesmo nome é substituído pelas informações que o senhor inseriu. O senhor pode usar perfis para alternar rapidamente o contexto de autenticação em vários espaços de trabalho.

    Para obter uma lista de todos os 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 comando databricks auth env --profile <profile-name>.

  3. No navegador da Web, siga as instruções na tela para fazer login no workspace do Databricks.

  4. Para visualizar o valor atual do token OAuth de um perfil e o próximo registro de data e 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 valor --host, talvez seja necessário especificar as opções --host e -p juntas para ajudar a CLI do Databricks a encontrar as informações de token OAuth correspondentes corretas.

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 de linha de comando -p <profile-name>, anexada aos comandos databricks bundle validate, databricks bundle deploy, databricks bundle run ou databricks bundle destroy. Consulte Desenvolvimento de Pacotes de Ativos do Databricks.

  • Como o valor do mapeamento profile no mapeamento workspace de nível superior do arquivo de configuração do pacote (embora Databricks recomende que você use o mapeamento host definido para a URL do workspace do Databricks em vez do mapeamento profile, pois isso torna os arquivos de configuração do pacote mais portáteis). Veja a cobertura do mapeamento profile no workspace.

  • Se o nome do perfil de configuração for DEFAULT, ele será usado por padrão quando a opção de linha de comando -p <profile-name> ou o mapeamento profile (ou host) não for especificado.

Para a autenticação OAuth M2M, faça o seguinte:

  1. Conclua as instruções de configuração da autenticação OAuth M2M. Consulte Autenticar o acesso ao Databricks com uma entidade de serviço usando OAuth (OAuth M2M).

  2. Instale a CLI da Databricks no recurso de compute de destino de uma das seguintes maneiras:

    • Para instalar manualmente a CLI do Databricks no recurso de compute em tempo real, consulte Instalar ou atualizar a CLI do Databricks.

    • Para usar o GitHub Actions para instalar automaticamente a CLI do Databricks em uma máquina virtual do GitHub, consulte setup-cli no GitHub.

    • Para usar outros sistemas de CI/CD para instalar automaticamente a CLI do Databricks em uma máquina virtual, consulte a documentação do seu provedor de sistema de CI/CD e Instalar ou atualizar a CLI do Databricks.

  3. Defina as seguintes variáveis de ambiente no recurso de compute da seguinte forma:

    • DATABRICKS_HOST, definido como a URL da instância do workspace do Databricks, por exemplo https://1234567890123456.7.gcp.databricks.com.

    • DATABRICKS_CLIENT_ID, definido como o valor da ID do aplicativo do responsável pelo serviço do Databricks.

    • DATABRICKS_CLIENT_SECRET, definido como o valor do Segredo do OAuth da entidade de serviço do Databricks.

    Para definir essas variáveis de ambiente, consulte a documentação do sistema operacional ou do sistema de CI/CD do recurso de compute de destino.

Desenvolva seu primeiro pacote de ativos do Databricks

A maneira mais rápida de iniciar o desenvolvimento de pacotes é usar um padrão de projeto de pacote. Crie seu primeiro projeto de pacote usando o comando Databricks CLI bundle init. Esse comando apresenta uma opção de Databricks- fornecida pelo default bundle padrão - e faz uma série de perguntas para inicializar as variáveis do projeto.

databricks bundle init

A criação do pacote é o primeiro passo no ciclo de vida de um pacote. O segundo passo é desenvolver o pacote, um elemento key do qual é definir as configurações do pacote e o recurso nos arquivos de configuração databricks.yml e recurso. Para obter informações sobre a configuração do pacote, consulte Databricks ativo Bundle configuration.

Dica

Os exemplos de configuração do pacote podem ser encontrados em Exemplos de configuração do pacote e no repositório de exemplos do pacote no GitHub.

Próximas etapas