Conecte-se ao núcleo dbt

Observação

Este artigo aborda o dbt Core, uma versão do dbt para sua máquina de desenvolvimento local que interage com Databricks SQL warehouse e clusters Databricks em seu workspace Databricks. Para usar a versão hospedada do dbt (chamada dbt Cloud) ou usar Partner Connect para criar rapidamente um SQL warehouse em seu workspace e, em seguida, conectá-lo ao dbt Cloud, consulte Conectar ao dbt Cloud.

dbt (data build tool) é um ambiente de desenvolvimento que permite que o analista de dados e o engenheiro de dados transformem os dados simplesmente escrevendo instruções select. dbt lida com a transformação dessas instruções select em tabelas e view. dbt compila seu código em SQL bruto e, em seguida, executa esse código no banco de dados especificado no Databricks. O dbt oferece suporte a padrões de codificação colaborativa e práticas recomendadas, como controle de versão, documentação, modularidade e muito mais.

dbt não extrai ou carrega dados. O dbt foca apenas na passo da transformação, usando uma arquitetura de “transformação após carga”. dbt assume que você já tem uma cópia de seus dados em seu banco de dados.

Este artigo se concentra no uso do dbt Core. O dbt Core permite que você escreva o código dbt no editor de texto ou IDE de sua escolha em sua máquina de desenvolvimento local e, em seguida, execute o dbt na linha de comando. O dbt Core inclui a interface de linha de comando (CLI) dbt. O dbt CLI é gratuito e de código aberto.

Uma versão hospedada do dbt chamada dbt cloud também está disponível. O dbt cloud vem equipado com suporte pronto para uso para programar Job, CI/CD, documentação de serviço, monitoramento e alerta e um ambiente de desenvolvimento integrado (IDE). Para obter mais informações, consulte Conectar-se ao dbt Cloud. O plano dbt cloud Developer oferece um assento de desenvolvedor gratuito; Os planos pagos Team e Enterprise também estão disponíveis. Para mais informações, consulte os preços dbt no site dbt.

Como o dbt Core e o dbt cloud podem usar repositórios git hospedados (por exemplo, no GitHub, GitLab ou Bitbucket), você pode usar o dbt Core para criar um projeto dbt e disponibilizá-lo aos usuários do dbt cloud . Para obter mais informações, consulte Criando um projeto dbt e Usando um projeto existente no site dbt.

Para uma visão geral do dbt, assista ao seguinte vídeo do YouTube (26 minutos).

Requisitos

Antes de instalar o dbt Core, você deve instalar o seguinte em sua máquina de desenvolvimento local:

  • Python 3.7 ou superior

  • A utilidades para criar ambientes virtuais Python (como pipenv)

Você também precisa de um dos seguintes para autenticar:

  • (Recomendado) dbt Core habilitado como um aplicativo OAuth em sua account. Isso está habilitado por default.

    (Opcional) Para usar um IdP personalizado para login do dbt, consulte Configurar SSO no console da conta do Databricks.

  • Um access tokenpessoal

    Observação

    Como prática recomendada de segurança ao autenticar com ferramentas, sistemas, scripts e aplicativos automatizados, a Databricks recomenda que você use tokens OAuth.

    Se utilizar a autenticação access token pessoal, a Databricks recomenda a utilização access token pessoal pertencente à entidade de serviço em vez de utilizadores workspace . Para criar tokens para entidades de serviço, consulte gerenciar tokens para uma entidade de serviço.

passo 1: Criar e ativar um ambiente virtual Python

Nesta passo, você usa pipenv para criar um ambiente virtual Python. Recomendamos o uso de um ambiente virtual Python, pois ele isola versões de pacote e dependências de código para esse ambiente específico, independentemente das versões de pacote e dependências de código em outros ambientes. Isso ajuda a reduzir incompatibilidades inesperadas de versão de pacote e colisões de dependência de código.

  1. No seu terminal, mude para um diretório vazio, criando esse diretório primeiro, se necessário. Este procedimento cria um diretório vazio denominado dbt_demo na raiz do diretório inicial do usuário.

    mkdir ~/dbt_demo
    cd ~/dbt_demo
    
    mkdir %USERPROFILE%\dbt_demo
    cd %USERPROFILE%\dbt_demo
    
  2. Nesse diretório vazio, crie um arquivo chamado Pipfile com o seguinte conteúdo. Este Pipfile instrui pipenv a usar o Python versão 3.8.6. Se você usar uma versão diferente, substitua 3.8.6 pelo número da sua versão.

    [[source]]
    url = "https://pypi.org/simple"
    verify_ssl = true
    name = "pypi"
    
    [packages]
    dbt-databricks = "*"
    
    [requires]
    python_version = "3.8.6"
    

    Observação

    A linha anterior dbt-databricks = "*" instrui pipenv a usar a versão mais recente do pacote dbt-databricks . Em cenários de produção, você deve substituir * pela versão específica do pacote que deseja usar. A Databricks recomenda a versão 1.6.0 ou superior do pacote dbt-databricks. Consulte a história do lançamento do dbt-databricks no site do pacote Python Index (PyPI).

  3. Crie um ambiente virtual Python neste diretório executando pipenv e especificando a versão do Python a ser usada. Este comando especifica o Python versão 3.8.6. Se você usar uma versão diferente, substitua 3.8.6 pelo número da sua versão:

    pipenv --python 3.8.6
    
  4. Instale o adaptador dbt Databricks executando pipenv com a opção install . Isso instala os pacotes em seu Pipfile, que inclui o pacote do adaptador dbt Databricks, dbt-databricks, do PyPI. O pacote do adaptador dbt Databricks instala automaticamente o dbt Core e outras dependências.

    Importante

    Se sua máquina de desenvolvimento local usar qualquer um dos seguintes sistemas operacionais, primeiro você deve concluir as passos adicionais: CentOS, MacOS, Ubuntu, Debian e Windows. Consulte a seção “Meu sistema operacional tem pré-requisitos” de Usar pip para instalar o dbt no site do dbt Labs.

    pipenv install
    
  5. Ative este ambiente virtual executando pipenv shell. Para confirmar a ativação, o terminal exibe (dbt_demo) antes do prompt. O ambiente virtual começa usando a versão especificada do Python e isola todas as versões de pacote e dependências de código nesse novo ambiente.

    pipenv shell
    

    Observação

    Para desativar este ambiente virtual, execute exit. (dbt_demo) desaparece antes do prompt. Se você executar python --version ou pip list com este ambiente virtual desativado, poderá ver uma versão diferente do Python, uma lista diferente de pacotes disponíveis ou versões de pacote, ou ambos.

  6. Confirme se seu ambiente virtual está executando a versão esperada do Python executando python com a opção --version .

    python --version
    

    Se uma versão inesperada do Python for exibida, certifique-se de ter ativado seu ambiente virtual executando pipenv shell.

  7. Confirme se seu ambiente virtual está executando as versões esperadas do dbt e do adaptador dbt Databricks executando dbt com a opção --version .

    dbt --version
    

    Se uma versão inesperada do dbt ou do adaptador dbt Databricks for exibida, verifique se você ativou seu ambiente virtual executando pipenv shell. Se uma versão inesperada ainda for exibida, tente instalar o dbt ou o adaptador dbt Databricks novamente depois de ativar seu ambiente virtual.

passo 2: Crie um projeto dbt e especifique e teste as configurações de conexão

Nesta passo, você cria um projeto dbt, que é uma coleção de diretórios e arquivos relacionados necessários para usar o dbt. Em seguida, você configura seus perfis de conexão, que contêm configurações de conexão para um cluster Databricks, um SQL warehouse ou ambos. Para aumentar a segurança, os projetos e perfis dbt são armazenados em locais separados por default.

Dica

Você pode se conectar a clusters existentes ou SQL warehouse ou pode criar um novo.

  • Um clusters existente ou SQL warehouse pode ser eficiente para vários projetos dbt, para usar dbt em uma equipe ou para casos de uso de desenvolvimento.

  • Um novo clusters ou SQL warehouse permite que você execute um único projeto de dbt isoladamente para casos de uso de produção, bem como aproveite o encerramento automático para economizar custos quando esse projeto de dbt não estiver em execução.

Use Databricks para criar um novo clusters ou SQL warehouse e, em seguida, faça referência aos clusters recém-criados ou existentes ou SQL warehouse a partir do seu perfil dbt.

  1. Com o ambiente virtual ainda ativado, execute o comando dbt init com um nome para o seu projeto. Este procedimento cria um projeto chamado my_dbt_demo.

    dbt init my_dbt_demo
    
  2. Quando você for solicitado a escolher um banco de dados databricks ou spark , digite o número que corresponde a databricks.

  3. Quando for solicitado um valor host , faça o seguinte:

  4. Quando for solicitado um valor http_path , faça o seguinte:

  5. Para escolher um tipo de autenticação, insira o número que corresponde a use oauth (recomendado) ou use access token.

  6. Se você escolheu use access token como seu tipo de autenticação, insira o valor do seu access tokenpessoal do Databricks.

    Observação

    Como prática recomendada de segurança ao se autenticar com ferramentas, sistemas, scripts e aplicativos automatizados, a Databricks recomenda que você use tokens OAuth.

    Se utilizar a autenticação access token pessoal, a Databricks recomenda a utilização access token pessoal pertencente à entidade de serviço em vez de utilizadores workspace . Para criar tokens para entidades de serviço, consulte gerenciar tokens para uma entidade de serviço.

  7. Quando for solicitado o valor desired Unity Catalog option , digite o número que corresponde a use Unity Catalog ou not use Unity Catalog.

  8. Se você escolheu usar o Unity Catalog, insira o valor desejado para catalog quando solicitado.

  9. Insira os valores desejados para schema e threads quando solicitado.

  10. dbt grava suas entradas em um arquivo profiles.yml . A localização deste arquivo está listada na saída do comando dbt init . Você também pode listar esse local posteriormente executando o comando dbt debug --config-dir . Você pode abrir este arquivo agora para examinar e verificar seu conteúdo.

    Se você escolheu use oauth como seu tipo de autenticação, adicione seu perfil de autenticação máquina a máquina (M2M) ou usuário a máquina (U2M) a profiles.yml.

    A seguir está um exemplo de arquivo profiles.yml com o perfil aws-oauth-u2m especificado. Especificar aws-oauth-u2m para target define o perfil U2M como o perfil de execução default usado pelo dbt.

    my_dbt_demo:
    outputs:
       azure-oauth-u2m:
          catalog: uc_demos
          host: "xxx.cloud.databricks.com"
          http_path: "/sql/1.0/warehouses/9196548d010cf14d"
          schema: databricks_demo
          threads: 1
          type: databricks
          auth_type: oauth
    target: aws-oauth-u2m
    

    Databricks não recomenda especificar segredos em profiles.yml diretamente. Em vez disso, defina o ID do cliente e o segredo do cliente como variável de ambiente.

  11. Confirme se os detalhes da conexão estão corretos acessando o diretório my_dbt_demo e executando o comando dbt debug .

    Se você escolheu use oauth para seu tipo de autenticação, será solicitado a entrar com seu provedor de identidade.

    Importante

    Antes de começar, verifique se seus clusters ou SQL warehouse estão em execução.

    Você deve ver uma saída semelhante à seguinte:

    cd my_dbt_demo
    dbt debug
    
    ...
    Configuration:
      profiles.yml file [OK found and valid]
      dbt_project.yml file [OK found and valid]
    
    Required dependencies:
      - git [OK found]
    
    Connection:
      ...
      Connection test: OK connection ok
    

Próximos passos