Partilhar via


O que são Databricks Asset Bundles?

Os Databricks Asset Bundles são uma ferramenta para facilitar a adoção das melhores práticas de engenharia de software, incluindo controle de 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:

Visão geral do Databricks Asset Bundles

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ções 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. Você pode verificar se a CLI do Databricks está instalada e a versão atual que você está usando executando o seguinte comando:

databricks --version

Nota

É necessária a CLI do Databricks versão 0.218.0 ou superior. Para instalar a CLI do Databricks, consulte Instalar ou atualizar a CLI do Databricks.

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.2 (ou posterior), esse recurso deverá ser habilitado por padrão.

Autenticação

O Azure Databricks fornece vários métodos de autenticação. Databricks recomenda que você use um dos seguintes métodos para autenticar:

  • 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:

  1. 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>
    
  2. 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 comando databricks auth env --profile <profile-name>.

  3. No navegador da Web, conclua as instruções na tela para fazer logon no espaço de trabalho do Azure Databricks.

  4. 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 comandos databricks bundle validate, databricks bundle deploy, databricks bundle run, ou databricks 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 o host conjunto de profile mapeamento para a URL do espaço de trabalho do Azure Databricks em vez do mapeamento, pois torna os arquivos de configuração do profile pacote mais portáteis). Veja a cobertura do profile 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 o profile mapeamento (ou host) não for especificado.

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

  1. Conclua as instruções de configuração de autenticação OAuth M2M. Consulte Autenticação OAuth máquina-a-máquina (M2M).

  2. 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.
  3. 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. Crie seu primeiro projeto de pacote usando o comando Databricks CLI bundle init sem opções. Isso 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

As organizações também podem criar modelos de pacote personalizados para definir seus próprios padrões. Esses padrões podem incluir permissões padrão, entidades de serviço e configuração personalizada de CI/CD. Consulte Modelos do Databricks Asset Bundle.

Depois de inicializar o projeto, use o comando para validar o bundle validate pacote antes de implantá-lo em seus espaços de trabalho.

databricks bundle validate

Normalmente, você cria um pacote em uma máquina de desenvolvimento local com um IDE e a CLI do Databricks versão 0.218.0 ou superior. Essas ferramentas permitem que você crie, valide, implante e execute um pacote. Consulte Desenvolvimento de pacotes de ativos Databricks.

Você pode editar um pacote em um espaço de trabalho do Azure Databricks depois de adicionar o pacote ao Git usando a integração da pasta Databricks Git. No entanto, não é possível testar ou implantar um pacote a partir de um espaço de trabalho. Em vez disso, você pode usar seu IDE local para testes e CI/CD para implantação.

Próximos passos

Tarefas comuns

Use os artigos a seguir para concluir tarefas comuns para Databricks Asset Bundles.

Artigo Use este artigo quando quiser...
Desenvolvimento de Databricks Asset Bundles Saiba mais sobre como criar, validar, implantar e executar um pacote criando um databricks.yml arquivo e usando a CLI do Databricks para executar os comandos databricks bundle validate, databricks bundle deploye databricks bundle run.
Configurações do Databricks Asset Bundle Crie um arquivo de databricks.yml pacote e outros arquivos de configuração de pacote relacionados que estejam em conformidade com a sintaxe YAML para configurações de pacote.
Autenticação para pacotes de ativos Databricks Configure um projeto de pacote para autenticação do Azure Databricks.
Desenvolver um trabalho no Azure Databricks usando Databricks Asset Bundles Crie, implante e execute um pacote para um trabalho do Azure Databricks.
Desenvolva pipelines Delta Live Tables com pacotes de ativos Databricks Crie, implante e execute um pacote para um pipeline Delta Live Tables.
Pacotes de ativos Databricks para pilhas MLOps Crie, implante e execute um pacote para uma pilha MLOps.
Dependências da biblioteca Databricks Asset Bundles Instale bibliotecas que um pacote precisa para ser executado em qualquer cluster do Azure Databricks relacionado.
Modos de implantação do Databricks Asset Bundle Use modos de implantação de pacote, como development e para habilitar ou production desabilitar automaticamente comportamentos comuns de implantação, como pausar ou cancelar a pausa de agendas e gatilhos relacionados.
Modelos do Databricks Asset Bundle Use um modelo para tornar a criação de tipos específicos de pacotes mais rápida, fácil e com resultados mais consistentes e repetíveis.
Definir permissões para recursos no Databricks Asset Bundles Aplique níveis granulares de permissões de acesso a usuários, grupos e entidades de serviço para recursos específicos do pacote.
Definir configurações de artefato dinamicamente no Databricks Asset Bundles Combine ou substitua configurações específicas para artefatos em um pacote.
Execute um fluxo de trabalho de CI/CD com um Databricks Asset Bundle e ações do GitHub Implante ou execute um pacote em resposta a um evento de fluxo de trabalho específico do GitHub, como uma solicitação pull ou mesclagem.
Substituir configurações de cluster em pacotes de ativos Databricks Combine ou substitua configurações específicas para clusters em um pacote.
Adicionar tarefas a trabalhos no Databricks Asset Bundles Adicione uma tarefa a um trabalho em um pacote.
Substituir configurações de tarefas de trabalho no Databricks Asset Bundles Combine ou substitua configurações específicas para tarefas de trabalho em um pacote.
Desenvolver um arquivo de roda Python usando Databricks Asset Bundles Crie, implante e chame arquivos de roda Python em um pacote.

Mais recursos