From 82b09de83586c33320f5925c495b5a39ca2bb252 Mon Sep 17 00:00:00 2001 From: tricktx Date: Fri, 16 Aug 2024 13:29:27 -0300 Subject: [PATCH] [feat] add model and test dbt --- ...eneficios_cidadao__auxilio_emergencial.sql | 33 +++++++++ models/br_cgu_beneficios_cidadao/schema.yml | 69 +++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__auxilio_emergencial.sql diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__auxilio_emergencial.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__auxilio_emergencial.sql new file mode 100644 index 00000000..cd359be7 --- /dev/null +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__auxilio_emergencial.sql @@ -0,0 +1,33 @@ +{{ + config( + alias="auxilio_emergencial", + schema="br_cgu_beneficios_cidadao", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": { + "start": 2020, + "end": 2021, + "interval": 1, + }, + }, + cluster_by=["sigla_uf", "id_municipio"], + ) +}} +select + safe_cast(split(mes, '-')[offset(0)] as int64) as ano, + safe_cast(split(mes, '-')[offset(1)] as int64) as mes, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(id_municipio as string) id_municipio, + safe_cast(nis_beneficiario as string) nis_beneficiario, + safe_cast(cpf_beneficiario as string) cpf_beneficiario, + safe_cast(nome_beneficiario as string) nome_beneficiario, + safe_cast(nis_responsavel as string) nis_responsavel, + safe_cast(cpf_responsavel as string) cpf_responsavel, + safe_cast(nome_responsavel as string) nome_responsavel, + safe_cast(enquadramento as string) enquadramento, + safe_cast(parcela as string) parcela, + safe_cast(observacao as string) observacao, + safe_cast(valor_beneficio as float64) valor_beneficio, +from `basedosdados-staging.br_cgu_beneficios_cidadao_staging.auxilio_emergencial` as t diff --git a/models/br_cgu_beneficios_cidadao/schema.yml b/models/br_cgu_beneficios_cidadao/schema.yml index a0ede664..43232b93 100644 --- a/models/br_cgu_beneficios_cidadao/schema.yml +++ b/models/br_cgu_beneficios_cidadao/schema.yml @@ -207,3 +207,72 @@ models: - name: valor_parcela description: Valor da parcela do benefício tests: [not_null] + - name: br_cgu_beneficios_cidadao__auxilio_emergencial + description: Microdados do auxílio emergencial de 2020 do Ministério da Cidadania + a nível de indivíduo. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - mes + - id_municipio + - nis_beneficiario + - cpf_beneficiario + - nome_beneficiario + - nome_responsavel + - enquadramento + - observacao + - parcela + - not_null_proportion_multiple_columns: + at_least: 0.02 # A coluna "observacao" tem poucos valores preenchidos. + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - custom_relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + ignore_values: BR + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: nis_beneficiario + description: Número de Identificação Social (NIS), caso possua + - name: cpf_beneficiario + description: Número no Cadastro de Pessoas Físicas (CPF), caso possua + - name: nome_beneficiario + description: Nome do beneficiário + - name: nis_responsavel + description: Número de Identificação Social (NIS) do responsável pelo beneficiário, + caso possua + - name: cpf_responsavel + description: Número no Cadastro de Pessoas Físicas (CPF) do responsável beneficiário, + caso possua + - name: nome_responsavel + description: Nome do responsável pelo beneficiário, caso possua + - name: enquadramento + description: Identifica se o beneficiário é do grupo Bolsa Família, Inscrito + no Cadastro Único (CadÚnico) ou Não Inscrito no Cadastro Único (ExtraCad) + - name: parcela + description: Número sequencial da parcela disponibilizada + - name: observacao + description: Indica alterações na parcela disponibilizada como, por exemplo, + se foi devolvida ou está retida + - name: valor_beneficio + description: Valor do Benefício + tests: [not_null]