From a1b992d34f77eb302d11b6ebc7a4f0685d9bfcfd Mon Sep 17 00:00:00 2001 From: andre-ls Date: Thu, 3 Oct 2024 11:57:58 -0300 Subject: [PATCH 01/12] =?UTF-8?q?Adi=C3=A7=C3=A3o=20Demais=20Tabelas=20br?= =?UTF-8?q?=5Frf=5Farrecadacao?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../br_rf_arrecadacao__cnae.sql | 25 + .../br_rf_arrecadacao__ir_ipi.sql | 14 + .../br_rf_arrecadacao__itr.sql | 10 + .../br_rf_arrecadacao__natureza_juridica.sql | 30 ++ models/br_rf_arrecadacao/code/clean_cnae.py | 49 ++ .../br_rf_arrecadacao/code/clean_functions.py | 136 ++++++ models/br_rf_arrecadacao/code/clean_ir_ipi.py | 37 ++ models/br_rf_arrecadacao/code/clean_itr.py | 30 ++ .../code/clean_natureza_juridica.py | 50 ++ .../code/{clean_data.py => clean_uf.py} | 61 +-- .../br_rf_arrecadacao/code/download_data.py | 23 +- models/br_rf_arrecadacao/schema.yml | 437 +++++++++++------- 12 files changed, 672 insertions(+), 230 deletions(-) create mode 100644 models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql create mode 100644 models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql create mode 100644 models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql create mode 100644 models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql create mode 100644 models/br_rf_arrecadacao/code/clean_cnae.py create mode 100644 models/br_rf_arrecadacao/code/clean_functions.py create mode 100644 models/br_rf_arrecadacao/code/clean_ir_ipi.py create mode 100644 models/br_rf_arrecadacao/code/clean_itr.py create mode 100644 models/br_rf_arrecadacao/code/clean_natureza_juridica.py rename models/br_rf_arrecadacao/code/{clean_data.py => clean_uf.py} (63%) diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql new file mode 100644 index 00000000..af513203 --- /dev/null +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql @@ -0,0 +1,25 @@ +{{ config(alias='cnae',schema='br_rf_arrecadacao') }} +select +safe_cast(ano as int64) ano, +safe_cast(mes as int64) mes, +safe_cast(secao_sigla as string) secao_sigla, +safe_cast(secao_nome as string) secao_nome, +safe_cast(imposto_importacao as float64) imposto_importacao, +safe_cast(imposto_exportacao as float64) imposto_exportacao, +safe_cast(ipi as float64) ipi, +safe_cast(irpf as float64) irpf, +safe_cast(irpj as float64) irpj, +safe_cast(irrf as float64) irrf, +safe_cast(iof as float64) iof, +safe_cast(itr as float64) itr, +safe_cast(cofins as float64) cofins, +safe_cast(pis_pasep as float64) pis_pasep, +safe_cast(csll as float64) csll, +safe_cast(cide_combustiveis as float64) cide_combustiveis, +safe_cast(contribuicao_previdenciaria as float64) contribuicao_previdenciaria, +safe_cast(cpsss as float64) cpsss, +safe_cast(pagamento_unificado as float64) pagamento_unificado, +safe_cast(outras_receitas_rfb as float64) outras_receitas_rfb, +safe_cast(demais_receitas as float64) demais_receitas, +from `basedosdados-dev.br_rf_arrecadacao_staging.cnae` as t + diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql new file mode 100644 index 00000000..d68a3858 --- /dev/null +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql @@ -0,0 +1,14 @@ +{{ config(alias='ir_ipi',schema='br_rf_arrecadacao') }} +select +safe_cast(ano as int64) ano, +safe_cast(mes as int64) mes, +safe_cast(tributo as string) tributo, +safe_cast(decendio as string) decendio, +safe_cast(arrecadacao_bruta as float64) arrecadacao_bruta, +safe_cast(retificacao as float64) retificacao, +safe_cast(compensacao as float64) compensacao, +safe_cast(restituicao as float64) restituicao, +safe_cast(outros as float64) outros, +safe_cast(arrecadacao_liquida as float64) arrecadacao_liquida, +from `basedosdados-dev.br_rf_arrecadacao_staging.ir_ipi` as t + diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql new file mode 100644 index 00000000..3e0c9662 --- /dev/null +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql @@ -0,0 +1,10 @@ +{{ config(alias='itr',schema='br_rf_arrecadacao') }} +select +safe_cast(ano as int64) ano, +safe_cast(mes as int64) mes, +safe_cast(nome_uf as string) nome_uf, +safe_cast(regiao_politica as string) regiao_politica, +safe_cast(cidade_uf as string) cidade_uf, +safe_cast(valor_arrecadado as float64) valor_arrecadado, +from `basedosdados-dev.br_rf_arrecadacao_staging.itr` as t + diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql new file mode 100644 index 00000000..485b2b6d --- /dev/null +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql @@ -0,0 +1,30 @@ +{{ config(alias='natureza_juridica',schema='br_rf_arrecadacao') }} +WITH referencia_codigo AS ( + select id_natureza_juridica,SUBSTR(CAST(id_natureza_juridica AS STRING),0,3) as inicio_codigo + FROM basedosdados-dev.br_bd_diretorios_brasil.natureza_juridica +) +select +safe_cast(t.ano as int64) ano, +safe_cast(t.mes as int64) mes, +safe_cast(referencia_codigo.id_natureza_juridica as string) natureza_juridica_codigo, +safe_cast(t.natureza_juridica_nome as string) natureza_juridica_nome, +safe_cast(t.imposto_importacao as float64) imposto_importacao, +safe_cast(t.imposto_exportacao as float64) imposto_exportacao, +safe_cast(t.ipi as float64) ipi, +safe_cast(t.irpf as float64) irpf, +safe_cast(t.irpj as float64) irpj, +safe_cast(t.irrf as float64) irrf, +safe_cast(t.iof as float64) iof, +safe_cast(t.itr as float64) itr, +safe_cast(t.cofins as float64) cofins, +safe_cast(t.pis_pasep as float64) pis_pasep, +safe_cast(t.csll as float64) csll, +safe_cast(t.cide_combustiveis as float64) cide_combustiveis, +safe_cast(t.contribuicao_previdenciaria as float64) contribuicao_previdenciaria, +safe_cast(t.cpsss as float64) cpsss, +safe_cast(t.pagamento_unificado as float64) pagamento_unificado, +safe_cast(t.outras_receitas_rfb as float64) outras_receitas_rfb, +safe_cast(t.demais_receitas as float64) demais_receitas, +from `basedosdados-dev.br_rf_arrecadacao_staging.natureza_juridica` as t +left join referencia_codigo on t.natureza_juridica_codigo = referencia_codigo.inicio_codigo + diff --git a/models/br_rf_arrecadacao/code/clean_cnae.py b/models/br_rf_arrecadacao/code/clean_cnae.py new file mode 100644 index 00000000..c669f758 --- /dev/null +++ b/models/br_rf_arrecadacao/code/clean_cnae.py @@ -0,0 +1,49 @@ +import os +import numpy as np +import pandas as pd +from clean_functions import * + +def rename_columns(df): + name_dict = { + 'Ano':'ano', + 'Mês':'mes', + 'Seção - Sigla':'secao_sigla', + 'Seção - Nome':'secao_nome', + 'II':'imposto_importacao', + 'IE':'imposto_exportacao', + 'IPI':'ipi', + 'IRPF':'irpf', + 'IRPJ':'irpj', + 'IRRF':'irrf', + 'IOF':'iof', + 'ITR':'itr', + 'Cofins':'cofins', + 'Pis/Pasep':'pis_pasep', + 'CSLL':'csll', + 'Cide': 'cide_combustiveis', + 'Contribuição Previdenciária':'contribuicao_previdenciaria', + 'CPSSS':'cpsss', + 'Pagamento Unificado':'pagamento_unificado', + 'Outras Receitas Administradas':'outras_receitas_rfb', + 'Receitas Não Administradas':'demais_receitas' + } + + return df.rename(columns=name_dict) + +def change_types(df): + df['ano'] = df['ano'].astype('int') + df['mes'] = get_month_number(df['mes']) + + #All remaining columns are monetary values + for col in df.columns[4:]: + df[col] = df[col].apply(replace_commas).apply(remove_dots).astype('float') + + return df + +if __name__ == '__main__': + df = read_data(file_dir='../input/arrecadacao-cnae.csv') + df = remove_empty_columns(df) + df = remove_empty_rows(df) + df = rename_columns(df) + df = change_types(df) + save_data(df=df,file_dir='../output/br_rf_arrecadacao_cnae',partition_cols=['ano','mes']) diff --git a/models/br_rf_arrecadacao/code/clean_functions.py b/models/br_rf_arrecadacao/code/clean_functions.py new file mode 100644 index 00000000..7a2d683b --- /dev/null +++ b/models/br_rf_arrecadacao/code/clean_functions.py @@ -0,0 +1,136 @@ +import os +import numpy as np +import pandas as pd +from typing import List +from pathlib import Path + +file_directory = os.path.dirname(__file__) + +def read_data(file_dir,separator=';'): + data_directory = os.path.join(file_directory, file_dir) + + return pd.read_csv(data_directory, sep=separator) + +def remove_empty_rows(df): + return df.dropna(axis=0, how='all') + +def remove_empty_columns(df): + return df.drop(list(df.filter(regex='Unnamed')), axis=1) + +def replace_commas(value): + string_value = str(value) + num_commas = string_value.count(',') + if num_commas == 1: + return string_value.replace(',','.') + elif num_commas > 1: + return string_value.replace(',','',num_commas-1).replace(',','.') + else: + return string_value + +def remove_dots(value): + string_value = str(value) + num_dots = string_value.count('.') + if num_dots > 1: + return string_value.replace('.','',num_dots-1) + else: + return string_value + +def get_month_number(month_column): + + month_lower = month_column.str.lower() + month_inits = month_lower.str[:3] + + month_numbers = { + 'jan': '1', + 'fev': '2', + 'mar': '3', + 'abr': '4', + 'mai': '5', + 'jun': '6', + 'jul': '7', + 'ago': '8', + 'set': '9', + 'out': '10', + 'nov': '11', + 'dez': '12' + } + return month_inits.replace(month_numbers).astype('int') + +def to_partitions( + data: pd.DataFrame, + partition_columns: List[str], + savepath: str, + file_type: str = "csv", +): + """Save data in to hive patitions schema, given a dataframe and a list of partition columns. + Args: + data (pandas.core.frame.DataFrame): Dataframe to be partitioned. + partition_columns (list): List of columns to be used as partitions. + savepath (str, pathlib.PosixPath): folder path to save the partitions. + file_type (str): default to csv. Accepts parquet. + Exemple: + data = { + "ano": [2020, 2021, 2020, 2021, 2020, 2021, 2021,2025], + "mes": [1, 2, 3, 4, 5, 6, 6,9], + "sigla_uf": ["SP", "SP", "RJ", "RJ", "PR", "PR", "PR","PR"], + "dado": ["a", "b", "c", "d", "e", "f", "g",'h'], + } + to_partitions( + data=pd.DataFrame(data), + partition_columns=['ano','mes','sigla_uf'], + savepath='partitions/', + ) + """ + + if isinstance(data, (pd.core.frame.DataFrame)): + savepath = Path(savepath) + # create unique combinations between partition columns + unique_combinations = ( + data[partition_columns] + # .astype(str) + .drop_duplicates(subset=partition_columns).to_dict(orient="records") + ) + + for filter_combination in unique_combinations: + patitions_values = [ + f"{partition}={value}" + for partition, value in filter_combination.items() + ] + + # get filtered data + df_filter = data.loc[ + data[filter_combination.keys()] + .isin(filter_combination.values()) + .all(axis=1), + :, + ] + df_filter = df_filter.drop(columns=partition_columns) + + # create folder tree + filter_save_path = Path(savepath / "/".join(patitions_values)) + filter_save_path.mkdir(parents=True, exist_ok=True) + + if file_type == "csv": + # append data to csv + file_filter_save_path = Path(filter_save_path) / "data.csv" + df_filter.to_csv( + file_filter_save_path, + sep=",", + encoding="utf-8", + na_rep="", + index=False, + mode="a", + header=not file_filter_save_path.exists(), + ) + elif file_type == "parquet": + # append data to parquet + file_filter_save_path = Path(filter_save_path) / "data.parquet" + df_filter.to_parquet( + file_filter_save_path, index=False, compression="gzip" + ) + else: + raise BaseException("Data need to be a pandas DataFrame") + +def save_data(df,file_dir,partition_cols): + data_directory = os.path.join(file_directory,file_dir) + to_partitions(data=df,partition_columns=partition_cols,savepath=data_directory) diff --git a/models/br_rf_arrecadacao/code/clean_ir_ipi.py b/models/br_rf_arrecadacao/code/clean_ir_ipi.py new file mode 100644 index 00000000..af7f99b2 --- /dev/null +++ b/models/br_rf_arrecadacao/code/clean_ir_ipi.py @@ -0,0 +1,37 @@ +import os +import numpy as np +import pandas as pd +from clean_functions import * + +def rename_columns(df): + name_dict = { + 'Ano':'ano', + 'Mês':'mes', + 'Tributo':'tributo', + 'Decêndio':'decendio', + 'Arrecadação Bruta':'arrecadacao_bruta', + 'Retificação':'retificacao', + 'Compensação':'compensacao', + 'Restituição':'restituicao', + 'Outros':'outros', + 'Arrecadação Líquida':'arrecadacao_liquida' + } + + return df.rename(columns=name_dict) + +def change_types(df): + df['ano'] = df['ano'].astype('int') + df['mes'] = get_month_number(df['mes']) + + #All remaining columns are monetary values + for col in df.columns[4:]: + df[col] = df[col].apply(replace_commas).apply(remove_dots).astype('float') + + return df + +if __name__ == '__main__': + df = read_data(file_dir='../input/arrecadacao-ir-ipi.csv') + df = remove_empty_rows(df) + df = rename_columns(df) + df = change_types(df) + save_data(df=df,file_dir='../output/br_rf_arrecadacao_ir_ipi',partition_cols=['ano','mes']) diff --git a/models/br_rf_arrecadacao/code/clean_itr.py b/models/br_rf_arrecadacao/code/clean_itr.py new file mode 100644 index 00000000..8eea9ffb --- /dev/null +++ b/models/br_rf_arrecadacao/code/clean_itr.py @@ -0,0 +1,30 @@ +import os +import numpy as np +import pandas as pd +from clean_functions import * + +def rename_columns(df): + name_dict = { + 'Ano':'ano', + 'Mês':'mes', + 'Unidade da Federação':'nome_uf', + 'Região Política':'regiao_politica', + 'Cidade e UF':'cidade_uf', + 'Valor':'valor_arrecadado' + } + + return df.rename(columns=name_dict) + +def change_types(df): + df['ano'] = df['ano'].astype('int') + df['mes'] = get_month_number(df['mes']) + df['valor_arrecadado'] = df['valor_arrecadado'].apply(replace_commas).apply(remove_dots).astype('float') + + return df + +if __name__ == '__main__': + df = read_data(file_dir='../input/arrecadacao-itr.csv') + df = remove_empty_rows(df) + df = rename_columns(df) + df = change_types(df) + save_data(df=df,file_dir='../output/br_rf_arrecadacao_itr',partition_cols=['ano','mes']) diff --git a/models/br_rf_arrecadacao/code/clean_natureza_juridica.py b/models/br_rf_arrecadacao/code/clean_natureza_juridica.py new file mode 100644 index 00000000..df9ce70d --- /dev/null +++ b/models/br_rf_arrecadacao/code/clean_natureza_juridica.py @@ -0,0 +1,50 @@ +import os +import numpy as np +import pandas as pd +from clean_functions import * + +def rename_columns(df): + name_dict = { + 'Ano':'ano', + 'Mês':'mes', + 'Natureza Jurídica - Código':'natureza_juridica_codigo', + 'Natureza Jurídica - Nome':'natureza_juridica_nome', + 'II':'imposto_importacao', + 'IE':'imposto_exportacao', + 'IPI':'ipi', + 'IRPF':'irpf', + 'IRPJ':'irpj', + 'IRRF':'irrf', + 'IOF':'iof', + 'ITR':'itr', + 'Cofins':'cofins', + 'Pis/Pasep':'pis_pasep', + 'CSLL':'csll', + 'Cide': 'cide_combustiveis', + 'Contribuição Previdenciária':'contribuicao_previdenciaria', + 'CPSSS':'cpsss', + 'Pagamento Unificado':'pagamento_unificado', + 'Outras Receitas Administradas':'outras_receitas_rfb', + 'Receitas Não Administradas':'demais_receitas' + } + + return df.rename(columns=name_dict) + +def change_types(df): + df['ano'] = df['ano'].astype('int') + df['mes'] = get_month_number(df['mes']) + df['natureza_juridica_nome'] = df['natureza_juridica_nome'].str.title() + + #All remaining columns are monetary values + for col in df.columns[4:]: + df[col] = df[col].apply(replace_commas).apply(remove_dots).astype('float') + + return df + +if __name__ == '__main__': + df = read_data(file_dir='../input/arrecadacao-natureza.csv') + df = remove_empty_rows(df) + df = remove_empty_columns(df) + df = rename_columns(df) + df = change_types(df) + save_data(df=df,file_dir='../output/br_rf_arrecadacao_natureza_juridica',partition_cols=['ano','mes']) diff --git a/models/br_rf_arrecadacao/code/clean_data.py b/models/br_rf_arrecadacao/code/clean_uf.py similarity index 63% rename from models/br_rf_arrecadacao/code/clean_data.py rename to models/br_rf_arrecadacao/code/clean_uf.py index c9b0190f..97098652 100644 --- a/models/br_rf_arrecadacao/code/clean_data.py +++ b/models/br_rf_arrecadacao/code/clean_uf.py @@ -1,15 +1,7 @@ import os import numpy as np import pandas as pd - -file_directory = os.path.dirname(__file__) - -def read_data(): - data_directory = os.path.join(file_directory, '../input/arrecadacao-estado.csv') - return pd.read_csv(data_directory, sep=';') - -def removeEmptyRows(df): - return df.dropna(axis=0, how='all') +from clean_functions import * def rename_columns(df): name_dict = { @@ -35,13 +27,13 @@ def rename_columns(df): 'IMPOSTO PROVIS.S/ MOVIMENT. FINANC. - IPMF':'ipmf', 'CPMF':'cpmf', 'COFINS':'cofins', - 'COFINS - FINANCEIRAS':'cofins_financeiras', + 'COFINS - FINANCEIRAS':'cofins_entidades_financeiras', 'COFINS - DEMAIS':'cofins_demais_empresas', 'CONTRIBUIÇÃO PARA O PIS/PASEP':'pis_pasep', 'CONTRIBUIÇÃO PARA O PIS/PASEP - FINANCEIRAS':'pis_pasep_entidades_financeiras', 'CONTRIBUIÇÃO PARA O PIS/PASEP - DEMAIS':'pis_pasep_demais_empresas', 'CSLL':'csll', - 'CSLL - FINANCEIRAS':'csll_financeiras', + 'CSLL - FINANCEIRAS':'csll_entidades_financeiras', 'CSLL - DEMAIS':'csll_demais_empresas', 'CIDE-COMBUSTÍVEIS (parc. não dedutível)': 'cide_combustiveis_parcela_nao_dedutivel', 'CIDE-COMBUSTÍVEIS':'cide_combustiveis', @@ -52,7 +44,7 @@ def rename_columns(df): 'PAES':'paes', 'RETENÇÃO NA FONTE - LEI 10.833, Art. 30':'retencoes_fonte', 'PAGAMENTO UNIFICADO':'pagamento_unificado', - 'OUTRAS RECEITAS ADMINISTRADAS':'outras_receitas_', + 'OUTRAS RECEITAS ADMINISTRADAS':'outras_receitas_rfb', 'DEMAIS RECEITAS':'demais_receitas', 'RECEITA PREVIDENCIÁRIA':'receita_previdenciaria', 'RECEITA PREVIDENCIÁRIA - PRÓPRIA':'receita_previdenciaria_propria', @@ -62,41 +54,6 @@ def rename_columns(df): return df.rename(columns=name_dict) -def replace_commas(value): - string_value = str(value) - num_commas = string_value.count(',') - if num_commas == 1: - return string_value.replace(',','.') - elif num_commas > 1: - return string_value.replace(',','',num_commas-1).replace(',','.') - else: - return string_value - -def remove_dots(value): - string_value = str(value) - num_dots = string_value.count('.') - if num_dots > 1: - return string_value.replace('.','',num_dots-1) - else: - return string_value - -def get_month_number(month_column): - month_numbers = { - 'Janeiro': '1', - 'Fevereiro': '2', - 'Março': '3', - 'Abril': '4', - 'Maio': '5', - 'Junho': '6', - 'Julho': '7', - 'Agosto': '8', - 'Setembro': '9', - 'Outubro': '10', - 'Novembro': '11', - 'Dezembro':'12' - } - return month_column.replace(month_numbers).astype('int') - def change_types(df): df['ano'] = df['ano'].astype('int') df['mes'] = get_month_number(df['mes']) @@ -108,13 +65,9 @@ def change_types(df): return df -def save_data(df): - data_directory = os.path.join(file_directory, '../output/br_rf_arrecadacao') - df.to_parquet(data_directory, partition_cols=['ano','mes']) - if __name__ == '__main__': - df = read_data() - df = removeEmptyRows(df) + df = read_data(file_dir='../input/arrecadacao-estado.csv') + df = remove_empty_rows(df) df = rename_columns(df) df = change_types(df) - save_data(df) + save_data(df=df,file_dir='../output/br_rf_arrecadacao_uf',partition_cols=['ano','mes']) diff --git a/models/br_rf_arrecadacao/code/download_data.py b/models/br_rf_arrecadacao/code/download_data.py index 888af4ba..dbe8db37 100644 --- a/models/br_rf_arrecadacao/code/download_data.py +++ b/models/br_rf_arrecadacao/code/download_data.py @@ -1,11 +1,26 @@ import requests +import gzip def download_data(url, file_path): response = requests.get(url) + with open(file_path, 'w') as file: - file.write(response.content.decode('latin1')) + if response.headers['Content-Type'] == 'application/gzip': + content = str(gzip.decompress(response.content),'utf-8') + else: + content = response.content.decode('latin1') + file.write(content) if __name__ == "__main__": - url = "https://www.gov.br/receitafederal/dados/arrecadacao-estado.csv" - file_path = f"input/arrecadacao-estado.csv" - download_data(url, file_path) + + extractions = [ + {'url':'https://www.gov.br/receitafederal/dados/arrecadacao-estado.csv','file_path':'input/arrecadacao-estado.csv'}, #Tabela uf + {'url':'https://www.gov.br/receitafederal/dados/arrecadacao-cnae.csv','file_path':'input/arrecadacao-cnae.csv'}, #Tabela cnae + {'url':'https://www.gov.br/receitafederal/dados/arrecadacao-natureza.csv','file_path':'input/arrecadacao-natureza.csv'}, #Tabela natureza_juridica + {'url':'https://www.gov.br/receitafederal/dados/arrecadacao-ir-ipi.csv','file_path':'input/arrecadacao-ir-ipi.csv'}, #Tabela ir_ipi + {'url':'https://www.gov.br/receitafederal/dados/arrecadacao-itr.csv','file_path':'input/arrecadacao-itr.csv'}, #Tabela itr + ] + + for extract in extractions: + download_data(extract['url'], extract['file_path']) + diff --git a/models/br_rf_arrecadacao/schema.yml b/models/br_rf_arrecadacao/schema.yml index 821c1cff..99dc4ea2 100644 --- a/models/br_rf_arrecadacao/schema.yml +++ b/models/br_rf_arrecadacao/schema.yml @@ -1,264 +1,357 @@ ---- version: 2 + models: - name: br_rf_arrecadacao__uf - description: Contém os dados de arrecadação mensal por Unidade da Federação, contendo - receitas administradas e não administradas pela Receita Federal do Brasil. + description: Contém os dados de arrecadação mensal por Unidade da Federação, contendo receitas administradas e não administradas pela RFB. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano, mes, sigla_uf] + combination_of_columns: + - insert unique keys here + - not_null_proportion_multiple_columns: + at_least: 0.95 columns: - name: ano description: Ano de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - dbt_utils.not_null_proportion: - at_least: 0.95 + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano - name: mes description: Mês de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes - - dbt_utils.not_null_proportion: - at_least: 0.95 + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes - name: sigla_uf description: Sigla da Unidade da Federação. tests: - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - dbt_utils.not_null_proportion: - at_least: 0.95 + to: ref('br_bd_diretorios_brasil__uf') + field: sigla - name: imposto_importacao description: Imposto sobre a Importação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: imposto_exportacao description: Imposto sobre a Exportação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: ipi_fumo description: Imposto sobre Produtos Industrializado incidente sobre setor - de fumo. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + de fumo. - name: ipi_bebidas description: Imposto sobre Produtos Industrializado incidente sobre setor - de bebidas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + de bebidas. - name: ipi_automoveis description: Imposto sobre Produtos Industrializado incidente sobre setor - de automóveis. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + de automóveis. - name: ipi_importacoes description: Imposto sobre Produtos Industrializado vinculado à importação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: ipi_outros description: Imposto sobre Produtos Industrializado incidente sobre outros - produtos. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + produtos. - name: irpf description: Imposto sobre a Renda da Pessoa Física. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: irpj_entidades_financeiras description: Imposto sobre a Renda da Pessoa Jurídica incidente em entidades - financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + financeiras. - name: irpj_demais_empresas description: Imposto sobre a Renda da Pessoa Jurídica incidente em demais - empresas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + empresas. - name: irrf_rendimentos_trabalho description: Imposto sobre a Renda Retido na Fonte referente à rendimentos - do trabalho. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + do trabalho. - name: irrf_rendimentos_capital description: Imposto sobre a Renda Retido na Fonte referente à rendimentos - do capital. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + do capital. - name: irrf_remessas_exterior description: Imposto sobre a Renda Retido na Fonte referente à remessas para - o exterior. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + o exterior. - name: irrf_outros_rendimentos description: Imposto sobre a Renda Retido na Fonte referente à outros rendimentos. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: iof description: Imposto sobre Operações Financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: itr description: Imposto sobre a Propriedade Territorial Rural. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: ipmf - description: Imposto Provisório sobre Movimentação Financeira. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.06 + description: 'Imposto Provisório sobre Movimentação Financeira. ' - name: cpmf description: Contribuição Provisória sobre Movimentação Financeira. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.45 - name: cofins description: Contribuição para o Financiamento da Seguridade Social. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.12 - name: cofins_entidades_financeiras - description: Contribuição para o Financiamento da Seguridade Social referente - à entidades financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 + description: 'Contribuição para o Financiamento da Seguridade Social referente + à entidades financeiras. ' - name: cofins_demais_empresas description: Contribuição para o Financiamento da Seguridade Social referente - à demais empresas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 + à demais empresas. - name: pis_pasep - description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.12 + description: 'Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. ' - name: pis_pasep_entidades_financeiras description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público referente à entidades financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 + do Servidor Público referente à entidades financeiras. - name: pis_pasep_demais_empresas description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público referente à demais empresas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 + do Servidor Público referente à demais empresas. - name: csll - description: Contribuição Social sobre o Lucro Líquido. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.12 + description: 'Contribuição Social sobre o Lucro Líquido. ' - name: csll_entidades_financeiras description: Contribuição Social sobre o Lucro Líquido referente à entidades - financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 + financeiras. - name: csll_demais_empresas description: Contribuição Social sobre o Lucro Líquido referente à demais - empresas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 + empresas. - name: cide_combustiveis_parcela_nao_dedutivel description: Parcela não dedutível da Contribuição de Intervenção no Domínio - Econômico aplicada à combustíveis. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.03 + Econômico aplicada à combustíveis. - name: cide_combustiveis description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.75 - name: cpsss_1 - description: Contribuição para o Plano de Seguridade Social do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.12 + description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' - name: cpsss_2 - description: Contribuição para o Plano de Seguridade Social do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.50 - - name: contribuicao_fundaf - description: Contribuições para o Fundo Especial de Desenvolvimento e Aperfeiçoamento - das Atividades de Fiscalização (Fundaf). - tests: - - dbt_utils.not_null_proportion: - at_least: 0.55 + description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' + - name: contribuicoes_fundaf + description: 'Contribuições para o Fundo Especial de Desenvolvimento e Aperfeiçoamento + das Atividades de Fiscalização (Fundaf). ' - name: refis description: Programa de Recuperação Fiscal. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.03 - name: paes description: Parcelamento Especial. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.03 - name: retencoes_fonte - description: Retenções na fonte de CSLL, Cofins e Pis/Pasep, previstas no - art. 30 da Lei nº 10.833, de 29 de dezembro de 2003. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.02 + description: 'Retenções na fonte de CSLL, Cofins e Pis/Pasep, previstas no + art. 30 da Lei nº 10.833, de 29 de dezembro de 2003. ' - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento - de arrecadação, tipo parcelamentos, retenções, Simples etc. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.04 + de arrecadação, tipo parcelamentos, retenções, Simples etc. - name: outras_receitas_rfb - description: Outras receitas administradas pela RFB. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 + description: 'Outras receitas administradas pela RFB. ' - name: demais_receitas - description: Outras receitas não administradas pela RFB. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.25 + description: 'Outras receitas não administradas pela RFB. ' - name: receita_previdenciaria description: Total da Receita Previdenciária. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.25 - name: receita_previdenciaria_propria description: Receita Previdenciária Própria. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.15 - name: receita_previdenciaria_demais description: Receita Previdenciária Demais. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.15 - name: receitas_outros_orgaos description: Receitas administradas por outros órgãos. + - name: br_rf_arrecadacao__cnae + description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos setores econômicos, identificados pela seção, constantes da tabela de Classificação Nacional de Atividades Econômicas (Cnae). + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - insert unique keys here + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: secao_sigla + description: Código da Seção da atividade econômica constante da Cnae. + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__cnae_2') + field: secao + - name: secao_nome + description: Nome da Seção da atividade econômica constante da Cnae + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__cnae_2') + field: descricao_secao + - name: imposto_importacao + description: Imposto sobre a Importação. + - name: imposto_exportacao + description: Imposto sobre a Exportação. + - name: ipi + description: Imposto sobre Produtos Industrializados. + - name: irpf + description: Imposto sobre a Renda da Pessoa Física. + - name: irpj + description: Imposto sobre a Renda da Pessoa Jurídica. + - name: irrf + description: Imposto sobre a Renda Retido na Fonte. + - name: iof + description: Imposto sobre Operações Financeiras. + - name: itr + description: Imposto sobre a Propriedade Territorial Rural. + - name: cofins + description: Contribuição para o Financiamento da Seguridade Social. + - name: pis_pasep + description: 'Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. ' + - name: csll + description: 'Contribuição Social sobre o Lucro Líquido. ' + - name: cide_combustiveis + description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. + - name: contribuicao_previdenciaria + description: Contribuição Previdenciária arrecadada em Darf. + - name: cpsss + description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' + - name: pagamento_unificado + description: Pagamentos referentes a vários tributos feitos em um único documento + de arrecadação, como parcelamentos, retenções, Simples etc. + - name: outras_receitas_rfb + description: 'Outras receitas administradas pela RFB. ' + - name: demais_receitas + description: 'Outras receitas não administradas pela RFB. ' + - name: br_rf_arrecadacao__natureza_juridica + description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos tipos de Naturezas Jurídicas. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - insert unique keys here + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês de referência. tests: - - dbt_utils.not_null_proportion: - at_least: 0.50 + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: natureza_juridica_codigo + description: Código do tipo de Natureza Jurídica. + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__natureza_juridica') + field: id_natureza_juridica + - name: natureza_juridica_nome + description: Nome do tipo da Natureza Jurídica. + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__natureza_juridica') + field: descricao + - name: imposto_importacao + description: Imposto sobre a Importação. + - name: imposto_exportacao + description: Imposto sobre a Exportação. + - name: ipi + description: Imposto sobre Produtos Industrializados. + - name: irpf + description: Imposto sobre a Renda da Pessoa Física. + - name: irpj + description: Imposto sobre a Renda da Pessoa Jurídica. + - name: irrf + description: Imposto sobre a Renda Retido na Fonte. + - name: iof + description: Imposto sobre Operações Financeiras. + - name: itr + description: Imposto sobre a Propriedade Territorial Rural. + - name: cofins + description: Contribuição para o Financiamento da Seguridade Social. + - name: pis_pasep + description: 'Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. ' + - name: csll + description: 'Contribuição Social sobre o Lucro Líquido. ' + - name: cide_combustiveis + description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. + - name: contribuicao_previdenciaria + description: Contribuição Previdenciária arrecadada em Darf. + - name: cpsss + description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' + - name: pagamento_unificado + description: Pagamentos referentes a vários tributos feitos em um único documento + de arrecadação, como parcelamentos, retenções, Simples etc. + - name: outras_receitas_rfb + description: 'Outras receitas administradas pela RFB. ' + - name: demais_receitas + description: 'Outras receitas não administradas pela RFB. ' + - name: br_rf_arrecadacao__ir_ipi + description: Contém os dados de arrecadação decendial do Imposto sobre a Renda (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação bruta, os respectivos eventos que afetam essa arrecadação bruta e a arrecadação líquida, valor este último passível de repasse aos Fundos de Participação dos Estados e do Municípios, FPM e FPE, de acordo com dispositivo constitucional. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - insert unique keys here + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: tributo + description: Identificação de Tributo (IR ou IPI). + - name: decendio + description: Decêndio de referência. + - name: arrecadacao_bruta + description: "Valor da arrecadação bruta dos tributos sem nenhum acréscimo\n + ou dedução. É a etapa inicial da arrecadação, quando há o pagamento\n + efetuado pelo contribuinte." + - name: retificacao + description: "Valor do saldo das retificações efetuadas nos Documentos de\n + Arrecadação de Receitas Federais (Darf). São alterações feitas nos\ndocumentos + de arrecadação em função de erro de preenchimento." + - name: compensacao + description: "Valor do saldo das compensações efetuadas. Utilização de valores + pagos\nanteriormente para quitação de débitos de outros tributos, distintos + de\nIR ou IPI, e vice-versa." + - name: restituicao + description: "Valor do saldo das restituições efetuadas pela Receita Federal + em função\nde pagamentos feitos a maior ou indevidos." + - name: outros + description: Demais eventos que agem sobre o valor da arrecadação bruta + - name: arrecadacao_liquida + description: "Valor resultante da arrecadação bruta, depois da incidência + dos demais\neventos de arrecadação." + - name: br_rf_arrecadacao__itr + description: Contém os dados de arrecadação líquida mensal do Imposto sobre a Propriedade Territorial Rural (ITR), realizada pelas propriedades rurais, passível de repasse aos próprios municípios onde se localizam essas propriedades rurais, conforme a situação do município, conveniado ou não conveniado com a União para fiscalizar e cobrar o ITR, de acordo com dispositivo constitucional. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - insert unique keys here + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: nome_uf + description: "Nome da Unidade da Federação onde se localiza o município conveniado\n + ou não conveniado." + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: nome + - name: regiao_politica + description: "Nome da Região Política onde se localiza o município conveniado + ou não\nconveniado." + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: regiao + - name: cidade_uf + description: "Nome do município conveniado ou não conveniado seguido da sigla + da\nUnidade da Federação onde se localiza o município." + - name: valor_arrecadado + description: Valor arrecadado. From 53007c43cff5031957455b46d4cb356aa6c703be Mon Sep 17 00:00:00 2001 From: andre-ls Date: Thu, 3 Oct 2024 12:15:35 -0300 Subject: [PATCH 02/12] =?UTF-8?q?Corre=C3=A7=C3=A3o=20Queries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql | 2 +- models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql | 2 +- models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql | 2 +- .../br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql index af513203..5c3edf04 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql @@ -21,5 +21,5 @@ safe_cast(cpsss as float64) cpsss, safe_cast(pagamento_unificado as float64) pagamento_unificado, safe_cast(outras_receitas_rfb as float64) outras_receitas_rfb, safe_cast(demais_receitas as float64) demais_receitas, -from `basedosdados-dev.br_rf_arrecadacao_staging.cnae` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.cnae` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql index d68a3858..abb7c372 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql @@ -10,5 +10,5 @@ safe_cast(compensacao as float64) compensacao, safe_cast(restituicao as float64) restituicao, safe_cast(outros as float64) outros, safe_cast(arrecadacao_liquida as float64) arrecadacao_liquida, -from `basedosdados-dev.br_rf_arrecadacao_staging.ir_ipi` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.ir_ipi` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql index 3e0c9662..8fc00b36 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql @@ -6,5 +6,5 @@ safe_cast(nome_uf as string) nome_uf, safe_cast(regiao_politica as string) regiao_politica, safe_cast(cidade_uf as string) cidade_uf, safe_cast(valor_arrecadado as float64) valor_arrecadado, -from `basedosdados-dev.br_rf_arrecadacao_staging.itr` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.itr` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql index 485b2b6d..a9263ce8 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql @@ -25,6 +25,6 @@ safe_cast(t.cpsss as float64) cpsss, safe_cast(t.pagamento_unificado as float64) pagamento_unificado, safe_cast(t.outras_receitas_rfb as float64) outras_receitas_rfb, safe_cast(t.demais_receitas as float64) demais_receitas, -from `basedosdados-dev.br_rf_arrecadacao_staging.natureza_juridica` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.natureza_juridica` as t left join referencia_codigo on t.natureza_juridica_codigo = referencia_codigo.inicio_codigo From 268c13d2d603ee97e542443eb68bc6dbd8a5a895 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Thu, 3 Oct 2024 12:17:20 -0300 Subject: [PATCH 03/12] =?UTF-8?q?Corre=C3=A7=C3=A3o=20de=20Query=20de=20Na?= =?UTF-8?q?tureza=20Jur=C3=ADdica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql index a9263ce8..3d7d07bc 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql @@ -1,7 +1,7 @@ {{ config(alias='natureza_juridica',schema='br_rf_arrecadacao') }} WITH referencia_codigo AS ( select id_natureza_juridica,SUBSTR(CAST(id_natureza_juridica AS STRING),0,3) as inicio_codigo - FROM basedosdados-dev.br_bd_diretorios_brasil.natureza_juridica + FROM basedosdados-staging.br_bd_diretorios_brasil.natureza_juridica ) select safe_cast(t.ano as int64) ano, From 72fe4c30b7abcf1c3225a2fea9d5385fa9dc7991 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Thu, 3 Oct 2024 13:27:24 -0300 Subject: [PATCH 04/12] =?UTF-8?q?Adi=C3=A7=C3=A3o=20de=20Combina=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20Colunas=20=C3=9Anicas=20no=20schema.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/br_rf_arrecadacao/schema.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/models/br_rf_arrecadacao/schema.yml b/models/br_rf_arrecadacao/schema.yml index 99dc4ea2..330d2644 100644 --- a/models/br_rf_arrecadacao/schema.yml +++ b/models/br_rf_arrecadacao/schema.yml @@ -5,8 +5,7 @@ models: description: Contém os dados de arrecadação mensal por Unidade da Federação, contendo receitas administradas e não administradas pela RFB. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - insert unique keys here + combination_of_columns: [ano, mes, sigla_uf] - not_null_proportion_multiple_columns: at_least: 0.95 columns: @@ -136,8 +135,7 @@ models: description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos setores econômicos, identificados pela seção, constantes da tabela de Classificação Nacional de Atividades Econômicas (Cnae). tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - insert unique keys here + combination_of_columns: [ano,mes,secao_sigla,secao_nome] - not_null_proportion_multiple_columns: at_least: 0.95 columns: @@ -205,8 +203,7 @@ models: description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos tipos de Naturezas Jurídicas. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - insert unique keys here + combination_of_columns: [ano,mes,natureza_juridica_codigo,natureza_juridica_nome] - not_null_proportion_multiple_columns: at_least: 0.95 columns: @@ -274,8 +271,7 @@ models: description: Contém os dados de arrecadação decendial do Imposto sobre a Renda (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação bruta, os respectivos eventos que afetam essa arrecadação bruta e a arrecadação líquida, valor este último passível de repasse aos Fundos de Participação dos Estados e do Municípios, FPM e FPE, de acordo com dispositivo constitucional. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - insert unique keys here + combination_of_columns: [ano,mes,tributo,decendio] - not_null_proportion_multiple_columns: at_least: 0.95 columns: @@ -319,8 +315,7 @@ models: description: Contém os dados de arrecadação líquida mensal do Imposto sobre a Propriedade Territorial Rural (ITR), realizada pelas propriedades rurais, passível de repasse aos próprios municípios onde se localizam essas propriedades rurais, conforme a situação do município, conveniado ou não conveniado com a União para fiscalizar e cobrar o ITR, de acordo com dispositivo constitucional. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - insert unique keys here + combination_of_columns: [ano,mes,nome_uf,regiao_politica,cidade_uf] - not_null_proportion_multiple_columns: at_least: 0.95 columns: From 944f32d5623db30c3f3bca7e8aa38b7289452791 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Thu, 3 Oct 2024 15:50:41 -0300 Subject: [PATCH 05/12] =?UTF-8?q?Corre=C3=A7=C3=A3o=20schema.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/br_rf_arrecadacao/schema.yml | 215 ++++++++++++++++++++++------ 1 file changed, 173 insertions(+), 42 deletions(-) diff --git a/models/br_rf_arrecadacao/schema.yml b/models/br_rf_arrecadacao/schema.yml index 330d2644..31fe1a12 100644 --- a/models/br_rf_arrecadacao/schema.yml +++ b/models/br_rf_arrecadacao/schema.yml @@ -1,136 +1,267 @@ +--- version: 2 - models: - name: br_rf_arrecadacao__uf - description: Contém os dados de arrecadação mensal por Unidade da Federação, contendo receitas administradas e não administradas pela RFB. + description: Contém os dados de arrecadação mensal por Unidade da Federação, contendo + receitas administradas e não administradas pela Receita Federal do Brasil. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano, mes, sigla_uf] - - not_null_proportion_multiple_columns: - at_least: 0.95 + combination_of_columns: [ano, mes, sigla_uf] columns: - name: ano description: Ano de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: mes description: Mês de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: sigla_uf description: Sigla da Unidade da Federação. tests: - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: imposto_importacao description: Imposto sobre a Importação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: imposto_exportacao description: Imposto sobre a Exportação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: ipi_fumo description: Imposto sobre Produtos Industrializado incidente sobre setor - de fumo. + de fumo. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: ipi_bebidas description: Imposto sobre Produtos Industrializado incidente sobre setor - de bebidas. + de bebidas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: ipi_automoveis description: Imposto sobre Produtos Industrializado incidente sobre setor - de automóveis. + de automóveis. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: ipi_importacoes description: Imposto sobre Produtos Industrializado vinculado à importação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: ipi_outros description: Imposto sobre Produtos Industrializado incidente sobre outros - produtos. + produtos. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: irpf description: Imposto sobre a Renda da Pessoa Física. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: irpj_entidades_financeiras description: Imposto sobre a Renda da Pessoa Jurídica incidente em entidades - financeiras. + financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: irpj_demais_empresas description: Imposto sobre a Renda da Pessoa Jurídica incidente em demais - empresas. + empresas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: irrf_rendimentos_trabalho description: Imposto sobre a Renda Retido na Fonte referente à rendimentos - do trabalho. + do trabalho. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: irrf_rendimentos_capital description: Imposto sobre a Renda Retido na Fonte referente à rendimentos - do capital. + do capital. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: irrf_remessas_exterior description: Imposto sobre a Renda Retido na Fonte referente à remessas para - o exterior. + o exterior. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: irrf_outros_rendimentos description: Imposto sobre a Renda Retido na Fonte referente à outros rendimentos. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: iof description: Imposto sobre Operações Financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: itr description: Imposto sobre a Propriedade Territorial Rural. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: ipmf - description: 'Imposto Provisório sobre Movimentação Financeira. ' + description: Imposto Provisório sobre Movimentação Financeira. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.06 - name: cpmf description: Contribuição Provisória sobre Movimentação Financeira. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.45 - name: cofins description: Contribuição para o Financiamento da Seguridade Social. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.12 - name: cofins_entidades_financeiras - description: 'Contribuição para o Financiamento da Seguridade Social referente - à entidades financeiras. ' + description: Contribuição para o Financiamento da Seguridade Social referente + à entidades financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 - name: cofins_demais_empresas description: Contribuição para o Financiamento da Seguridade Social referente - à demais empresas. + à demais empresas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 - name: pis_pasep - description: 'Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. ' + description: Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.12 - name: pis_pasep_entidades_financeiras description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público referente à entidades financeiras. + do Servidor Público referente à entidades financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 - name: pis_pasep_demais_empresas description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público referente à demais empresas. + do Servidor Público referente à demais empresas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 - name: csll - description: 'Contribuição Social sobre o Lucro Líquido. ' + description: Contribuição Social sobre o Lucro Líquido. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.12 - name: csll_entidades_financeiras description: Contribuição Social sobre o Lucro Líquido referente à entidades - financeiras. + financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 - name: csll_demais_empresas description: Contribuição Social sobre o Lucro Líquido referente à demais - empresas. + empresas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 - name: cide_combustiveis_parcela_nao_dedutivel description: Parcela não dedutível da Contribuição de Intervenção no Domínio - Econômico aplicada à combustíveis. + Econômico aplicada à combustíveis. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.03 - name: cide_combustiveis description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.75 - name: cpsss_1 - description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' + description: Contribuição para o Plano de Seguridade Social do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.12 - name: cpsss_2 - description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' - - name: contribuicoes_fundaf - description: 'Contribuições para o Fundo Especial de Desenvolvimento e Aperfeiçoamento - das Atividades de Fiscalização (Fundaf). ' + description: Contribuição para o Plano de Seguridade Social do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.50 + - name: contribuicao_fundaf + description: Contribuições para o Fundo Especial de Desenvolvimento e Aperfeiçoamento + das Atividades de Fiscalização (Fundaf). + tests: + - dbt_utils.not_null_proportion: + at_least: 0.55 - name: refis description: Programa de Recuperação Fiscal. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.03 - name: paes description: Parcelamento Especial. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.03 - name: retencoes_fonte - description: 'Retenções na fonte de CSLL, Cofins e Pis/Pasep, previstas no - art. 30 da Lei nº 10.833, de 29 de dezembro de 2003. ' + description: Retenções na fonte de CSLL, Cofins e Pis/Pasep, previstas no + art. 30 da Lei nº 10.833, de 29 de dezembro de 2003. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.02 - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento - de arrecadação, tipo parcelamentos, retenções, Simples etc. + de arrecadação, tipo parcelamentos, retenções, Simples etc. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.04 - name: outras_receitas_rfb - description: 'Outras receitas administradas pela RFB. ' + description: Outras receitas administradas pela RFB. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: demais_receitas - description: 'Outras receitas não administradas pela RFB. ' + description: Outras receitas não administradas pela RFB. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.25 - name: receita_previdenciaria description: Total da Receita Previdenciária. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.25 - name: receita_previdenciaria_propria description: Receita Previdenciária Própria. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.15 - name: receita_previdenciaria_demais description: Receita Previdenciária Demais. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.15 - name: receitas_outros_orgaos description: Receitas administradas por outros órgãos. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.50 - name: br_rf_arrecadacao__cnae description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos setores econômicos, identificados pela seção, constantes da tabela de Classificação Nacional de Atividades Econômicas (Cnae). tests: From b55d36297425650c54ca2e364ab3667b33645777 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Fri, 4 Oct 2024 16:38:13 +0000 Subject: [PATCH 06/12] =?UTF-8?q?Execu=C3=A7=C3=A3o=20de=20Pre-Commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/br_rf_arrecadacao/schema.yml | 148 ++++++++++++++++------------ 1 file changed, 85 insertions(+), 63 deletions(-) diff --git a/models/br_rf_arrecadacao/schema.yml b/models/br_rf_arrecadacao/schema.yml index 31fe1a12..a96940e3 100644 --- a/models/br_rf_arrecadacao/schema.yml +++ b/models/br_rf_arrecadacao/schema.yml @@ -263,37 +263,40 @@ models: - dbt_utils.not_null_proportion: at_least: 0.50 - name: br_rf_arrecadacao__cnae - description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos setores econômicos, identificados pela seção, constantes da tabela de Classificação Nacional de Atividades Econômicas (Cnae). + description: Contém os dados de arrecadação bruta mensal realizadas em Documento + de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos setores + econômicos, identificados pela seção, constantes da tabela de Classificação + Nacional de Atividades Econômicas(Cnae). tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano,mes,secao_sigla,secao_nome] + combination_of_columns: [ano, mes, secao_sigla, secao_nome] - not_null_proportion_multiple_columns: - at_least: 0.95 + at_least: 0.95 columns: - name: ano description: Ano de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano - name: mes description: Mês de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes - name: secao_sigla description: Código da Seção da atividade econômica constante da Cnae. tests: - relationships: - to: ref('br_bd_diretorios_brasil__cnae_2') - field: secao + to: ref('br_bd_diretorios_brasil__cnae_2') + field: secao - name: secao_nome description: Nome da Seção da atividade econômica constante da Cnae tests: - relationships: - to: ref('br_bd_diretorios_brasil__cnae_2') - field: descricao_secao + to: ref('br_bd_diretorios_brasil__cnae_2') + field: descricao_secao - name: imposto_importacao description: Imposto sobre a Importação. - name: imposto_exportacao @@ -314,7 +317,7 @@ models: description: Contribuição para o Financiamento da Seguridade Social. - name: pis_pasep description: 'Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. ' + do Servidor Público. ' - name: csll description: 'Contribuição Social sobre o Lucro Líquido. ' - name: cide_combustiveis @@ -325,43 +328,49 @@ models: description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento - de arrecadação, como parcelamentos, retenções, Simples etc. + de arrecadação, como parcelamentos, retenções, Simples etc. - name: outras_receitas_rfb description: 'Outras receitas administradas pela RFB. ' - name: demais_receitas description: 'Outras receitas não administradas pela RFB. ' - name: br_rf_arrecadacao__natureza_juridica - description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos tipos de Naturezas Jurídicas. + description: Contém os dados de arrecadação bruta mensal realizadas em Documento + de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos + tipos de Naturezas Jurídicas. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano,mes,natureza_juridica_codigo,natureza_juridica_nome] + combination_of_columns: + - ano + - mes + - natureza_juridica_codigo + - natureza_juridica_nome - not_null_proportion_multiple_columns: - at_least: 0.95 + at_least: 0.95 columns: - name: ano description: Ano de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano - name: mes description: Mês de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes - name: natureza_juridica_codigo description: Código do tipo de Natureza Jurídica. tests: - relationships: - to: ref('br_bd_diretorios_brasil__natureza_juridica') - field: id_natureza_juridica + to: ref('br_bd_diretorios_brasil__natureza_juridica') + field: id_natureza_juridica - name: natureza_juridica_nome description: Nome do tipo da Natureza Jurídica. tests: - relationships: - to: ref('br_bd_diretorios_brasil__natureza_juridica') - field: descricao + to: ref('br_bd_diretorios_brasil__natureza_juridica') + field: descricao - name: imposto_importacao description: Imposto sobre a Importação. - name: imposto_exportacao @@ -382,7 +391,7 @@ models: description: Contribuição para o Financiamento da Seguridade Social. - name: pis_pasep description: 'Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. ' + do Servidor Público. ' - name: csll description: 'Contribuição Social sobre o Lucro Líquido. ' - name: cide_combustiveis @@ -393,91 +402,104 @@ models: description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento - de arrecadação, como parcelamentos, retenções, Simples etc. + de arrecadação, como parcelamentos, retenções, Simples etc. - name: outras_receitas_rfb description: 'Outras receitas administradas pela RFB. ' - name: demais_receitas description: 'Outras receitas não administradas pela RFB. ' - name: br_rf_arrecadacao__ir_ipi - description: Contém os dados de arrecadação decendial do Imposto sobre a Renda (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação bruta, os respectivos eventos que afetam essa arrecadação bruta e a arrecadação líquida, valor este último passível de repasse aos Fundos de Participação dos Estados e do Municípios, FPM e FPE, de acordo com dispositivo constitucional. + description: Contém os dados de arrecadação decendial do Imposto sobre a Renda + (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação + bruta, os respectivos eventos que afetam essa arrecadação bruta e a arrecadação + líquida, valor este último passível de repasse aos Fundos de Participação dos + Estados e do Municípios, FPM e FPE, de acordo com dispositivo constitucional. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano,mes,tributo,decendio] + combination_of_columns: [ano, mes, tributo, decendio] - not_null_proportion_multiple_columns: - at_least: 0.95 + at_least: 0.95 columns: - name: ano description: Ano de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano - name: mes description: Mês de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes - name: tributo description: Identificação de Tributo (IR ou IPI). - name: decendio description: Decêndio de referência. - name: arrecadacao_bruta - description: "Valor da arrecadação bruta dos tributos sem nenhum acréscimo\n - ou dedução. É a etapa inicial da arrecadação, quando há o pagamento\n - efetuado pelo contribuinte." + description: "Valor da arrecadação bruta dos tributos sem nenhum acréscimo\n\ + \ ou dedução. É a etapa inicial da arrecadação, quando há o pagamento\n\ + \ efetuado pelo contribuinte." - name: retificacao - description: "Valor do saldo das retificações efetuadas nos Documentos de\n - Arrecadação de Receitas Federais (Darf). São alterações feitas nos\ndocumentos - de arrecadação em função de erro de preenchimento." + description: "Valor do saldo das retificações efetuadas nos Documentos de\n\ + \ Arrecadação de Receitas Federais (Darf). São alterações feitas nos\ndocumentos\ + \ de arrecadação em função de erro de preenchimento." - name: compensacao - description: "Valor do saldo das compensações efetuadas. Utilização de valores - pagos\nanteriormente para quitação de débitos de outros tributos, distintos - de\nIR ou IPI, e vice-versa." + description: "Valor do saldo das compensações efetuadas. Utilização de valores\ + \ pagos\nanteriormente para quitação de débitos de outros tributos, distintos\ + \ de\nIR ou IPI, e vice-versa." - name: restituicao - description: "Valor do saldo das restituições efetuadas pela Receita Federal - em função\nde pagamentos feitos a maior ou indevidos." + description: "Valor do saldo das restituições efetuadas pela Receita Federal\ + \ em função\nde pagamentos feitos a maior ou indevidos." - name: outros description: Demais eventos que agem sobre o valor da arrecadação bruta - name: arrecadacao_liquida - description: "Valor resultante da arrecadação bruta, depois da incidência - dos demais\neventos de arrecadação." + description: "Valor resultante da arrecadação bruta, depois da incidência\ + \ dos demais\neventos de arrecadação." - name: br_rf_arrecadacao__itr - description: Contém os dados de arrecadação líquida mensal do Imposto sobre a Propriedade Territorial Rural (ITR), realizada pelas propriedades rurais, passível de repasse aos próprios municípios onde se localizam essas propriedades rurais, conforme a situação do município, conveniado ou não conveniado com a União para fiscalizar e cobrar o ITR, de acordo com dispositivo constitucional. + description: Contém os dados de arrecadação líquida mensal do Imposto sobre a + Propriedade Territorial Rural (ITR), realizada pelas propriedades rurais, passível + de repasse aos próprios municípios onde se localizam essas propriedades rurais, + conforme a situação do município, conveniado ou não conveniado com a União para + fiscalizar e cobrar o ITR, de acordo com dispositivo constitucional. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano,mes,nome_uf,regiao_politica,cidade_uf] + combination_of_columns: + - ano + - mes + - nome_uf + - regiao_politica + - cidade_uf - not_null_proportion_multiple_columns: - at_least: 0.95 + at_least: 0.95 columns: - name: ano description: Ano de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano - name: mes description: Mês de referência. tests: - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes - name: nome_uf - description: "Nome da Unidade da Federação onde se localiza o município conveniado\n - ou não conveniado." + description: "Nome da Unidade da Federação onde se localiza o município conveniado\n\ + \ ou não conveniado." tests: - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: nome + to: ref('br_bd_diretorios_brasil__uf') + field: nome - name: regiao_politica - description: "Nome da Região Política onde se localiza o município conveniado - ou não\nconveniado." + description: "Nome da Região Política onde se localiza o município conveniado\ + \ ou não\nconveniado." tests: - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: regiao + to: ref('br_bd_diretorios_brasil__uf') + field: regiao - name: cidade_uf - description: "Nome do município conveniado ou não conveniado seguido da sigla - da\nUnidade da Federação onde se localiza o município." + description: "Nome do município conveniado ou não conveniado seguido da sigla\ + \ da\nUnidade da Federação onde se localiza o município." - name: valor_arrecadado description: Valor arrecadado. From 721729027889e3078b1d25bcfbf242706fc2e612 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Fri, 4 Oct 2024 17:09:22 +0000 Subject: [PATCH 07/12] =?UTF-8?q?Execu=C3=A7=C3=A3o=20de=20Pre-Commit=20na?= =?UTF-8?q?s=20Queries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../br_rf_arrecadacao__cnae.sql | 45 +++++++------- .../br_rf_arrecadacao__ir_ipi.sql | 23 ++++--- .../br_rf_arrecadacao__itr.sql | 15 +++-- .../br_rf_arrecadacao__natureza_juridica.sql | 61 ++++++++++--------- 4 files changed, 73 insertions(+), 71 deletions(-) diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql index 5c3edf04..274d138e 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql @@ -1,25 +1,24 @@ -{{ config(alias='cnae',schema='br_rf_arrecadacao') }} +{{ config(alias="cnae", schema="br_rf_arrecadacao") }} select -safe_cast(ano as int64) ano, -safe_cast(mes as int64) mes, -safe_cast(secao_sigla as string) secao_sigla, -safe_cast(secao_nome as string) secao_nome, -safe_cast(imposto_importacao as float64) imposto_importacao, -safe_cast(imposto_exportacao as float64) imposto_exportacao, -safe_cast(ipi as float64) ipi, -safe_cast(irpf as float64) irpf, -safe_cast(irpj as float64) irpj, -safe_cast(irrf as float64) irrf, -safe_cast(iof as float64) iof, -safe_cast(itr as float64) itr, -safe_cast(cofins as float64) cofins, -safe_cast(pis_pasep as float64) pis_pasep, -safe_cast(csll as float64) csll, -safe_cast(cide_combustiveis as float64) cide_combustiveis, -safe_cast(contribuicao_previdenciaria as float64) contribuicao_previdenciaria, -safe_cast(cpsss as float64) cpsss, -safe_cast(pagamento_unificado as float64) pagamento_unificado, -safe_cast(outras_receitas_rfb as float64) outras_receitas_rfb, -safe_cast(demais_receitas as float64) demais_receitas, + safe_cast(ano as int64) ano, + safe_cast(mes as int64) mes, + safe_cast(secao_sigla as string) secao_sigla, + safe_cast(secao_nome as string) secao_nome, + safe_cast(imposto_importacao as float64) imposto_importacao, + safe_cast(imposto_exportacao as float64) imposto_exportacao, + safe_cast(ipi as float64) ipi, + safe_cast(irpf as float64) irpf, + safe_cast(irpj as float64) irpj, + safe_cast(irrf as float64) irrf, + safe_cast(iof as float64) iof, + safe_cast(itr as float64) itr, + safe_cast(cofins as float64) cofins, + safe_cast(pis_pasep as float64) pis_pasep, + safe_cast(csll as float64) csll, + safe_cast(cide_combustiveis as float64) cide_combustiveis, + safe_cast(contribuicao_previdenciaria as float64) contribuicao_previdenciaria, + safe_cast(cpsss as float64) cpsss, + safe_cast(pagamento_unificado as float64) pagamento_unificado, + safe_cast(outras_receitas_rfb as float64) outras_receitas_rfb, + safe_cast(demais_receitas as float64) demais_receitas, from `basedosdados-staging.br_rf_arrecadacao_staging.cnae` as t - diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql index abb7c372..d0e21a42 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql @@ -1,14 +1,13 @@ -{{ config(alias='ir_ipi',schema='br_rf_arrecadacao') }} +{{ config(alias="ir_ipi", schema="br_rf_arrecadacao") }} select -safe_cast(ano as int64) ano, -safe_cast(mes as int64) mes, -safe_cast(tributo as string) tributo, -safe_cast(decendio as string) decendio, -safe_cast(arrecadacao_bruta as float64) arrecadacao_bruta, -safe_cast(retificacao as float64) retificacao, -safe_cast(compensacao as float64) compensacao, -safe_cast(restituicao as float64) restituicao, -safe_cast(outros as float64) outros, -safe_cast(arrecadacao_liquida as float64) arrecadacao_liquida, + safe_cast(ano as int64) ano, + safe_cast(mes as int64) mes, + safe_cast(tributo as string) tributo, + safe_cast(decendio as string) decendio, + safe_cast(arrecadacao_bruta as float64) arrecadacao_bruta, + safe_cast(retificacao as float64) retificacao, + safe_cast(compensacao as float64) compensacao, + safe_cast(restituicao as float64) restituicao, + safe_cast(outros as float64) outros, + safe_cast(arrecadacao_liquida as float64) arrecadacao_liquida, from `basedosdados-staging.br_rf_arrecadacao_staging.ir_ipi` as t - diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql index 8fc00b36..62d48cc9 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql @@ -1,10 +1,9 @@ -{{ config(alias='itr',schema='br_rf_arrecadacao') }} +{{ config(alias="itr", schema="br_rf_arrecadacao") }} select -safe_cast(ano as int64) ano, -safe_cast(mes as int64) mes, -safe_cast(nome_uf as string) nome_uf, -safe_cast(regiao_politica as string) regiao_politica, -safe_cast(cidade_uf as string) cidade_uf, -safe_cast(valor_arrecadado as float64) valor_arrecadado, + safe_cast(ano as int64) ano, + safe_cast(mes as int64) mes, + safe_cast(nome_uf as string) nome_uf, + safe_cast(regiao_politica as string) regiao_politica, + safe_cast(cidade_uf as string) cidade_uf, + safe_cast(valor_arrecadado as float64) valor_arrecadado, from `basedosdados-staging.br_rf_arrecadacao_staging.itr` as t - diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql index 3d7d07bc..2aa0cad6 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql @@ -1,30 +1,35 @@ -{{ config(alias='natureza_juridica',schema='br_rf_arrecadacao') }} -WITH referencia_codigo AS ( - select id_natureza_juridica,SUBSTR(CAST(id_natureza_juridica AS STRING),0,3) as inicio_codigo - FROM basedosdados-staging.br_bd_diretorios_brasil.natureza_juridica -) +{{ config(alias="natureza_juridica", schema="br_rf_arrecadacao") }} +with + referencia_codigo as ( + select + id_natureza_juridica, + substr(cast(id_natureza_juridica as string), 0, 3) as inicio_codigo + from basedosdados - staging.br_bd_diretorios_brasil.natureza_juridica + ) select -safe_cast(t.ano as int64) ano, -safe_cast(t.mes as int64) mes, -safe_cast(referencia_codigo.id_natureza_juridica as string) natureza_juridica_codigo, -safe_cast(t.natureza_juridica_nome as string) natureza_juridica_nome, -safe_cast(t.imposto_importacao as float64) imposto_importacao, -safe_cast(t.imposto_exportacao as float64) imposto_exportacao, -safe_cast(t.ipi as float64) ipi, -safe_cast(t.irpf as float64) irpf, -safe_cast(t.irpj as float64) irpj, -safe_cast(t.irrf as float64) irrf, -safe_cast(t.iof as float64) iof, -safe_cast(t.itr as float64) itr, -safe_cast(t.cofins as float64) cofins, -safe_cast(t.pis_pasep as float64) pis_pasep, -safe_cast(t.csll as float64) csll, -safe_cast(t.cide_combustiveis as float64) cide_combustiveis, -safe_cast(t.contribuicao_previdenciaria as float64) contribuicao_previdenciaria, -safe_cast(t.cpsss as float64) cpsss, -safe_cast(t.pagamento_unificado as float64) pagamento_unificado, -safe_cast(t.outras_receitas_rfb as float64) outras_receitas_rfb, -safe_cast(t.demais_receitas as float64) demais_receitas, + safe_cast(t.ano as int64) ano, + safe_cast(t.mes as int64) mes, + safe_cast( + referencia_codigo.id_natureza_juridica as string + ) natureza_juridica_codigo, + safe_cast(t.natureza_juridica_nome as string) natureza_juridica_nome, + safe_cast(t.imposto_importacao as float64) imposto_importacao, + safe_cast(t.imposto_exportacao as float64) imposto_exportacao, + safe_cast(t.ipi as float64) ipi, + safe_cast(t.irpf as float64) irpf, + safe_cast(t.irpj as float64) irpj, + safe_cast(t.irrf as float64) irrf, + safe_cast(t.iof as float64) iof, + safe_cast(t.itr as float64) itr, + safe_cast(t.cofins as float64) cofins, + safe_cast(t.pis_pasep as float64) pis_pasep, + safe_cast(t.csll as float64) csll, + safe_cast(t.cide_combustiveis as float64) cide_combustiveis, + safe_cast(t.contribuicao_previdenciaria as float64) contribuicao_previdenciaria, + safe_cast(t.cpsss as float64) cpsss, + safe_cast(t.pagamento_unificado as float64) pagamento_unificado, + safe_cast(t.outras_receitas_rfb as float64) outras_receitas_rfb, + safe_cast(t.demais_receitas as float64) demais_receitas, from `basedosdados-staging.br_rf_arrecadacao_staging.natureza_juridica` as t -left join referencia_codigo on t.natureza_juridica_codigo = referencia_codigo.inicio_codigo - +left join + referencia_codigo on t.natureza_juridica_codigo = referencia_codigo.inicio_codigo From 16a6e6a6708837ee99c5c622deaa71f44a30ae99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis?= Date: Thu, 10 Oct 2024 13:22:42 -0300 Subject: [PATCH 08/12] =?UTF-8?q?Corre=C3=A7=C3=B5es=20schema.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Correções na formatação de descrições de colunas do Schema. --- models/br_rf_arrecadacao/schema.yml | 60 ++++++++++++++--------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/models/br_rf_arrecadacao/schema.yml b/models/br_rf_arrecadacao/schema.yml index a96940e3..6ad124e7 100644 --- a/models/br_rf_arrecadacao/schema.yml +++ b/models/br_rf_arrecadacao/schema.yml @@ -316,23 +316,23 @@ models: - name: cofins description: Contribuição para o Financiamento da Seguridade Social. - name: pis_pasep - description: 'Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. ' + description: Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. - name: csll - description: 'Contribuição Social sobre o Lucro Líquido. ' + description: Contribuição Social sobre o Lucro Líquido. - name: cide_combustiveis description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. - name: contribuicao_previdenciaria description: Contribuição Previdenciária arrecadada em Darf. - name: cpsss - description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' + description: Contribuição para o Plano de Seguridade Social do Servidor Público. - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento de arrecadação, como parcelamentos, retenções, Simples etc. - name: outras_receitas_rfb - description: 'Outras receitas administradas pela RFB. ' + description: Outras receitas administradas pela RFB. - name: demais_receitas - description: 'Outras receitas não administradas pela RFB. ' + description: Outras receitas não administradas pela RFB. - name: br_rf_arrecadacao__natureza_juridica description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos @@ -390,23 +390,23 @@ models: - name: cofins description: Contribuição para o Financiamento da Seguridade Social. - name: pis_pasep - description: 'Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. ' + description: Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. - name: csll - description: 'Contribuição Social sobre o Lucro Líquido. ' + description: Contribuição Social sobre o Lucro Líquido. - name: cide_combustiveis description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. - name: contribuicao_previdenciaria description: Contribuição Previdenciária arrecadada em Darf. - name: cpsss - description: 'Contribuição para o Plano de Seguridade Social do Servidor Público. ' + description: Contribuição para o Plano de Seguridade Social do Servidor Público. - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento de arrecadação, como parcelamentos, retenções, Simples etc. - name: outras_receitas_rfb - description: 'Outras receitas administradas pela RFB. ' + description: Outras receitas administradas pela RFB. - name: demais_receitas - description: 'Outras receitas não administradas pela RFB. ' + description: Outras receitas não administradas pela RFB. - name: br_rf_arrecadacao__ir_ipi description: Contém os dados de arrecadação decendial do Imposto sobre a Renda (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação @@ -436,25 +436,25 @@ models: - name: decendio description: Decêndio de referência. - name: arrecadacao_bruta - description: "Valor da arrecadação bruta dos tributos sem nenhum acréscimo\n\ - \ ou dedução. É a etapa inicial da arrecadação, quando há o pagamento\n\ - \ efetuado pelo contribuinte." + description: Valor da arrecadação bruta dos tributos sem nenhum acréscimo + ou dedução. É a etapa inicial da arrecadação, quando há o pagamento efetuado + pelo contribuinte. - name: retificacao - description: "Valor do saldo das retificações efetuadas nos Documentos de\n\ - \ Arrecadação de Receitas Federais (Darf). São alterações feitas nos\ndocumentos\ - \ de arrecadação em função de erro de preenchimento." + description: Valor do saldo das retificações efetuadas nos Documentos de Arrecadação + de Receitas Federais (Darf). São alterações feitas nos documentos de arrecadação + em função de erro de preenchimento. - name: compensacao - description: "Valor do saldo das compensações efetuadas. Utilização de valores\ - \ pagos\nanteriormente para quitação de débitos de outros tributos, distintos\ - \ de\nIR ou IPI, e vice-versa." + description: Valor do saldo das compensações efetuadas. Utilização de valores + pagos anteriormente para quitação de débitos de outros tributos, distintos + de IR ou IPI, e vice-versa. - name: restituicao - description: "Valor do saldo das restituições efetuadas pela Receita Federal\ - \ em função\nde pagamentos feitos a maior ou indevidos." + description: Valor do saldo das restituições efetuadas pela Receita Federal + em função de pagamentos feitos a maior ou indevidos. - name: outros - description: Demais eventos que agem sobre o valor da arrecadação bruta + description: Demais eventos que agem sobre o valor da arrecadação bruta. - name: arrecadacao_liquida - description: "Valor resultante da arrecadação bruta, depois da incidência\ - \ dos demais\neventos de arrecadação." + description: Valor resultante da arrecadação bruta, depois da incidência dos + demais eventos de arrecadação. - name: br_rf_arrecadacao__itr description: Contém os dados de arrecadação líquida mensal do Imposto sobre a Propriedade Territorial Rural (ITR), realizada pelas propriedades rurais, passível @@ -485,15 +485,15 @@ models: to: ref('br_bd_diretorios_data_tempo__mes') field: mes.mes - name: nome_uf - description: "Nome da Unidade da Federação onde se localiza o município conveniado\n\ - \ ou não conveniado." + description: Nome da Unidade da Federação onde se localiza o município conveniado + ou não conveniado. tests: - relationships: to: ref('br_bd_diretorios_brasil__uf') field: nome - name: regiao_politica - description: "Nome da Região Política onde se localiza o município conveniado\ - \ ou não\nconveniado." + description: Nome da Região Política onde se localiza o município conveniado + ou não conveniado. tests: - relationships: to: ref('br_bd_diretorios_brasil__uf') From 1d34e897857be471bfb8c3ed436aff0dd25c1ac3 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Fri, 25 Oct 2024 21:15:06 +0000 Subject: [PATCH 09/12] =?UTF-8?q?Adi=C3=A7=C3=A3o=20de=20Testes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../br_rf_arrecadacao__cnae.sql | 18 +- .../br_rf_arrecadacao__ir_ipi.sql | 17 +- .../br_rf_arrecadacao__itr.sql | 23 +- .../br_rf_arrecadacao__natureza_juridica.sql | 22 +- .../br_rf_arrecadacao__uf.sql | 2 +- models/br_rf_arrecadacao/cnae | 506 ++++++++++++++++++ models/br_rf_arrecadacao/code/clean_cnae.py | 1 + models/br_rf_arrecadacao/code/clean_data.py | 120 +++++ .../br_rf_arrecadacao/code/clean_functions.py | 51 +- models/br_rf_arrecadacao/code/clean_itr.py | 15 + models/br_rf_arrecadacao/schema.yml | 187 +++++-- 11 files changed, 895 insertions(+), 67 deletions(-) create mode 100644 models/br_rf_arrecadacao/cnae create mode 100644 models/br_rf_arrecadacao/code/clean_data.py diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql index 274d138e..b6f14265 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql @@ -1,9 +1,21 @@ -{{ config(alias="cnae", schema="br_rf_arrecadacao") }} +{{ + config( + schema="br_rf_arrecadacao", + alias="cnae", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2016, "end": 2024, "interval": 1}, + }, + cluster_by=["mes"], + ) +}} + select safe_cast(ano as int64) ano, safe_cast(mes as int64) mes, safe_cast(secao_sigla as string) secao_sigla, - safe_cast(secao_nome as string) secao_nome, safe_cast(imposto_importacao as float64) imposto_importacao, safe_cast(imposto_exportacao as float64) imposto_exportacao, safe_cast(ipi as float64) ipi, @@ -21,4 +33,4 @@ select safe_cast(pagamento_unificado as float64) pagamento_unificado, safe_cast(outras_receitas_rfb as float64) outras_receitas_rfb, safe_cast(demais_receitas as float64) demais_receitas, -from `basedosdados-staging.br_rf_arrecadacao_staging.cnae` as t +from `basedosdados-dev.br_rf_arrecadacao_staging.cnae` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql index d0e21a42..3982c853 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql @@ -1,4 +1,17 @@ -{{ config(alias="ir_ipi", schema="br_rf_arrecadacao") }} +{{ + config( + schema="br_rf_arrecadacao", + alias="ir_ipi", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2019, "end": 2024, "interval": 1}, + }, + cluster_by=["mes"], + ) +}} + select safe_cast(ano as int64) ano, safe_cast(mes as int64) mes, @@ -10,4 +23,4 @@ select safe_cast(restituicao as float64) restituicao, safe_cast(outros as float64) outros, safe_cast(arrecadacao_liquida as float64) arrecadacao_liquida, -from `basedosdados-staging.br_rf_arrecadacao_staging.ir_ipi` as t +from `basedosdados-dev.br_rf_arrecadacao_staging.ir_ipi` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql index 62d48cc9..e52f5758 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql @@ -1,9 +1,22 @@ -{{ config(alias="itr", schema="br_rf_arrecadacao") }} +{{ + config( + schema="br_rf_arrecadacao", + alias="itr", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2017, "end": 2024, "interval": 1}, + }, + cluster_by=["mes"], + ) +}} + select safe_cast(ano as int64) ano, safe_cast(mes as int64) mes, - safe_cast(nome_uf as string) nome_uf, - safe_cast(regiao_politica as string) regiao_politica, - safe_cast(cidade_uf as string) cidade_uf, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(sigla_regiao as string) sigla_regiao, + safe_cast(cidade as string) cidade, safe_cast(valor_arrecadado as float64) valor_arrecadado, -from `basedosdados-staging.br_rf_arrecadacao_staging.itr` as t +from `basedosdados-dev.br_rf_arrecadacao_staging.itr` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql index 2aa0cad6..f3b670f2 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql @@ -1,10 +1,23 @@ -{{ config(alias="natureza_juridica", schema="br_rf_arrecadacao") }} +{{ + config( + schema="br_rf_arrecadacao", + alias="natureza_juridica", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2016, "end": 2024, "interval": 1}, + }, + cluster_by=["mes"], + ) +}} + with referencia_codigo as ( select id_natureza_juridica, substr(cast(id_natureza_juridica as string), 0, 3) as inicio_codigo - from basedosdados - staging.br_bd_diretorios_brasil.natureza_juridica + from basedosdados - dev.br_bd_diretorios_brasil.natureza_juridica ) select safe_cast(t.ano as int64) ano, @@ -12,7 +25,6 @@ select safe_cast( referencia_codigo.id_natureza_juridica as string ) natureza_juridica_codigo, - safe_cast(t.natureza_juridica_nome as string) natureza_juridica_nome, safe_cast(t.imposto_importacao as float64) imposto_importacao, safe_cast(t.imposto_exportacao as float64) imposto_exportacao, safe_cast(t.ipi as float64) ipi, @@ -30,6 +42,6 @@ select safe_cast(t.pagamento_unificado as float64) pagamento_unificado, safe_cast(t.outras_receitas_rfb as float64) outras_receitas_rfb, safe_cast(t.demais_receitas as float64) demais_receitas, -from `basedosdados-staging.br_rf_arrecadacao_staging.natureza_juridica` as t -left join +from `basedosdados-dev.br_rf_arrecadacao_staging.natureza_juridica` as t +inner join referencia_codigo on t.natureza_juridica_codigo = referencia_codigo.inicio_codigo diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql index 586a847d..39f86f7f 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql @@ -62,4 +62,4 @@ select safe_cast(receita_previdenciaria_propria as float64) receita_previdenciaria_propria, safe_cast(receita_previdenciaria_demais as float64) receita_previdenciaria_demais, safe_cast(receitas_outros_orgaos as float64) receitas_outros_orgaos, -from `basedosdados-staging.br_rf_arrecadacao_staging.uf` as t +from `basedosdados-dev.br_rf_arrecadacao_staging.uf` as t diff --git a/models/br_rf_arrecadacao/cnae b/models/br_rf_arrecadacao/cnae new file mode 100644 index 00000000..74eb43da --- /dev/null +++ b/models/br_rf_arrecadacao/cnae @@ -0,0 +1,506 @@ +--- +version: 2 +models: + - name: br_rf_arrecadacao__uf + description: Contém os dados de arrecadação mensal por Unidade da Federação, contendo + receitas administradas e não administradas pela Receita Federal do Brasil. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [ano, mes, sigla_uf] + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: mes + description: Mês de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: sigla_uf + description: Sigla da Unidade da Federação. + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: imposto_importacao + description: Imposto sobre a Importação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: imposto_exportacao + description: Imposto sobre a Exportação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: ipi_fumo + description: Imposto sobre Produtos Industrializado incidente sobre setor + de fumo. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: ipi_bebidas + description: Imposto sobre Produtos Industrializado incidente sobre setor + de bebidas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: ipi_automoveis + description: Imposto sobre Produtos Industrializado incidente sobre setor + de automóveis. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: ipi_importacoes + description: Imposto sobre Produtos Industrializado vinculado à importação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: ipi_outros + description: Imposto sobre Produtos Industrializado incidente sobre outros + produtos. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: irpf + description: Imposto sobre a Renda da Pessoa Física. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: irpj_entidades_financeiras + description: Imposto sobre a Renda da Pessoa Jurídica incidente em entidades + financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: irpj_demais_empresas + description: Imposto sobre a Renda da Pessoa Jurídica incidente em demais + empresas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: irrf_rendimentos_trabalho + description: Imposto sobre a Renda Retido na Fonte referente à rendimentos + do trabalho. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: irrf_rendimentos_capital + description: Imposto sobre a Renda Retido na Fonte referente à rendimentos + do capital. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: irrf_remessas_exterior + description: Imposto sobre a Renda Retido na Fonte referente à remessas para + o exterior. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: irrf_outros_rendimentos + description: Imposto sobre a Renda Retido na Fonte referente à outros rendimentos. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: iof + description: Imposto sobre Operações Financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: itr + description: Imposto sobre a Propriedade Territorial Rural. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: ipmf + description: Imposto Provisório sobre Movimentação Financeira. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.06 + - name: cpmf + description: Contribuição Provisória sobre Movimentação Financeira. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.45 + - name: cofins + description: Contribuição para o Financiamento da Seguridade Social. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.12 + - name: cofins_entidades_financeiras + description: Contribuição para o Financiamento da Seguridade Social referente + à entidades financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 + - name: cofins_demais_empresas + description: Contribuição para o Financiamento da Seguridade Social referente + à demais empresas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 + - name: pis_pasep + description: Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.12 + - name: pis_pasep_entidades_financeiras + description: Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público referente à entidades financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 + - name: pis_pasep_demais_empresas + description: Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público referente à demais empresas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 + - name: csll + description: Contribuição Social sobre o Lucro Líquido. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.12 + - name: csll_entidades_financeiras + description: Contribuição Social sobre o Lucro Líquido referente à entidades + financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 + - name: csll_demais_empresas + description: Contribuição Social sobre o Lucro Líquido referente à demais + empresas. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 + - name: cide_combustiveis_parcela_nao_dedutivel + description: Parcela não dedutível da Contribuição de Intervenção no Domínio + Econômico aplicada à combustíveis. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.03 + - name: cide_combustiveis + description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.75 + - name: cpsss_1 + description: Contribuição para o Plano de Seguridade Social do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.12 + - name: cpsss_2 + description: Contribuição para o Plano de Seguridade Social do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.50 + - name: contribuicao_fundaf + description: Contribuições para o Fundo Especial de Desenvolvimento e Aperfeiçoamento + das Atividades de Fiscalização (Fundaf). + tests: + - dbt_utils.not_null_proportion: + at_least: 0.55 + - name: refis + description: Programa de Recuperação Fiscal. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.03 + - name: paes + description: Parcelamento Especial. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.03 + - name: retencoes_fonte + description: Retenções na fonte de CSLL, Cofins e Pis/Pasep, previstas no + art. 30 da Lei nº 10.833, de 29 de dezembro de 2003. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.02 + - name: pagamento_unificado + description: Pagamentos referentes a vários tributos feitos em um único documento + de arrecadação, tipo parcelamentos, retenções, Simples etc. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.04 + - name: outras_receitas_rfb + description: Outras receitas administradas pela RFB. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 + - name: demais_receitas + description: Outras receitas não administradas pela RFB. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.25 + - name: receita_previdenciaria + description: Total da Receita Previdenciária. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.25 + - name: receita_previdenciaria_propria + description: Receita Previdenciária Própria. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.15 + - name: receita_previdenciaria_demais + description: Receita Previdenciária Demais. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.15 + - name: receitas_outros_orgaos + description: Receitas administradas por outros órgãos. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.50 + - name: br_rf_arrecadacao__cnae + description: Contém os dados de arrecadação bruta mensal realizadas em Documento + de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos setores + econômicos, identificados pela seção, constantes da tabela de Classificação + Nacional de Atividades Econômicas(Cnae). + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [ano, mes, secao_sigla, secao_nome] + - not_null_proportion_multiple_columns: + at_least: 0.85 + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: secao_sigla + description: Código da Seção da atividade econômica constante da Cnae. + tests: + - custom_relationships: + to: ref('br_bd_diretorios_brasil__cnae_2') + field: secao + ignore_values: ['IN','NI','PF'] + - name: secao_nome + description: Nome da Seção da atividade econômica constante da Cnae + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__cnae_2') + field: descricao_secao + - name: imposto_importacao + description: Imposto sobre a Importação. + - name: imposto_exportacao + description: Imposto sobre a Exportação. + - name: ipi + description: Imposto sobre Produtos Industrializados. + - name: irpf + description: Imposto sobre a Renda da Pessoa Física. + - name: irpj + description: Imposto sobre a Renda da Pessoa Jurídica. + - name: irrf + description: Imposto sobre a Renda Retido na Fonte. + - name: iof + description: Imposto sobre Operações Financeiras. + - name: itr + description: Imposto sobre a Propriedade Territorial Rural. + - name: cofins + description: Contribuição para o Financiamento da Seguridade Social. + - name: pis_pasep + description: Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. + - name: csll + description: Contribuição Social sobre o Lucro Líquido. + - name: cide_combustiveis + description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. + - name: contribuicao_previdenciaria + description: Contribuição Previdenciária arrecadada em Darf. + - name: cpsss + description: Contribuição para o Plano de Seguridade Social do Servidor Público. + - name: pagamento_unificado + description: Pagamentos referentes a vários tributos feitos em um único documento + de arrecadação, como parcelamentos, retenções, Simples etc. + - name: outras_receitas_rfb + description: Outras receitas administradas pela RFB. + - name: demais_receitas + description: Outras receitas não administradas pela RFB. + - name: br_rf_arrecadacao__natureza_juridica + description: Contém os dados de arrecadação bruta mensal realizadas em Documento + de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos + tipos de Naturezas Jurídicas. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - mes + - natureza_juridica_codigo + - natureza_juridica_nome + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: natureza_juridica_codigo + description: Código do tipo de Natureza Jurídica. + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__natureza_juridica') + field: id_natureza_juridica + - name: natureza_juridica_nome + description: Nome do tipo da Natureza Jurídica. + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__natureza_juridica') + field: descricao + - name: imposto_importacao + description: Imposto sobre a Importação. + - name: imposto_exportacao + description: Imposto sobre a Exportação. + - name: ipi + description: Imposto sobre Produtos Industrializados. + - name: irpf + description: Imposto sobre a Renda da Pessoa Física. + - name: irpj + description: Imposto sobre a Renda da Pessoa Jurídica. + - name: irrf + description: Imposto sobre a Renda Retido na Fonte. + - name: iof + description: Imposto sobre Operações Financeiras. + - name: itr + description: Imposto sobre a Propriedade Territorial Rural. + - name: cofins + description: Contribuição para o Financiamento da Seguridade Social. + - name: pis_pasep + description: Programa de Integração Social e o Programa de Formação do Patrimônio + do Servidor Público. + - name: csll + description: Contribuição Social sobre o Lucro Líquido. + - name: cide_combustiveis + description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. + - name: contribuicao_previdenciaria + description: Contribuição Previdenciária arrecadada em Darf. + - name: cpsss + description: Contribuição para o Plano de Seguridade Social do Servidor Público. + - name: pagamento_unificado + description: Pagamentos referentes a vários tributos feitos em um único documento + de arrecadação, como parcelamentos, retenções, Simples etc. + - name: outras_receitas_rfb + description: Outras receitas administradas pela RFB. + - name: demais_receitas + description: Outras receitas não administradas pela RFB. + - name: br_rf_arrecadacao__ir_ipi + description: Contém os dados de arrecadação decendial do Imposto sobre a Renda + (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação + bruta, os respectivos eventos que afetam essa arrecadação bruta e a arrecadação + líquida, valor este último passível de repasse aos Fundos de Participação dos + Estados e do Municípios, FPM e FPE, de acordo com dispositivo constitucional. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [ano, mes, tributo, decendio] + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: tributo + description: Identificação de Tributo (IR ou IPI). + - name: decendio + description: Decêndio de referência. + - name: arrecadacao_bruta + description: Valor da arrecadação bruta dos tributos sem nenhum acréscimo + ou dedução. É a etapa inicial da arrecadação, quando há o pagamento efetuado + pelo contribuinte. + - name: retificacao + description: Valor do saldo das retificações efetuadas nos Documentos de Arrecadação + de Receitas Federais (Darf). São alterações feitas nos documentos de arrecadação + em função de erro de preenchimento. + - name: compensacao + description: Valor do saldo das compensações efetuadas. Utilização de valores + pagos anteriormente para quitação de débitos de outros tributos, distintos + de IR ou IPI, e vice-versa. + - name: restituicao + description: Valor do saldo das restituições efetuadas pela Receita Federal + em função de pagamentos feitos a maior ou indevidos. + - name: outros + description: Demais eventos que agem sobre o valor da arrecadação bruta. + - name: arrecadacao_liquida + description: Valor resultante da arrecadação bruta, depois da incidência dos + demais eventos de arrecadação. + - name: br_rf_arrecadacao__itr + description: Contém os dados de arrecadação líquida mensal do Imposto sobre a + Propriedade Territorial Rural (ITR), realizada pelas propriedades rurais, passível + de repasse aos próprios municípios onde se localizam essas propriedades rurais, + conforme a situação do município, conveniado ou não conveniado com a União para + fiscalizar e cobrar o ITR, de acordo com dispositivo constitucional. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - mes + - nome_uf + - regiao_politica + - cidade_uf + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: mes + description: Mês de referência. + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__mes') + field: mes.mes + - name: nome_uf + description: Nome da Unidade da Federação onde se localiza o município conveniado + ou não conveniado. + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: nome + - name: regiao_politica + description: Nome da Região Política onde se localiza o município conveniado + ou não conveniado. + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: regiao + - name: cidade_uf + description: "Nome do município conveniado ou não conveniado seguido da sigla\ + \ da\nUnidade da Federação onde se localiza o município." + - name: valor_arrecadado + description: Valor arrecadado. diff --git a/models/br_rf_arrecadacao/code/clean_cnae.py b/models/br_rf_arrecadacao/code/clean_cnae.py index c669f758..a3b98b20 100644 --- a/models/br_rf_arrecadacao/code/clean_cnae.py +++ b/models/br_rf_arrecadacao/code/clean_cnae.py @@ -33,6 +33,7 @@ def rename_columns(df): def change_types(df): df['ano'] = df['ano'].astype('int') df['mes'] = get_month_number(df['mes']) + df['secao_nome'] = df['secao_nome'].str.title() #All remaining columns are monetary values for col in df.columns[4:]: diff --git a/models/br_rf_arrecadacao/code/clean_data.py b/models/br_rf_arrecadacao/code/clean_data.py new file mode 100644 index 00000000..9c65d6d8 --- /dev/null +++ b/models/br_rf_arrecadacao/code/clean_data.py @@ -0,0 +1,120 @@ +import os +import numpy as np +import pandas as pd + +file_directory = os.path.dirname(__file__) + +def read_data(): + data_directory = os.path.join(file_directory, '../input/arrecadacao-estado.csv') + return pd.read_csv(data_directory, sep=';') + +def removeEmptyRows(df): + return df.dropna(axis=0, how='all') + +def rename_columns(df): + name_dict = { + 'Ano':'ano', + 'Mês':'mes', + 'UF':'sigla_uf', + 'IMPOSTO SOBRE IMPORTAÇÃO':'imposto_importacao', + 'IMPOSTO SOBRE EXPORTAÇÃO':'imposto_exportacao', + 'IPI - FUMO':'ipi_fumo', + 'IPI - BEBIDAS':'ipi_bebidas', + 'IPI - AUTOMÓVEIS':'ipi_automoveis', + 'IPI - VINCULADO À IMPORTACAO':'ipi_importacoes', + 'IPI - OUTROS':'ipi_outros', + 'IRPF':'irpf', + 'IRPJ - ENTIDADES FINANCEIRAS':'irpj_entidades_financeiras', + 'IRPJ - DEMAIS EMPRESAS':'irpj_demais_empresas', + 'IRRF - RENDIMENTOS DO TRABALHO':'irrf_rendimentos_trabalho', + 'IRRF - RENDIMENTOS DO CAPITAL':'irrf_rendimentos_capital', + 'IRRF - REMESSAS P/ EXTERIOR':'irrf_remessas_exterior', + 'IRRF - OUTROS RENDIMENTOS':'irrf_outros_rendimentos', + 'IMPOSTO S/ OPERAÇÕES FINANCEIRAS':'iof', + 'IMPOSTO TERRITORIAL RURAL':'itr', + 'IMPOSTO PROVIS.S/ MOVIMENT. FINANC. - IPMF':'ipmf', + 'CPMF':'cpmf', + 'COFINS':'cofins', + 'COFINS - FINANCEIRAS':'cofins_financeiras', + 'COFINS - DEMAIS':'cofins_demais_empresas', + 'CONTRIBUIÇÃO PARA O PIS/PASEP':'pis_pasep', + 'CONTRIBUIÇÃO PARA O PIS/PASEP - FINANCEIRAS':'pis_pasep_entidades_financeiras', + 'CONTRIBUIÇÃO PARA O PIS/PASEP - DEMAIS':'pis_pasep_demais_empresas', + 'CSLL':'csll', + 'CSLL - FINANCEIRAS':'csll_financeiras', + 'CSLL - DEMAIS':'csll_demais_empresas', + 'CIDE-COMBUSTÍVEIS (parc. não dedutível)': 'cide_combustiveis_parcela_nao_dedutivel', + 'CIDE-COMBUSTÍVEIS':'cide_combustiveis', + 'CONTRIBUIÇÃO PLANO SEG. SOC. SERVIDORES':'cpsss_1', + 'CPSSS - Contrib. p/ o Plano de Segurid. Social Serv. Público':'cpsss_2', + 'CONTRIBUICÕES PARA FUNDAF':'contribuicoes_fundaf', + 'REFIS':'refis', + 'PAES':'paes', + 'RETENÇÃO NA FONTE - LEI 10.833, Art. 30':'retencoes_fonte', + 'PAGAMENTO UNIFICADO':'pagamento_unificado', + 'OUTRAS RECEITAS ADMINISTRADAS':'outras_receitas_', + 'DEMAIS RECEITAS':'demais_receitas', + 'RECEITA PREVIDENCIÁRIA':'receita_previdenciaria', + 'RECEITA PREVIDENCIÁRIA - PRÓPRIA':'receita_previdenciaria_propria', + 'RECEITA PREVIDENCIÁRIA - DEMAIS':'receita_previdenciaria_demais', + 'ADMINISTRADAS POR OUTROS ÓRGÃOS':'receitas_outros_orgaos' + } + + return df.rename(columns=name_dict) + +def replace_commas(value): + string_value = str(value) + num_commas = string_value.count(',') + if num_commas == 1: + return string_value.replace(',','.') + elif num_commas > 1: + return string_value.replace(',','',num_commas-1).replace(',','.') + else: + return string_value + +def remove_dots(value): + string_value = str(value) + num_dots = string_value.count('.') + if num_dots > 1: + return string_value.replace('.','',num_dots-1) + else: + return string_value + +def get_month_number(month_column): + month_numbers = { + 'Janeiro': '1', + 'Fevereiro': '2', + 'Março': '3', + 'Abril': '4', + 'Maio': '5', + 'Junho': '6', + 'Julho': '7', + 'Agosto': '8', + 'Setembro': '9', + 'Outubro': '10', + 'Novembro': '11', + 'Dezembro':'12' + } + return month_column.replace(month_numbers).astype('int') + +def change_types(df): + df['ano'] = df['ano'].astype('int') + df['mes'] = get_month_number(df['mes']) + df['sigla_uf'] = df['sigla_uf'].astype('string') + + #All remaining columns are monetary values + for col in df.columns[3:]: + df[col] = df[col].apply(replace_commas).apply(remove_dots).astype('float') + + return df + +def save_data(df): + data_directory = os.path.join(file_directory, '../output/br_rf_arrecadacao') + df.to_parquet(data_directory, partition_cols=['ano','mes']) + +if __name__ == '__main__': + df = read_data() + df = removeEmptyRows(df) + df = rename_columns(df) + df = change_types(df) + save_data(df) diff --git a/models/br_rf_arrecadacao/code/clean_functions.py b/models/br_rf_arrecadacao/code/clean_functions.py index 7a2d683b..260da075 100644 --- a/models/br_rf_arrecadacao/code/clean_functions.py +++ b/models/br_rf_arrecadacao/code/clean_functions.py @@ -2,7 +2,7 @@ import numpy as np import pandas as pd from typing import List -from pathlib import Path +from pathlib import Path file_directory = os.path.dirname(__file__) @@ -26,7 +26,7 @@ def replace_commas(value): return string_value.replace(',','',num_commas-1).replace(',','.') else: return string_value - + def remove_dots(value): string_value = str(value) num_dots = string_value.count('.') @@ -56,6 +56,53 @@ def get_month_number(month_column): } return month_inits.replace(month_numbers).astype('int') +def get_state_letters(state_column): + + state_lower = state_column.str.lower() + states = { + "acre": "AC", + "alagoas": "AL", + "amapá": "AP", + "amazonas": "AM", + "bahia": "BA", + "ceará": "CE", + "distrito federal": "DF", + "espírito santo": "ES", + "goiás": "GO", + "maranhão": "MA", + "mato grosso": "MT", + "mato grosso do sul": "MS", + "minas gerais": "MG", + "pará": "PA", + "paraíba": "PB", + "paraná": "PR", + "pernambuco": "PE", + "piauí": "PI", + "rio de janeiro": "RJ", + "rio grande do norte": "RN", + "rio grande do sul": "RS", + "rondônia": "RO", + "roraima": "RR", + "santa catarina": "SC", + "são paulo": "SP", + "sergipe": "SE", + "tocantins": "TO" + } + return state_lower.replace(states) + +def get_region_letters(region_names): + + region_lower = region_names.str.lower() + + regions = { + "norte" : "N", + "sul" : "S", + "centro-oeste" : "CO", + "sudeste" : "SE", + "nordeste" : "NE" + } + return region_lower.replace(regions) + def to_partitions( data: pd.DataFrame, partition_columns: List[str], diff --git a/models/br_rf_arrecadacao/code/clean_itr.py b/models/br_rf_arrecadacao/code/clean_itr.py index 8eea9ffb..3a83ea92 100644 --- a/models/br_rf_arrecadacao/code/clean_itr.py +++ b/models/br_rf_arrecadacao/code/clean_itr.py @@ -22,9 +22,24 @@ def change_types(df): return df +def format_state(df): + df['sigla_uf'] = get_state_letters(df['nome_uf']) + return df.drop('nome_uf',axis=1) + +def format_region(df): + df['sigla_regiao'] = get_region_letters(df['regiao_politica']) + return df.drop('regiao_politica',axis=1) + +def format_city(df): + df['cidade'] = df['cidade_uf'].str.split(' - ').str[0] + return df.drop('cidade_uf',axis=1) + if __name__ == '__main__': df = read_data(file_dir='../input/arrecadacao-itr.csv') df = remove_empty_rows(df) df = rename_columns(df) df = change_types(df) + df = format_state(df) + df = format_region(df) + df = format_city(df) save_data(df=df,file_dir='../output/br_rf_arrecadacao_itr',partition_cols=['ano','mes']) diff --git a/models/br_rf_arrecadacao/schema.yml b/models/br_rf_arrecadacao/schema.yml index 6ad124e7..9239630b 100644 --- a/models/br_rf_arrecadacao/schema.yml +++ b/models/br_rf_arrecadacao/schema.yml @@ -269,9 +269,7 @@ models: Nacional de Atividades Econômicas(Cnae). tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano, mes, secao_sigla, secao_nome] - - not_null_proportion_multiple_columns: - at_least: 0.95 + combination_of_columns: [ano, mes, secao_sigla] columns: - name: ano description: Ano de referência. @@ -279,73 +277,119 @@ models: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') field: ano.ano + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: mes description: Mês de referência. tests: - relationships: to: ref('br_bd_diretorios_data_tempo__mes') field: mes.mes + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: secao_sigla description: Código da Seção da atividade econômica constante da Cnae. tests: - - relationships: + - custom_relationships: to: ref('br_bd_diretorios_brasil__cnae_2') field: secao - - name: secao_nome - description: Nome da Seção da atividade econômica constante da Cnae - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__cnae_2') - field: descricao_secao + ignore_values: [IN, NI, PF] + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: imposto_importacao description: Imposto sobre a Importação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.85 - name: imposto_exportacao description: Imposto sobre a Exportação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.35 - name: ipi description: Imposto sobre Produtos Industrializados. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.90 - name: irpf description: Imposto sobre a Renda da Pessoa Física. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.60 - name: irpj description: Imposto sobre a Renda da Pessoa Jurídica. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.90 - name: irrf description: Imposto sobre a Renda Retido na Fonte. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: iof description: Imposto sobre Operações Financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 - name: itr description: Imposto sobre a Propriedade Territorial Rural. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.85 - name: cofins description: Contribuição para o Financiamento da Seguridade Social. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: pis_pasep description: Programa de Integração Social e o Programa de Formação do Patrimônio do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: csll description: Contribuição Social sobre o Lucro Líquido. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.90 - name: cide_combustiveis description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.80 - name: contribuicao_previdenciaria description: Contribuição Previdenciária arrecadada em Darf. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.90 - name: cpsss description: Contribuição para o Plano de Seguridade Social do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.65 - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento de arrecadação, como parcelamentos, retenções, Simples etc. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: outras_receitas_rfb description: Outras receitas administradas pela RFB. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.90 - name: demais_receitas description: Outras receitas não administradas pela RFB. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.90 - name: br_rf_arrecadacao__natureza_juridica description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos tipos de Naturezas Jurídicas. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - ano - - mes - - natureza_juridica_codigo - - natureza_juridica_nome - - not_null_proportion_multiple_columns: - at_least: 0.95 + combination_of_columns: [ano, mes, natureza_juridica_codigo] columns: - name: ano description: Ano de referência. @@ -353,60 +397,111 @@ models: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') field: ano.ano + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: mes description: Mês de referência. tests: - relationships: to: ref('br_bd_diretorios_data_tempo__mes') field: mes.mes + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: natureza_juridica_codigo description: Código do tipo de Natureza Jurídica. tests: - relationships: to: ref('br_bd_diretorios_brasil__natureza_juridica') field: id_natureza_juridica - - name: natureza_juridica_nome - description: Nome do tipo da Natureza Jurídica. - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__natureza_juridica') - field: descricao + - dbt_utils.not_null_proportion: + at_least: 0.95 - name: imposto_importacao description: Imposto sobre a Importação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.40 - name: imposto_exportacao description: Imposto sobre a Exportação. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.15 - name: ipi description: Imposto sobre Produtos Industrializados. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.35 - name: irpf description: Imposto sobre a Renda da Pessoa Física. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.20 - name: irpj description: Imposto sobre a Renda da Pessoa Jurídica. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.60 - name: irrf description: Imposto sobre a Renda Retido na Fonte. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.90 - name: iof description: Imposto sobre Operações Financeiras. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.35 - name: itr description: Imposto sobre a Propriedade Territorial Rural. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.40 - name: cofins description: Contribuição para o Financiamento da Seguridade Social. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.75 - name: pis_pasep description: Programa de Integração Social e o Programa de Formação do Patrimônio do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.85 - name: csll description: Contribuição Social sobre o Lucro Líquido. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.65 - name: cide_combustiveis description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.35 - name: contribuicao_previdenciaria description: Contribuição Previdenciária arrecadada em Darf. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.75 - name: cpsss description: Contribuição para o Plano de Seguridade Social do Servidor Público. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.35 - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento de arrecadação, como parcelamentos, retenções, Simples etc. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.90 - name: outras_receitas_rfb description: Outras receitas administradas pela RFB. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.75 - name: demais_receitas description: Outras receitas não administradas pela RFB. + tests: + - dbt_utils.not_null_proportion: + at_least: 0.75 - name: br_rf_arrecadacao__ir_ipi description: Contém os dados de arrecadação decendial do Imposto sobre a Renda (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação @@ -437,24 +532,24 @@ models: description: Decêndio de referência. - name: arrecadacao_bruta description: Valor da arrecadação bruta dos tributos sem nenhum acréscimo - ou dedução. É a etapa inicial da arrecadação, quando há o pagamento efetuado - pelo contribuinte. + ou dedução. É a etapa inicial da arrecadação, quando há o pagamento efetuado + pelo contribuinte. - name: retificacao description: Valor do saldo das retificações efetuadas nos Documentos de Arrecadação - de Receitas Federais (Darf). São alterações feitas nos documentos de arrecadação - em função de erro de preenchimento. + de Receitas Federais (Darf). São alterações feitas nos documentos de arrecadação + em função de erro de preenchimento. - name: compensacao description: Valor do saldo das compensações efetuadas. Utilização de valores - pagos anteriormente para quitação de débitos de outros tributos, distintos - de IR ou IPI, e vice-versa. + pagos anteriormente para quitação de débitos de outros tributos, distintos + de IR ou IPI, e vice-versa. - name: restituicao description: Valor do saldo das restituições efetuadas pela Receita Federal - em função de pagamentos feitos a maior ou indevidos. + em função de pagamentos feitos a maior ou indevidos. - name: outros description: Demais eventos que agem sobre o valor da arrecadação bruta. - name: arrecadacao_liquida description: Valor resultante da arrecadação bruta, depois da incidência dos - demais eventos de arrecadação. + demais eventos de arrecadação. - name: br_rf_arrecadacao__itr description: Contém os dados de arrecadação líquida mensal do Imposto sobre a Propriedade Territorial Rural (ITR), realizada pelas propriedades rurais, passível @@ -463,12 +558,7 @@ models: fiscalizar e cobrar o ITR, de acordo com dispositivo constitucional. tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - ano - - mes - - nome_uf - - regiao_politica - - cidade_uf + combination_of_columns: [ano, mes, sigla_uf, sigla_regiao, cidade] - not_null_proportion_multiple_columns: at_least: 0.95 columns: @@ -484,22 +574,21 @@ models: - relationships: to: ref('br_bd_diretorios_data_tempo__mes') field: mes.mes - - name: nome_uf - description: Nome da Unidade da Federação onde se localiza o município conveniado - ou não conveniado. + - name: sigla_uf + description: Sigla da Unidade da Federação onde se localiza o município conveniado + ou não conveniado. tests: - relationships: to: ref('br_bd_diretorios_brasil__uf') - field: nome - - name: regiao_politica - description: Nome da Região Política onde se localiza o município conveniado - ou não conveniado. + field: sigla + - name: sigla_regiao + description: Sigla da Região Política onde se localiza o município conveniado + ou não conveniado. tests: - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: regiao - - name: cidade_uf - description: "Nome do município conveniado ou não conveniado seguido da sigla\ - \ da\nUnidade da Federação onde se localiza o município." + to: ref('br_bd_diretorios_brasil__regiao') + field: sigla + - name: cidade + description: Nome do município conveniado ou não conveniado. - name: valor_arrecadado description: Valor arrecadado. From 48beaaa153db46f39fb97af0ec6b894d4ef92886 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Fri, 25 Oct 2024 21:22:18 +0000 Subject: [PATCH 10/12] =?UTF-8?q?Corre=C3=A7=C3=A3o=20Nome=20do=20Projeto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql | 2 +- models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql | 2 +- models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql | 2 +- .../br_rf_arrecadacao__natureza_juridica.sql | 4 ++-- models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql index b6f14265..009562f9 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__cnae.sql @@ -33,4 +33,4 @@ select safe_cast(pagamento_unificado as float64) pagamento_unificado, safe_cast(outras_receitas_rfb as float64) outras_receitas_rfb, safe_cast(demais_receitas as float64) demais_receitas, -from `basedosdados-dev.br_rf_arrecadacao_staging.cnae` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.cnae` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql index 3982c853..ffc6c898 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__ir_ipi.sql @@ -23,4 +23,4 @@ select safe_cast(restituicao as float64) restituicao, safe_cast(outros as float64) outros, safe_cast(arrecadacao_liquida as float64) arrecadacao_liquida, -from `basedosdados-dev.br_rf_arrecadacao_staging.ir_ipi` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.ir_ipi` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql index e52f5758..61524bce 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__itr.sql @@ -19,4 +19,4 @@ select safe_cast(sigla_regiao as string) sigla_regiao, safe_cast(cidade as string) cidade, safe_cast(valor_arrecadado as float64) valor_arrecadado, -from `basedosdados-dev.br_rf_arrecadacao_staging.itr` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.itr` as t diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql index f3b670f2..d48d63d2 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__natureza_juridica.sql @@ -17,7 +17,7 @@ with select id_natureza_juridica, substr(cast(id_natureza_juridica as string), 0, 3) as inicio_codigo - from basedosdados - dev.br_bd_diretorios_brasil.natureza_juridica + from basedosdados - staging.br_bd_diretorios_brasil.natureza_juridica ) select safe_cast(t.ano as int64) ano, @@ -42,6 +42,6 @@ select safe_cast(t.pagamento_unificado as float64) pagamento_unificado, safe_cast(t.outras_receitas_rfb as float64) outras_receitas_rfb, safe_cast(t.demais_receitas as float64) demais_receitas, -from `basedosdados-dev.br_rf_arrecadacao_staging.natureza_juridica` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.natureza_juridica` as t inner join referencia_codigo on t.natureza_juridica_codigo = referencia_codigo.inicio_codigo diff --git a/models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql b/models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql index 39f86f7f..586a847d 100644 --- a/models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql +++ b/models/br_rf_arrecadacao/br_rf_arrecadacao__uf.sql @@ -62,4 +62,4 @@ select safe_cast(receita_previdenciaria_propria as float64) receita_previdenciaria_propria, safe_cast(receita_previdenciaria_demais as float64) receita_previdenciaria_demais, safe_cast(receitas_outros_orgaos as float64) receitas_outros_orgaos, -from `basedosdados-dev.br_rf_arrecadacao_staging.uf` as t +from `basedosdados-staging.br_rf_arrecadacao_staging.uf` as t From 05f600b1ab59eb4d07f1e8e0cbd8a725171ad688 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Mon, 4 Nov 2024 14:14:39 +0000 Subject: [PATCH 11/12] =?UTF-8?q?Remo=C3=A7=C3=A3o=20de=20Arquivo=20de=20E?= =?UTF-8?q?xemplo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/br_rf_arrecadacao/cnae | 506 ---------------------------------- 1 file changed, 506 deletions(-) delete mode 100644 models/br_rf_arrecadacao/cnae diff --git a/models/br_rf_arrecadacao/cnae b/models/br_rf_arrecadacao/cnae deleted file mode 100644 index 74eb43da..00000000 --- a/models/br_rf_arrecadacao/cnae +++ /dev/null @@ -1,506 +0,0 @@ ---- -version: 2 -models: - - name: br_rf_arrecadacao__uf - description: Contém os dados de arrecadação mensal por Unidade da Federação, contendo - receitas administradas e não administradas pela Receita Federal do Brasil. - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano, mes, sigla_uf] - columns: - - name: ano - description: Ano de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: mes - description: Mês de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: sigla_uf - description: Sigla da Unidade da Federação. - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: imposto_importacao - description: Imposto sobre a Importação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: imposto_exportacao - description: Imposto sobre a Exportação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: ipi_fumo - description: Imposto sobre Produtos Industrializado incidente sobre setor - de fumo. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: ipi_bebidas - description: Imposto sobre Produtos Industrializado incidente sobre setor - de bebidas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: ipi_automoveis - description: Imposto sobre Produtos Industrializado incidente sobre setor - de automóveis. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: ipi_importacoes - description: Imposto sobre Produtos Industrializado vinculado à importação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: ipi_outros - description: Imposto sobre Produtos Industrializado incidente sobre outros - produtos. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: irpf - description: Imposto sobre a Renda da Pessoa Física. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: irpj_entidades_financeiras - description: Imposto sobre a Renda da Pessoa Jurídica incidente em entidades - financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: irpj_demais_empresas - description: Imposto sobre a Renda da Pessoa Jurídica incidente em demais - empresas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: irrf_rendimentos_trabalho - description: Imposto sobre a Renda Retido na Fonte referente à rendimentos - do trabalho. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: irrf_rendimentos_capital - description: Imposto sobre a Renda Retido na Fonte referente à rendimentos - do capital. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: irrf_remessas_exterior - description: Imposto sobre a Renda Retido na Fonte referente à remessas para - o exterior. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: irrf_outros_rendimentos - description: Imposto sobre a Renda Retido na Fonte referente à outros rendimentos. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: iof - description: Imposto sobre Operações Financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: itr - description: Imposto sobre a Propriedade Territorial Rural. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: ipmf - description: Imposto Provisório sobre Movimentação Financeira. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.06 - - name: cpmf - description: Contribuição Provisória sobre Movimentação Financeira. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.45 - - name: cofins - description: Contribuição para o Financiamento da Seguridade Social. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.12 - - name: cofins_entidades_financeiras - description: Contribuição para o Financiamento da Seguridade Social referente - à entidades financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 - - name: cofins_demais_empresas - description: Contribuição para o Financiamento da Seguridade Social referente - à demais empresas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 - - name: pis_pasep - description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.12 - - name: pis_pasep_entidades_financeiras - description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público referente à entidades financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 - - name: pis_pasep_demais_empresas - description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público referente à demais empresas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 - - name: csll - description: Contribuição Social sobre o Lucro Líquido. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.12 - - name: csll_entidades_financeiras - description: Contribuição Social sobre o Lucro Líquido referente à entidades - financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 - - name: csll_demais_empresas - description: Contribuição Social sobre o Lucro Líquido referente à demais - empresas. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 - - name: cide_combustiveis_parcela_nao_dedutivel - description: Parcela não dedutível da Contribuição de Intervenção no Domínio - Econômico aplicada à combustíveis. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.03 - - name: cide_combustiveis - description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.75 - - name: cpsss_1 - description: Contribuição para o Plano de Seguridade Social do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.12 - - name: cpsss_2 - description: Contribuição para o Plano de Seguridade Social do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.50 - - name: contribuicao_fundaf - description: Contribuições para o Fundo Especial de Desenvolvimento e Aperfeiçoamento - das Atividades de Fiscalização (Fundaf). - tests: - - dbt_utils.not_null_proportion: - at_least: 0.55 - - name: refis - description: Programa de Recuperação Fiscal. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.03 - - name: paes - description: Parcelamento Especial. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.03 - - name: retencoes_fonte - description: Retenções na fonte de CSLL, Cofins e Pis/Pasep, previstas no - art. 30 da Lei nº 10.833, de 29 de dezembro de 2003. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.02 - - name: pagamento_unificado - description: Pagamentos referentes a vários tributos feitos em um único documento - de arrecadação, tipo parcelamentos, retenções, Simples etc. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.04 - - name: outras_receitas_rfb - description: Outras receitas administradas pela RFB. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - - name: demais_receitas - description: Outras receitas não administradas pela RFB. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.25 - - name: receita_previdenciaria - description: Total da Receita Previdenciária. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.25 - - name: receita_previdenciaria_propria - description: Receita Previdenciária Própria. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.15 - - name: receita_previdenciaria_demais - description: Receita Previdenciária Demais. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.15 - - name: receitas_outros_orgaos - description: Receitas administradas por outros órgãos. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.50 - - name: br_rf_arrecadacao__cnae - description: Contém os dados de arrecadação bruta mensal realizadas em Documento - de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos setores - econômicos, identificados pela seção, constantes da tabela de Classificação - Nacional de Atividades Econômicas(Cnae). - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano, mes, secao_sigla, secao_nome] - - not_null_proportion_multiple_columns: - at_least: 0.85 - columns: - - name: ano - description: Ano de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: mes - description: Mês de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes - - name: secao_sigla - description: Código da Seção da atividade econômica constante da Cnae. - tests: - - custom_relationships: - to: ref('br_bd_diretorios_brasil__cnae_2') - field: secao - ignore_values: ['IN','NI','PF'] - - name: secao_nome - description: Nome da Seção da atividade econômica constante da Cnae - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__cnae_2') - field: descricao_secao - - name: imposto_importacao - description: Imposto sobre a Importação. - - name: imposto_exportacao - description: Imposto sobre a Exportação. - - name: ipi - description: Imposto sobre Produtos Industrializados. - - name: irpf - description: Imposto sobre a Renda da Pessoa Física. - - name: irpj - description: Imposto sobre a Renda da Pessoa Jurídica. - - name: irrf - description: Imposto sobre a Renda Retido na Fonte. - - name: iof - description: Imposto sobre Operações Financeiras. - - name: itr - description: Imposto sobre a Propriedade Territorial Rural. - - name: cofins - description: Contribuição para o Financiamento da Seguridade Social. - - name: pis_pasep - description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. - - name: csll - description: Contribuição Social sobre o Lucro Líquido. - - name: cide_combustiveis - description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. - - name: contribuicao_previdenciaria - description: Contribuição Previdenciária arrecadada em Darf. - - name: cpsss - description: Contribuição para o Plano de Seguridade Social do Servidor Público. - - name: pagamento_unificado - description: Pagamentos referentes a vários tributos feitos em um único documento - de arrecadação, como parcelamentos, retenções, Simples etc. - - name: outras_receitas_rfb - description: Outras receitas administradas pela RFB. - - name: demais_receitas - description: Outras receitas não administradas pela RFB. - - name: br_rf_arrecadacao__natureza_juridica - description: Contém os dados de arrecadação bruta mensal realizadas em Documento - de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos - tipos de Naturezas Jurídicas. - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - ano - - mes - - natureza_juridica_codigo - - natureza_juridica_nome - - not_null_proportion_multiple_columns: - at_least: 0.95 - columns: - - name: ano - description: Ano de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: mes - description: Mês de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes - - name: natureza_juridica_codigo - description: Código do tipo de Natureza Jurídica. - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__natureza_juridica') - field: id_natureza_juridica - - name: natureza_juridica_nome - description: Nome do tipo da Natureza Jurídica. - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__natureza_juridica') - field: descricao - - name: imposto_importacao - description: Imposto sobre a Importação. - - name: imposto_exportacao - description: Imposto sobre a Exportação. - - name: ipi - description: Imposto sobre Produtos Industrializados. - - name: irpf - description: Imposto sobre a Renda da Pessoa Física. - - name: irpj - description: Imposto sobre a Renda da Pessoa Jurídica. - - name: irrf - description: Imposto sobre a Renda Retido na Fonte. - - name: iof - description: Imposto sobre Operações Financeiras. - - name: itr - description: Imposto sobre a Propriedade Territorial Rural. - - name: cofins - description: Contribuição para o Financiamento da Seguridade Social. - - name: pis_pasep - description: Programa de Integração Social e o Programa de Formação do Patrimônio - do Servidor Público. - - name: csll - description: Contribuição Social sobre o Lucro Líquido. - - name: cide_combustiveis - description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. - - name: contribuicao_previdenciaria - description: Contribuição Previdenciária arrecadada em Darf. - - name: cpsss - description: Contribuição para o Plano de Seguridade Social do Servidor Público. - - name: pagamento_unificado - description: Pagamentos referentes a vários tributos feitos em um único documento - de arrecadação, como parcelamentos, retenções, Simples etc. - - name: outras_receitas_rfb - description: Outras receitas administradas pela RFB. - - name: demais_receitas - description: Outras receitas não administradas pela RFB. - - name: br_rf_arrecadacao__ir_ipi - description: Contém os dados de arrecadação decendial do Imposto sobre a Renda - (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação - bruta, os respectivos eventos que afetam essa arrecadação bruta e a arrecadação - líquida, valor este último passível de repasse aos Fundos de Participação dos - Estados e do Municípios, FPM e FPE, de acordo com dispositivo constitucional. - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano, mes, tributo, decendio] - - not_null_proportion_multiple_columns: - at_least: 0.95 - columns: - - name: ano - description: Ano de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: mes - description: Mês de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes - - name: tributo - description: Identificação de Tributo (IR ou IPI). - - name: decendio - description: Decêndio de referência. - - name: arrecadacao_bruta - description: Valor da arrecadação bruta dos tributos sem nenhum acréscimo - ou dedução. É a etapa inicial da arrecadação, quando há o pagamento efetuado - pelo contribuinte. - - name: retificacao - description: Valor do saldo das retificações efetuadas nos Documentos de Arrecadação - de Receitas Federais (Darf). São alterações feitas nos documentos de arrecadação - em função de erro de preenchimento. - - name: compensacao - description: Valor do saldo das compensações efetuadas. Utilização de valores - pagos anteriormente para quitação de débitos de outros tributos, distintos - de IR ou IPI, e vice-versa. - - name: restituicao - description: Valor do saldo das restituições efetuadas pela Receita Federal - em função de pagamentos feitos a maior ou indevidos. - - name: outros - description: Demais eventos que agem sobre o valor da arrecadação bruta. - - name: arrecadacao_liquida - description: Valor resultante da arrecadação bruta, depois da incidência dos - demais eventos de arrecadação. - - name: br_rf_arrecadacao__itr - description: Contém os dados de arrecadação líquida mensal do Imposto sobre a - Propriedade Territorial Rural (ITR), realizada pelas propriedades rurais, passível - de repasse aos próprios municípios onde se localizam essas propriedades rurais, - conforme a situação do município, conveniado ou não conveniado com a União para - fiscalizar e cobrar o ITR, de acordo com dispositivo constitucional. - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - ano - - mes - - nome_uf - - regiao_politica - - cidade_uf - - not_null_proportion_multiple_columns: - at_least: 0.95 - columns: - - name: ano - description: Ano de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: mes - description: Mês de referência. - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__mes') - field: mes.mes - - name: nome_uf - description: Nome da Unidade da Federação onde se localiza o município conveniado - ou não conveniado. - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: nome - - name: regiao_politica - description: Nome da Região Política onde se localiza o município conveniado - ou não conveniado. - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: regiao - - name: cidade_uf - description: "Nome do município conveniado ou não conveniado seguido da sigla\ - \ da\nUnidade da Federação onde se localiza o município." - - name: valor_arrecadado - description: Valor arrecadado. From aa55b471550b1b775cf9054a7c6f6bfe0a6660c7 Mon Sep 17 00:00:00 2001 From: andre-ls Date: Mon, 4 Nov 2024 14:52:43 +0000 Subject: [PATCH 12/12] =?UTF-8?q?Corre=C3=A7=C3=A3o=20de=20Testes=20de=20P?= =?UTF-8?q?reechimento=20de=20Colunas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/br_rf_arrecadacao/schema.yml | 118 +--------------------------- 1 file changed, 4 insertions(+), 114 deletions(-) diff --git a/models/br_rf_arrecadacao/schema.yml b/models/br_rf_arrecadacao/schema.yml index 9239630b..f9d55e16 100644 --- a/models/br_rf_arrecadacao/schema.yml +++ b/models/br_rf_arrecadacao/schema.yml @@ -270,6 +270,8 @@ models: tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: [ano, mes, secao_sigla] + - not_null_proportion_multiple_columns: + at_least: 0.35 columns: - name: ano description: Ano de referência. @@ -277,16 +279,12 @@ models: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') field: ano.ano - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: mes description: Mês de referência. tests: - relationships: to: ref('br_bd_diretorios_data_tempo__mes') field: mes.mes - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: secao_sigla description: Código da Seção da atividade econômica constante da Cnae. tests: @@ -294,95 +292,42 @@ models: to: ref('br_bd_diretorios_brasil__cnae_2') field: secao ignore_values: [IN, NI, PF] - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: imposto_importacao description: Imposto sobre a Importação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.85 - name: imposto_exportacao description: Imposto sobre a Exportação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.35 - name: ipi description: Imposto sobre Produtos Industrializados. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.90 - name: irpf description: Imposto sobre a Renda da Pessoa Física. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.60 - name: irpj description: Imposto sobre a Renda da Pessoa Jurídica. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.90 - name: irrf description: Imposto sobre a Renda Retido na Fonte. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: iof description: Imposto sobre Operações Financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 - name: itr description: Imposto sobre a Propriedade Territorial Rural. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.85 - name: cofins description: Contribuição para o Financiamento da Seguridade Social. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: pis_pasep description: Programa de Integração Social e o Programa de Formação do Patrimônio do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: csll description: Contribuição Social sobre o Lucro Líquido. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.90 - name: cide_combustiveis description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.80 - name: contribuicao_previdenciaria description: Contribuição Previdenciária arrecadada em Darf. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.90 - name: cpsss description: Contribuição para o Plano de Seguridade Social do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.65 - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento de arrecadação, como parcelamentos, retenções, Simples etc. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: outras_receitas_rfb description: Outras receitas administradas pela RFB. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.90 - name: demais_receitas description: Outras receitas não administradas pela RFB. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.90 - name: br_rf_arrecadacao__natureza_juridica description: Contém os dados de arrecadação bruta mensal realizadas em Documento de Arrecadação de Receitas Federais (Darf), por tributo, efetuada pelos diversos @@ -390,6 +335,8 @@ models: tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: [ano, mes, natureza_juridica_codigo] + - not_null_proportion_multiple_columns: + at_least: 0.15 columns: - name: ano description: Ano de referência. @@ -397,111 +344,54 @@ models: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') field: ano.ano - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: mes description: Mês de referência. tests: - relationships: to: ref('br_bd_diretorios_data_tempo__mes') field: mes.mes - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: natureza_juridica_codigo description: Código do tipo de Natureza Jurídica. tests: - relationships: to: ref('br_bd_diretorios_brasil__natureza_juridica') field: id_natureza_juridica - - dbt_utils.not_null_proportion: - at_least: 0.95 - name: imposto_importacao description: Imposto sobre a Importação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.40 - name: imposto_exportacao description: Imposto sobre a Exportação. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.15 - name: ipi description: Imposto sobre Produtos Industrializados. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.35 - name: irpf description: Imposto sobre a Renda da Pessoa Física. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.20 - name: irpj description: Imposto sobre a Renda da Pessoa Jurídica. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.60 - name: irrf description: Imposto sobre a Renda Retido na Fonte. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.90 - name: iof description: Imposto sobre Operações Financeiras. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.35 - name: itr description: Imposto sobre a Propriedade Territorial Rural. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.40 - name: cofins description: Contribuição para o Financiamento da Seguridade Social. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.75 - name: pis_pasep description: Programa de Integração Social e o Programa de Formação do Patrimônio do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.85 - name: csll description: Contribuição Social sobre o Lucro Líquido. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.65 - name: cide_combustiveis description: Contribuição de Intervenção no Domínio Econômico aplicada à combustíveis. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.35 - name: contribuicao_previdenciaria description: Contribuição Previdenciária arrecadada em Darf. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.75 - name: cpsss description: Contribuição para o Plano de Seguridade Social do Servidor Público. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.35 - name: pagamento_unificado description: Pagamentos referentes a vários tributos feitos em um único documento de arrecadação, como parcelamentos, retenções, Simples etc. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.90 - name: outras_receitas_rfb description: Outras receitas administradas pela RFB. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.75 - name: demais_receitas description: Outras receitas não administradas pela RFB. - tests: - - dbt_utils.not_null_proportion: - at_least: 0.75 - name: br_rf_arrecadacao__ir_ipi description: Contém os dados de arrecadação decendial do Imposto sobre a Renda (IR) e do Imposto sobre Produtos Industrializados (IPI), discriminados por arrecadação