Pular para conteúdo

Testes

Testes Singulares

O DBT possui testes built-in que podem ser executados de forma singular, verificando aspectos específicos dos dados:

  • unique: Verifica se uma coluna ou combinação de colunas contém valores únicos
  • not_null: Garante que uma coluna não contenha valores nulos
  • accepted_values: Valida se os valores de uma coluna estão dentro de um conjunto específico de valores permitidos
  • relationships: Verifica integridade referencial entre tabelas

Testes Genéricos

Além disso, é possível criar testes genéricos que podem ser reutilizados em diferentes modelos:

  • Testes de schema para validar tipos de dados
  • Verificações de integridade de dados
  • Validações de regras de negócio

Estes testes podem ser executados como parte do pipeline de dados, garantindo qualidade contínua.

A descrição dos testes genéricos podem ser encontrados na pasta ~/dbt/ipea/macros/data_quality

Configurando testes para os modelos

Dentro da pasta ~/dbt/ipea/models o arquivo schema.yml , que além de conter as descrições dos modelos também estão configurados os testes de integridade. Aqui está um trecho do arquivo como exemplo

# Este arquivo deve ser usado para descrições dos modelos
# e para configurar testes

version: 2

models:

  # Contratos DBT

  ## Bronze
  - name: contratos # Nome do modelo
    description: >
      Tabela com informações sobre contratos, incluindo detalhes como o valor do contrato, a data de início e término, e o status do contrato.
      Esta tabela é fundamental para entender a execução e o cumprimento dos contratos firmados.
      A tabela é atualizada diariamente e contém dados de contratos firmados pelo IPEA.
    columns: # Descrição de cada coluna
      - name: id
        description: >
          Identificador único do contrato, utilizado para referenciar o contrato em outras tabelas e análises.
    data_tests: # Configuração dos testes
      - row_count_match:
          source_table: compras_gov.contratos
          target_table: contratos.contratos
 [...]

Após a compilação da DAG pelo Cosmos, pode-se conferir a seguinte estrutura no Airflow