From dc89d788f7a01058c8a4251222c8d86c3c210b85 Mon Sep 17 00:00:00 2001 From: tricktx Date: Wed, 13 Mar 2024 16:39:54 -0300 Subject: [PATCH] add model dbt auxilio_brasil and bolsa_familia_pagamento --- ...cgu_beneficios_cidadao__auxilio_brasil.sql | 30 ++++ ...icios_cidadao__bolsa_familia_pagamento.sql | 30 ++++ models/br_cgu_beneficios_cidadao/schema.yml | 145 +++++++++++++++++- 3 files changed, 202 insertions(+), 3 deletions(-) create mode 100644 models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__auxilio_brasil.sql create mode 100644 models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bolsa_familia_pagamento.sql diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__auxilio_brasil.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__auxilio_brasil.sql new file mode 100644 index 00000000..d7780384 --- /dev/null +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__auxilio_brasil.sql @@ -0,0 +1,30 @@ +{{ + config( + alias="auxilio_brasil", + schema="br_cgu_beneficios_cidadao", + materialized="table", + partition_by={ + "field": "ano_competencia", + "data_type": "int64", + "range": { + "start": 2020, + "end": 2023, + "interval": 1, + }, + }, + cluster_by=["sigla_uf", "id_municipio"], + ) +}} + +select distinct + safe_cast(split(mes_ref, '-')[offset(0)] as int64) as ano_competencia, + safe_cast(split(mes_ref, '-')[offset(1)] as int64) as mes_competencia, + safe_cast(left(mes, 4) as int64) ano_referencia, + safe_cast(right(mes, 2) as int64) mes_referencia, + safe_cast(id_municipio as string) id_municipio, + safe_cast(sigla_uf as string) sigla_uf, + case when cpf = '' then null else cpf end as cpf_favorecido, + safe_cast(nis as string) nis_favorecido, + safe_cast(nome as string) nome_favorecido, + safe_cast(valor_beneficio as float64) valor_parcela, +from `basedosdados-dev.br_cgu_beneficios_cidadao_staging.auxilio_brasil` as t diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bolsa_familia_pagamento.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bolsa_familia_pagamento.sql new file mode 100644 index 00000000..d23b115f --- /dev/null +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bolsa_familia_pagamento.sql @@ -0,0 +1,30 @@ +{{ + config( + alias="bolsa_familia_pagamento", + schema="br_cgu_beneficios_cidadao", + materialized="table", + partition_by={ + "field": "ano_competencia", + "data_type": "int64", + "range": { + "start": 2020, + "end": 2023, + "interval": 1, + }, + }, + cluster_by=["sigla_uf", "id_municipio"], + ) +}} + +select distinct + safe_cast(split(mes_ref, '-')[offset(0)] as int64) as ano_competencia, + safe_cast(split(mes_ref, '-')[offset(1)] as int64) as mes_competencia, + safe_cast(left(mes, 4) as int64) ano_referencia, + safe_cast(right(mes, 2) as int64) mes_referencia, + safe_cast(id_municipio as string) id_municipio, + safe_cast(sigla_uf as string) sigla_uf, + case when cpf = '' then null else cpf end as cpf_favorecido, + safe_cast(nis as string) nis_favorecido, + safe_cast(nome as string) nome_favorecido, + safe_cast(valor_beneficio as float64) valor_parcela, +from `basedosdados-dev.br_cgu_beneficios_cidadao_staging.bolsa_familia_pagamento` as t diff --git a/models/br_cgu_beneficios_cidadao/schema.yml b/models/br_cgu_beneficios_cidadao/schema.yml index 53e59a15..12cc9a4d 100644 --- a/models/br_cgu_beneficios_cidadao/schema.yml +++ b/models/br_cgu_beneficios_cidadao/schema.yml @@ -1,14 +1,21 @@ --- version: 2 models: - - name: novo_bolsa_familia + - name: br_cgu_beneficios_cidadao__novo_bolsa_familia description: Números do Novo Bolsa Família tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: + - nome_favorecido - ano_competencia - mes_competencia + - ano_referencia + - mes_referencia + - id_municipio - nis_favorecido + - valor_parcela + - not_null_proportion_multiple_columns: + at_least: 0.05 columns: - name: ano_competencia description: Ano a que se refere a parcela @@ -37,7 +44,7 @@ models: - name: valor_parcela description: Valor da parcela do benefício tests: [not_null] - - name: garantia_safra + - name: br_cgu_beneficios_cidadao__garantia_safra description: Números do Garantia Safra tests: - dbt_utils.unique_combination_of_columns: @@ -45,6 +52,8 @@ models: - ano_referencia - mes_referencia - nis_favorecido + - not_null_proportion_multiple_columns: + at_least: 0.05 columns: - name: ano_referencia description: Ano da folha de pagamento @@ -65,7 +74,7 @@ models: - name: valor_parcela description: Valor da parcela do benefício tests: [not_null] - - name: bpc + - name: br_cgu_beneficios_cidadao__bpc description: Números do Benefício de Prestação Continuada tests: - dbt_utils.unique_combination_of_columns: @@ -73,6 +82,8 @@ models: - ano_competencia - mes_competencia - nis_favorecido + - not_null_proportion_multiple_columns: + at_least: 0.05 columns: - name: ano_competencia description: Ano a que se refere a parcela @@ -109,3 +120,131 @@ models: - name: valor_parcela description: Valor da parcela do benefício tests: [not_null] + - name: br_cgu_beneficios_cidadao__auxilio_brasil + description: Dados sobre o Auxílio Brasil + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano_competencia + - mes_competencia + - ano_referencia + - mes_referencia + - nome_favorecido + - id_municipio + - nis_favorecido + - valor_parcela + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano_competencia + description: Ano a que se refere a parcela + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes_competencia + description: Mês a que se refere a parcela + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: ano_referencia + description: Ano da folha de pagamento + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes_referencia + description: Mês da folha de pagamento + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: sigla_uf + description: Sigla da Unidade Federativa do beneficiário do Auxílio Brasil + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: Código IBGE do município do beneficiário do Auxílio Brasil + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: cpf_favorecido + description: Número no Cadastro de Pessoas Físicas (CPF) do beneficiário do + Auxílio Brasil, caso possua + - name: nis_favorecido + description: Número de Identificação Social (NIS) do beneficiário do Auxílio + Brasil, caso possua + - name: nome_favorecido + description: Nome do beneficiário do Auxílio Brasil + - name: valor_parcela + description: Valor da parcela do benefício + tests: [not_null] + - name: br_cgu_beneficios_cidadao__bolsa_familia_pagamento + description: Dados sobre o pagamento do bolsa família entre os anos de 2013 até + 2021. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano_competencia + - mes_competencia + - ano_referencia + - mes_referencia + - nome_favorecido + - sigla_uf + - id_municipio + - nis_favorecido + - valor_parcela + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano_competencia + description: Ano a que se refere a parcela + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes_competencia + description: Mês a que se refere a parcela + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: ano_referencia + description: Ano da folha de pagamento + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes_referencia + description: Mês da folha de pagamento + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: sigla_uf + description: Sigla da Unidade Federativa do beneficiário do Auxílio Brasil + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: Código IBGE do município do beneficiário do Auxílio Brasil + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: cpf_favorecido + description: Número no Cadastro de Pessoas Físicas (CPF) do beneficiário do + Auxílio Brasil, caso possua + - name: nis_favorecido + description: Número de Identificação Social (NIS) do beneficiário do Auxílio + Brasil, caso possua + - name: nome_favorecido + description: Nome do beneficiário do Auxílio Brasil + - name: valor_parcela + description: Valor da parcela do benefício + tests: [not_null]