From d230e8b1da7736f0831cf918f5f1f197e9fcf489 Mon Sep 17 00:00:00 2001 From: tricktx Date: Wed, 18 Sep 2024 11:08:23 -0300 Subject: [PATCH] add model dbt cgu cartao pagamento --- dbt_project.yml | 3 + .../br_cgu_cartao_pagamento__dicionario.sql | 13 ++ ...ento__microdados_compras_centralizadas.sql | 32 +++ ...tao_pagamento__microdados_defesa_civil.sql | 38 ++++ ..._pagamento__microdados_governo_federal.sql | 33 +++ models/br_cgu_cartao_pagamento/schema.yml | 212 ++++++++++++++++++ 6 files changed, 331 insertions(+) create mode 100644 models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__dicionario.sql create mode 100644 models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_compras_centralizadas.sql create mode 100644 models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_defesa_civil.sql create mode 100644 models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_governo_federal.sql create mode 100644 models/br_cgu_cartao_pagamento/schema.yml diff --git a/dbt_project.yml b/dbt_project.yml index 87734b02..da4c5bac 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -102,6 +102,9 @@ models: br_cgu_beneficios_cidadao: +materialized: table +schema: br_cgu_beneficios_cidadao + br_cgu_cartao_pagamento: + +materialized: table + +schema: br_cgu_cartao_pagamento br_cgu_dados_abertos: +materialized: table +schema: br_cgu_dados_abertos diff --git a/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__dicionario.sql b/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__dicionario.sql new file mode 100644 index 00000000..eb2059e6 --- /dev/null +++ b/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__dicionario.sql @@ -0,0 +1,13 @@ +{{ + config( + alias="dicionario", schema="br_cgu_cartao_pagamento", materialized="table" + ) +}} + +select + safe_cast(id_tabela as string) id_tabela, + safe_cast(nome_coluna as string) nome_coluna, + safe_cast(trim(chave) as string) chave, + safe_cast(cobertura_temporal as string) cobertura_temporal, + safe_cast(valor as string) valor, +from `basedosdados.br_cgu_cartao_pagamento_staging.dicionario` as t diff --git a/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_compras_centralizadas.sql b/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_compras_centralizadas.sql new file mode 100644 index 00000000..4b55d263 --- /dev/null +++ b/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_compras_centralizadas.sql @@ -0,0 +1,32 @@ +{{ + config( + alias="microdados_compras_centralizadas", + schema="br_cgu_cartao_pagamento", + materialized="table", + ) +}} +select + safe_cast(ano_extrato as int64) ano_extrato, + safe_cast(mes_extrato as int64) mes_extrato, + safe_cast(codigo_orgao_superior as string) codigo_orgao_superior, + initcap(nome_orgao_superior) nome_orgao_superior, + safe_cast(codigo_orgao as string) codigo_orgao, + initcap(nome_orgao) nome_orgao, + safe_cast(codigo_unidade_gestora as string) codigo_unidade_gestora, + initcap(nome_unidade_gestora) nome_unidade_gestora, + safe_cast(tipo_aquisicao as string) tipo_aquisicao, + case + when cnpj_ou_cpf_favorecido = '-2' + then 'NÃO SE APLICA' + when cnpj_ou_cpf_favorecido = '-11' + then 'Sigiloso' + when cnpj_ou_cpf_favorecido = '-1' + then 'SEM INFORMACAO' + else cnpj_ou_cpf_favorecido + end as cnpj_cpf_favorecido, + initcap(nome_favorecido) nome_favorecido, + safe_cast(transacao as string) transacao, + parse_date("%d/%m/%Y", data_transacao) data_transacao, + safe_cast(valor_transacao as float64) valor_transacao, +from + `basedosdados.br_cgu_cartao_pagamento_staging.microdados_compras_centralizadas` as t diff --git a/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_defesa_civil.sql b/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_defesa_civil.sql new file mode 100644 index 00000000..9c6c2fb4 --- /dev/null +++ b/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_defesa_civil.sql @@ -0,0 +1,38 @@ +{{ + config( + alias="microdados_defesa_civil", + schema="br_cgu_cartao_pagamento", + materialized="table", + ) +}} + +select + safe_cast(ano_extrato as int64) ano_extrato, + safe_cast(mes_extrato as int64) mes_extrato, + safe_cast(codigo_orgao_superior as string) codigo_orgao_superior, + initcap(nome_orgao_superior) nome_orgao_superior, + safe_cast(codigo_orgao as string) codigo_orgao, + initcap(nome_orgao) nome_orgao, + safe_cast(codigo_unidade_gestora as string) codigo_unidade_gestora, + initcap(nome_unidade_gestora) nome_unidade_gestora, + safe_cast(cpf_portador as string) cpf_portador, + initcap(nome_portador) nome_portador, + case + when cnpj_ou_cpf_favorecido = '-2' + then initcap('NÃO SE APLICA') + when cnpj_ou_cpf_favorecido = '-11' + then initcap('Sigiloso') + when cnpj_ou_cpf_favorecido = '-1' + then initcap('SEM INFORMACAO') + else initcap(cnpj_ou_cpf_favorecido) + end as cnpj_cpf_favorecido, + initcap(nome_favorecido) nome_favorecido, + safe_cast(executor_despesa as string) executor_despesa, + safe_cast(numero_convenio as string) numero_convenio, + safe_cast(codigo_convenente as string) codigo_convenente, + initcap(nome_convenente) nome_convenente, + safe_cast(repasse as string) repasse, + safe_cast(transacao as string) transacao, + parse_date("%d/%m/%Y", data_transacao) data_transacao, + safe_cast(valor_transacao as float64) valor_transacao, +from `basedosdados.br_cgu_cartao_pagamento_staging.microdados_defesa_civil` as t diff --git a/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_governo_federal.sql b/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_governo_federal.sql new file mode 100644 index 00000000..6300002c --- /dev/null +++ b/models/br_cgu_cartao_pagamento/br_cgu_cartao_pagamento__microdados_governo_federal.sql @@ -0,0 +1,33 @@ +{{ + config( + alias="microdados_governo_federal", + schema="br_cgu_cartao_pagamento", + materialized="table", + ) +}} + +select + safe_cast(ano_extrato as int64) ano_extrato, + safe_cast(mes_extrato as int64) mes_extrato, + safe_cast(codigo_orgao_superior as string) codigo_orgao_superior, + initcap(nome_orgao_superior) nome_orgao_superior, + safe_cast(codigo_orgao as string) codigo_orgao, + initcap(nome_orgao) nome_orgao, + safe_cast(codigo_unidade_gestora as string) codigo_unidade_gestora, + initcap(nome_unidade_gestora) nome_unidade_gestora, + safe_cast(cpf_portador as string) cpf_portador, + initcap(nome_portador) nome_portador, + case + when cnpj_ou_cpf_favorecido = '-2' + then 'NÃO SE APLICA' + when cnpj_ou_cpf_favorecido = '-11' + then 'Sigiloso' + when cnpj_ou_cpf_favorecido = '-1' + then 'SEM INFORMACAO' + else cnpj_ou_cpf_favorecido + end as cnpj_cpf_favorecido, + initcap(nome_favorecido) nome_favorecido, + safe_cast(transacao as string) transacao, + parse_date("%d/%m/%Y", data_transacao) data_transacao, + safe_cast(valor_transacao as float64) valor_transacao, +from `basedosdados.br_cgu_cartao_pagamento_staging.microdados_governo_federal` as t diff --git a/models/br_cgu_cartao_pagamento/schema.yml b/models/br_cgu_cartao_pagamento/schema.yml new file mode 100644 index 00000000..a4d3e46a --- /dev/null +++ b/models/br_cgu_cartao_pagamento/schema.yml @@ -0,0 +1,212 @@ +--- +version: 2 +models: + - name: br_cgu_cartao_pagamento__microdados_governo_federal + description: O Cartão de Pagamento do Governo Federal (CPGF) é um meio de pagamento + utilizado pelo governo que funciona de forma similar ao cartão de crédito que + utilizamos em nosso dia a dia, porém dentro de limites e regras específicas. + tests: + - not_null_proportion_multiple_columns: + at_least: 0.80 + - custom_dictionary_coverage: + columns_covered_by_dictionary: [transacao] + dictionary_model: ref('br_cgu_cartao_pagamento__dicionario') + columns: + - name: ano_extrato + description: Ano do extrato de transações + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes_extrato + description: Mês do extrato de transações + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: codigo_orgao_superior + description: Código do Órgão Superior da unidade gestora em nome da qual foi + gerado o cartão. + - name: nome_orgao_superior + description: Nome do Órgão Superior da unidade gestora em nome da qual foi + gerado o cartão. + - name: codigo_orgao + description: Código do Órgão Subordinado da unidade gestora em nome da qual + foi gerado o cartão + - name: nome_orgao + description: Nome do Órgão Subordinado da unidade gestora em nome da qual + foi gerado o cartão. + - name: codigo_unidade_gestora + description: Código da Unidade Gestora em nome da qual foi gerado o cartão. + - name: nome_unidade_gestora + description: Nome da Unidade Gestora + - name: cpf_portador + description: CPF do portador do cartão utilizado na realização da transação + - name: nome_portador + description: Nome do portador do cartão utilizado na realização da transação + - name: cnpj_cpf_favorecido + description: CNPJ do estabelecimento ou CPF da pessoa física que recebeu o + pagamento + - name: nome_favorecido + description: Nome do estabelecimento ou da pessoa física que recebeu o pagamento + - name: transacao + description: Operação efetuada pelo Portador junto ao Afiliado ou Contratado, + mediante utilização do CPGF realizada com o cartão + - name: data_transacao + description: Data em que a transação foi efetuada + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + - name: valor_transacao + description: Valor da transação realizada com o cartão + - name: br_cgu_cartao_pagamento__microdados_compras_centralizadas + description: Refere-se aos pagamentos realizados através de compras centralizadas, + ou seja, aquisições feitas de forma coordenada por um único órgão ou entidade + para beneficiar diversas áreas da administração pública. + tests: + - not_null_proportion_multiple_columns: + at_least: 0.80 + - custom_dictionary_coverage: + columns_covered_by_dictionary: [transacao] + dictionary_model: ref('br_cgu_cartao_pagamento__dicionario') + columns: + - name: ano_extrato + description: Ano do extrato de transações + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes_extrato + description: Mês do extrato de transações + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: codigo_orgao_superior + description: Código do Órgão Superior da unidade gestora em nome da qual foi + gerado o cartão. + - name: nome_orgao_superior + description: Nome do Órgão Superior da unidade gestora em nome da qual foi + gerado o cartão. + - name: codigo_orgao + description: Código do Órgão Subordinado da unidade gestora em nome da qual + foi gerado o cartão + - name: nome_orgao + description: Nome do Órgão Subordinado da unidade gestora em nome da qual + foi gerado o cartão. + - name: codigo_unidade_gestora + description: Código da Unidade Gestora em nome da qual foi gerado o cartão. + - name: nome_unidade_gestora + description: Nome da Unidade Gestora + - name: tipo_aquisicao + description: Tipo de aquisição + - name: cnpj_cpf_favorecido + description: CNPJ do estabelecimento ou CPF da pessoa física que recebeu o + pagamento + - name: nome_favorecido + description: Nome do estabelecimento ou da pessoa física que recebeu o pagamento + - name: transacao + description: Operação efetuada pelo Portador junto ao Afiliado ou Contratado, + mediante utilização do CPGF realizada com o cartão + - name: data_transacao + description: Data em que a transação foi efetuada + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + - name: valor_transacao + description: Valor da transação realizada com o cartão + - name: br_cgu_cartao_pagamento__microdados_desfesa_civil + description: O Cartão de Pagamento de Defesa Civil (CPDC) é a forma exclusiva + para o pagamento de despesas com ações de resposta promovidas por governos estaduais, + do Distrito Federal e municipais com recursos transferidos pela União. + tests: + - not_null_proportion_multiple_columns: + at_least: 0.95 + - custom_dictionary_coverage: + columns_covered_by_dictionary: [transacao] + dictionary_model: ref('br_cgu_cartao_pagamento__dicionario') + columns: + - name: ano_extrato + description: Ano do extrato de transações + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes_extrato + description: Mês do extrato de transações + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: codigo_orgao_superior + description: Código do Órgão Superior da unidade gestora em nome da qual foi + gerado o cartão. + - name: nome_orgao_superior + description: Nome do Órgão Superior da unidade gestora em nome da qual foi + gerado o cartão. + - name: codigo_orgao + description: Código do Órgão Subordinado da unidade gestora em nome da qual + foi gerado o cartão + - name: nome_orgao + description: Nome do Órgão Subordinado da unidade gestora em nome da qual + foi gerado o cartão. + - name: codigo_unidade_gestora + description: Código da Unidade Gestora em nome da qual foi gerado o cartão. + - name: nome_unidade_gestora + description: Nome da Unidade Gestora + - name: cpf_portador + description: CPF do portador do cartão utilizado na realização da transação + - name: nome_portador + description: Nome do portador do cartão utilizado na realização da transação + - name: cnpj_cpf_favorecido + description: CNPJ do estabelecimento ou CPF da pessoa física que recebeu o + pagamento + - name: nome_favorecido + description: Nome do estabelecimento ou da pessoa física que recebeu o pagamento + - name: executor_despesa + description: Executor da despesa com o CPDC + - name: numero_convenio + description: Número do convênio a que se refere a despesa + - name: codigo_convenente + description: Código do convenente do convênio a que se refere a despesa + - name: nome_convenente + description: Nome do convenente + - name: repasse + description: Indicador de repasse + - name: transacao + description: Operação efetuada pelo Portador junto ao Afiliado ou Contratado, + mediante utilização do CPGF realizada com o cartão + - name: data_transacao + description: Data em que a transação foi efetuada + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + - name: valor_transacao + description: Valor da transação realizada com o cartão + - name: br_cgu_cartao_pagamento__dicionario + description: Dicionário para tradução dos códigos do conjunto br_cgu_cartao_pagamento. + Para taduzir códigos compartilhados entre instituições, como id_municipio, buscar + por diretórios + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - id_tabela + - nome_coluna + - chave + - cobertura_temporal + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: id_tabela + description: ID Tabela + - name: nome_coluna + description: Nome da coluna + - name: chave + description: Chave + - name: cobertura_temporal + description: Cobertura Temporal + - name: valor + description: Valor