From b16fbd1e8527a6dbcf5adeb0f803fc07dbd9f85f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Wed, 28 Feb 2024 20:15:33 -0300 Subject: [PATCH 1/5] feat(censo2022): add censo-domicilios models and schema --- .gitignore | 1 + .pre-commit-config.yaml | 14 +- dbt_project.yml | 3 - ...nalizacao_abastecimento_agua_municipio.sql | 19 ++ ...2022__domicilio_destino_lixo_municipio.sql | 11 + ...icilio_esgotamento_sanitario_municipio.sql | 16 + ...o_ligacao_abastecimento_agua_municipio.sql | 19 ++ ...tidade_esgotamento_sanitario_municipio.sql | 20 ++ ...e_censo_2022__domicilio_tipo_municipio.sql | 9 + ...orador_cor_raca_destino_lixo_municipio.sql | 17 + ...r_raca_esgotamento_sanitario_municipio.sql | 18 ++ ...a_ligacao_abastecimento_agua_municipio.sql | 21 ++ ...ador_cor_raca_tipo_domicilio_municipio.sql | 18 ++ models/br_ibge_censo_2022/schema.yml | 298 ++++++++++++++++++ 14 files changed, 474 insertions(+), 10 deletions(-) create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_canalizacao_abastecimento_agua_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_destino_lixo_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_esgotamento_sanitario_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_ligacao_abastecimento_agua_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_quantidade_esgotamento_sanitario_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_tipo_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_destino_lixo_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_esgotamento_sanitario_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_ligacao_abastecimento_agua_municipio.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_tipo_domicilio_municipio.sql diff --git a/.gitignore b/.gitignore index 90a377b6..e8e69f67 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ models/*/tmp/ models/*/input/ models/*/output/ models/*/extra/ +venv-queries diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c506c202..5c8f55b8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,10 +17,10 @@ repos: - id: sqlfmt language_version: python additional_dependencies: ['.[jinjafmt]'] - - repo: local - hooks: - - id: yamlfix - name: yamlfix - types: [yaml] - language: system - entry: yamlfix --exclude ".kubernetes/**/*" . + # - repo: local + # hooks: + # - id: yamlfix + # name: yamlfix + # types: [yaml] + # language: system + # entry: yamlfix --exclude ".kubernetes/**/*" . diff --git a/dbt_project.yml b/dbt_project.yml index b07a8ced..8d30f938 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -8,14 +8,12 @@ config-version: 2 # This setting configures which "profile" dbt uses for this project. profile: default - # Options to disable elementary models vars: disable_run_results: false disable_tests_results: false disable_dbt_artifacts_autoupload: false disable_dbt_invocation_autoupload: false - # These configurations specify where dbt should look for different types of files. # The `source-paths` config, for example, states that models in this project can be # found in the "models/" directory. You probably won't need to change these! @@ -29,7 +27,6 @@ target-path: target # directory which will store compiled SQL files clean-targets: # directories to be removed by `dbt clean` - target - dbt_modules - # Grant acess # bq data control: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-control-language # dbt grant statements use https://discourse.getdbt.com/t/the-exact-grant-statements-we-use-in-a-dbt-project/430 diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_canalizacao_abastecimento_agua_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_canalizacao_abastecimento_agua_municipio.sql new file mode 100644 index 00000000..0a7c053c --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_canalizacao_abastecimento_agua_municipio.sql @@ -0,0 +1,19 @@ +{{ + config( + alias="domicilio_canalizacao_abastecimento_agua_municipio", + schema="br_ibge_censo_2022", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast( + principal_forma_de_abastecimento_de_agua as string + ) tipo_abastecimento_agua, + safe_cast(existencia_de_canalizacao_de_agua as string) tipo_canalizacao_agua, + safe_cast( + domicilios_particulares_permanentes_ocupados_unidades_ as int64 + ) domicilios, +from + `basedosdados-staging.br_ibge_censo_2022_staging.domicilio_canalizacao_abastecimento_agua_municipio` + as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_destino_lixo_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_destino_lixo_municipio.sql new file mode 100644 index 00000000..6fbe4177 --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_destino_lixo_municipio.sql @@ -0,0 +1,11 @@ +{{ config(alias="domicilio_destino_lixo_municipio", schema="br_ibge_censo_2022") }} +select + safe_cast(replace(ano, ".0", "") as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast(destino_do_lixo as string) tipo_destino_lixo, + safe_cast( + domicilios_particulares_permanentes_ocupados_unidades_ as int64 + ) domicilios, +from + `basedosdados-staging.br_ibge_censo_2022_staging.domicilio_destino_lixo_municipio` + as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_esgotamento_sanitario_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_esgotamento_sanitario_municipio.sql new file mode 100644 index 00000000..699e8234 --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_esgotamento_sanitario_municipio.sql @@ -0,0 +1,16 @@ +{{ + config( + alias="domicilio_esgotamento_sanitario_municipio", + schema="br_ibge_censo_2022", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast(tipo_de_esgotamento_sanitario as string) tipo_esgotamento_sanitario, + safe_cast( + domicilios_particulares_permanentes_ocupados_unidades_ as int64 + ) domicilios, +from + `basedosdados-staging.br_ibge_censo_2022_staging.domicilio_esgotamento_sanitario_municipio` + as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_ligacao_abastecimento_agua_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_ligacao_abastecimento_agua_municipio.sql new file mode 100644 index 00000000..30d74f4c --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_ligacao_abastecimento_agua_municipio.sql @@ -0,0 +1,19 @@ +{{ + config( + alias="domicilio_ligacao_abastecimento_agua_municipio", + schema="br_ibge_censo_2022", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast( + existencia_de_ligacao_a_rede_geral_de_distribuicao_de_agua_e_principal_forma_de_abastecimento_de_agua + as string + ) tipo_ligacao_rede_geral, + safe_cast( + domicilios_particulares_permanentes_ocupados_unidades_ as int64 + ) domicilios, +from + `basedosdados-staging.br_ibge_censo_2022_staging.domicilio_ligacao_abastecimento_agua_municipio` + as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_quantidade_esgotamento_sanitario_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_quantidade_esgotamento_sanitario_municipio.sql new file mode 100644 index 00000000..9866a172 --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_quantidade_esgotamento_sanitario_municipio.sql @@ -0,0 +1,20 @@ +{{ + config( + alias="domicilio_quantidade_esgotamento_sanitario_municipio", + schema="br_ibge_censo_2022", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast(tipo_de_esgotamento_sanitario as string) tipo_esgotamento_sanitario, + safe_cast( + existencia_de_banheiro_ou_sanitario_e_numero_de_banheiros_de_uso_exclusivo_do_domicilio + as string + ) tipo_quantidade_banheiro, + safe_cast( + domicilios_particulares_permanentes_ocupados_unidades_ as int64 + ) domicilios, +from + `basedosdados-staging.br_ibge_censo_2022_staging.domicilio_quantidade_esgotamento_sanitario_municipio` + as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_tipo_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_tipo_municipio.sql new file mode 100644 index 00000000..f4862471 --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_tipo_municipio.sql @@ -0,0 +1,9 @@ +{{ config(alias="domicilio_tipo_municipio", schema="br_ibge_censo_2022") }} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast(tipo_de_domicilio as string) tipo_domicilio, + safe_cast( + domicilios_particulares_permanentes_ocupados_unidades_ as int64 + ) domicilios, +from `basedosdados-staging.br_ibge_censo_2022_staging.domicilio_tipo_municipio` as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_destino_lixo_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_destino_lixo_municipio.sql new file mode 100644 index 00000000..fb03cbbe --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_destino_lixo_municipio.sql @@ -0,0 +1,17 @@ +{{ + config( + alias="morador_cor_raca_destino_lixo_municipio", schema="br_ibge_censo_2022" + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast(destino_do_lixo as string) tipo_destino_lixo, + safe_cast(grupo_de_idade as string) grupo_idade, + safe_cast(cor_ou_raca as string) cor_raca, + safe_cast( + moradores_em_domicilios_particulares_permanentes_ocupados_pessoas_ as int64 + ) moradores, +from + `basedosdados-staging.br_ibge_censo_2022_staging.morador_cor_raca_destino_lixo_municipio` + as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_esgotamento_sanitario_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_esgotamento_sanitario_municipio.sql new file mode 100644 index 00000000..b5ef7b2c --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_esgotamento_sanitario_municipio.sql @@ -0,0 +1,18 @@ +{{ + config( + alias="morador_cor_raca_esgotamento_sanitario_municipio", + schema="br_ibge_censo_2022", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast(tipo_de_esgotamento_sanitario as string) tipo_esgotamento_sanitario, + safe_cast(grupo_de_idade as string) grupo_idade, + safe_cast(cor_ou_raca as string) cor_raca, + safe_cast( + moradores_em_domicilios_particulares_permanentes_ocupados_pessoas_ as int64 + ) moradores, +from + `basedosdados-staging.br_ibge_censo_2022_staging.morador_cor_raca_esgotamento_sanitario_municipio` + as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_ligacao_abastecimento_agua_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_ligacao_abastecimento_agua_municipio.sql new file mode 100644 index 00000000..4973ad54 --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_ligacao_abastecimento_agua_municipio.sql @@ -0,0 +1,21 @@ +{{ + config( + alias="morador_cor_raca_ligacao_abastecimento_agua_municipio", + schema="br_ibge_censo_2022", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast( + existencia_de_ligacao_a_rede_geral_de_distribuicao_de_agua_e_principal_forma_de_abastecimento_de_agua + as string + ) tipo_ligacao_rede_geral, + safe_cast(grupo_de_idade as string) grupo_idade, + safe_cast(cor_ou_raca as string) cor_raca, + safe_cast( + moradores_em_domicilios_particulares_permanentes_ocupados_pessoas_ as int64 + ) moradores, +from + `basedosdados-staging.br_ibge_censo_2022_staging.morador_cor_raca_ligacao_abastecimento_agua_municipio` + as t diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_tipo_domicilio_municipio.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_tipo_domicilio_municipio.sql new file mode 100644 index 00000000..50842dcf --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__morador_cor_raca_tipo_domicilio_municipio.sql @@ -0,0 +1,18 @@ +{{ + config( + alias="morador_cor_raca_tipo_domicilio_municipio", + schema="br_ibge_censo_2022", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(cod_ as string) id_municipio, + safe_cast(tipo_de_domicilio as string) tipo_domicilio, + safe_cast(grupo_de_idade as string) grupo_idade, + safe_cast(cor_ou_raca as string) cor_raca, + safe_cast( + moradores_em_domicilios_particulares_permanentes_ocupados_pessoas_ as int64 + ) moradores, +from + `basedosdados-staging.br_ibge_censo_2022_staging.morador_cor_racao_tipo_domicilio_municipio` + as t diff --git a/models/br_ibge_censo_2022/schema.yml b/models/br_ibge_censo_2022/schema.yml index 7be1e2cf..d36134dd 100644 --- a/models/br_ibge_censo_2022/schema.yml +++ b/models/br_ibge_censo_2022/schema.yml @@ -836,3 +836,301 @@ models: description: Cobertura temporal - name: valor description: Valor + - name: br_ibge_censo_2022__domicilio_quantidade_esgotamento_sanitario_municipio + description: Insert `domicilio_quantidade_esgotamento_sanitario_municipio` table + description here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - tipo_esgotamento_sanitario + - tipo_quantidade_banheiro + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_esgotamento_sanitario + description: Tipo de esgotamento sanitário + - name: tipo_quantidade_banheiro + description: Existência de banheiro ou sanitário e número de banheiros de + uso exclusivo do domicílio + - name: domicilios + description: "Domicílios particulares permanentes ocupados\t" + - name: br_ibge_censo_2022__domicilio_esgotamento_sanitario_municipio + description: Insert `domicilio_esgotamento_sanitario_municipio` table description + here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - tipo_esgotamento_sanitario + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_esgotamento_sanitario + description: Tipo de esgotamento sanitário + - name: domicilios + description: "Domicílios particulares permanentes ocupados\t" + - name: br_ibge_censo_2022__domicilio_canalizacao_abastecimento_agua_municipio + description: Insert `domicilio_canalizacao_abastecimento_agua_municipio` table + description here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - tipo_abastecimento_agua + - tipo_canalizacao_agua + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_abastecimento_agua + description: Principal forma de abastecimento de água + - name: tipo_canalizacao_agua + description: Existência de canalização de água + - name: domicilios + description: "Domicílios particulares permanentes ocupados\t" + - name: br_ibge_censo_2022__domicilio_ligacao_abastecimento_agua_municipio + description: Insert `domicilio_ligacao_abastecimento_agua_municipio` table description + here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [ano, id_municipio, tipo_ligacao_rede_geral] + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_ligacao_rede_geral + description: Existência de ligação à rede geral de distribuição de água e + principal forma de abastecimento de água + - name: domicilios + description: "Domicílios particulares permanentes ocupados\t" + - name: br_ibge_censo_2022__domicilio_tipo_municipio + description: Insert `domicilio_tipo_municipio` table description here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [ano, id_municipio, tipo_domicilio] + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_domicilio + description: Tipo de domicílio + - name: domicilios + description: "Domicílios particulares permanentes ocupados\t" + - name: br_ibge_censo_2022__morador_cor_raca_esgotamento_sanitario_municipio + description: Insert `morador_cor_raca_esgotamento_sanitario_municipio` table description + here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - tipo_esgotamento_sanitario + - grupo_idade + - cor_raca + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_esgotamento_sanitario + description: Tipo de esgotamento sanitário + - name: grupo_idade + description: Grupo de Idade + - name: cor_raca + description: Cor ou Raça + - name: moradores + description: 'Moradores em domicílios particulares permanentes ocupados ' + - name: br_ibge_censo_2022__morador_cor_raca_tipo_domicilio_municipio + description: Insert `morador_cor_raca_tipo_domicilio_municipio` table description + here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - tipo_domicilio + - grupo_idade + - cor_raca + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_domicilio + description: Tipo de domicílio + - name: grupo_idade + description: Grupo de Idade + - name: cor_raca + description: Cor ou Raça + - name: moradores + description: 'Moradores em domicílios particulares permanentes ocupados ' + - name: br_ibge_censo_2022__domicilio_destino_lixo_municipio + description: Insert `domicilio_destino_lixo_municipio` table description here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [ano, id_municipio, tipo_destino_lixo] + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_destino_lixo + description: Destino do lixo + - name: domicilios + description: "Domicílios particulares permanentes ocupados\t" + - name: br_ibge_censo_2022__morador_cor_raca_ligacao_abastecimento_agua_municipio + description: Insert `morador_cor_raca_ligacao_abastecimento_agua_municipio` table + description here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - tipo_ligacao_rede_geral + - grupo_idade + - cor_raca + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_ligacao_rede_geral + description: Existência de ligação à rede geral de distribuição de água e + principal forma de abastecimento de água + - name: grupo_idade + description: Grupo de Idade + - name: cor_raca + description: Cor ou Raça + - name: moradores + description: 'Moradores em domicílios particulares permanentes ocupados ' + - name: br_ibge_censo_2022__morador_cor_raca_destino_lixo_municipio + description: Insert `morador_cor_raca_destino_lixo_municipio` table description + here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - tipo_destino_lixo + - grupo_idade + - cor_raca + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ref('ano.ano') + - name: id_municipio + description: ID Município IBGE 7 dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: ref('id') + - name: tipo_destino_lixo + description: Destino do lixo + - name: grupo_idade + description: Grupo de Idade + - name: cor_raca + description: Cor ou Raça + - name: moradores + description: Moradores em domicílios particulares permanentes ocupados From 96bea6c94bdd889d1194d2429fc51a26a0b2c453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Wed, 28 Feb 2024 20:22:26 -0300 Subject: [PATCH 2/5] fix(censo2022): enable yamlfix hook --- .gitignore | 2 +- .pre-commit-config.yaml | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index e8e69f67..0c82440d 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ models/*/tmp/ models/*/input/ models/*/output/ models/*/extra/ -venv-queries +venv* diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5c8f55b8..c506c202 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,10 +17,10 @@ repos: - id: sqlfmt language_version: python additional_dependencies: ['.[jinjafmt]'] - # - repo: local - # hooks: - # - id: yamlfix - # name: yamlfix - # types: [yaml] - # language: system - # entry: yamlfix --exclude ".kubernetes/**/*" . + - repo: local + hooks: + - id: yamlfix + name: yamlfix + types: [yaml] + language: system + entry: yamlfix --exclude ".kubernetes/**/*" . From 04793d1e8e6c1507a0b8a4d3cf9a2eee10aa47e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Thu, 29 Feb 2024 15:49:29 -0300 Subject: [PATCH 3/5] fix(censo2022): fix schema description and tests --- models/br_ibge_censo_2022/schema.yml | 66 ++++++++++++---------------- 1 file changed, 29 insertions(+), 37 deletions(-) diff --git a/models/br_ibge_censo_2022/schema.yml b/models/br_ibge_censo_2022/schema.yml index d36134dd..b3e4c89b 100644 --- a/models/br_ibge_censo_2022/schema.yml +++ b/models/br_ibge_censo_2022/schema.yml @@ -837,8 +837,7 @@ models: - name: valor description: Valor - name: br_ibge_censo_2022__domicilio_quantidade_esgotamento_sanitario_municipio - description: Insert `domicilio_quantidade_esgotamento_sanitario_municipio` table - description here + description: Domicílios particulares permanentes ocupados, por existência de banheiro ou sanitário e número de banheiros de uso exclusivo do domicílio e por tipo de esgotamento sanitário. tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: @@ -854,13 +853,13 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_esgotamento_sanitario description: Tipo de esgotamento sanitário - name: tipo_quantidade_banheiro @@ -869,8 +868,7 @@ models: - name: domicilios description: "Domicílios particulares permanentes ocupados\t" - name: br_ibge_censo_2022__domicilio_esgotamento_sanitario_municipio - description: Insert `domicilio_esgotamento_sanitario_municipio` table description - here + description: Domicílios particulares permanentes ocupados, por tipo de esgotamento sanitário tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: @@ -885,20 +883,19 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_esgotamento_sanitario description: Tipo de esgotamento sanitário - name: domicilios description: "Domicílios particulares permanentes ocupados\t" - name: br_ibge_censo_2022__domicilio_canalizacao_abastecimento_agua_municipio - description: Insert `domicilio_canalizacao_abastecimento_agua_municipio` table - description here + description: Domicílios particulares permanentes ocupados, por existência de canalização de água e principal forma de abastecimento de água tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: @@ -916,7 +913,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_abastecimento_agua description: Principal forma de abastecimento de água - name: tipo_canalizacao_agua @@ -924,8 +921,7 @@ models: - name: domicilios description: "Domicílios particulares permanentes ocupados\t" - name: br_ibge_censo_2022__domicilio_ligacao_abastecimento_agua_municipio - description: Insert `domicilio_ligacao_abastecimento_agua_municipio` table description - here + description: Domicílios particulares permanentes ocupados, por existência de ligação à rede geral de distribuição de água e principal forma de abastecimento de água. tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: [ano, id_municipio, tipo_ligacao_rede_geral] @@ -937,20 +933,20 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_ligacao_rede_geral description: Existência de ligação à rede geral de distribuição de água e principal forma de abastecimento de água - name: domicilios description: "Domicílios particulares permanentes ocupados\t" - name: br_ibge_censo_2022__domicilio_tipo_municipio - description: Insert `domicilio_tipo_municipio` table description here + description: Domicílios particulares permanentes ocupados, por tipo de domicílio tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: [ano, id_municipio, tipo_domicilio] @@ -962,20 +958,19 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_domicilio description: Tipo de domicílio - name: domicilios description: "Domicílios particulares permanentes ocupados\t" - name: br_ibge_censo_2022__morador_cor_raca_esgotamento_sanitario_municipio - description: Insert `morador_cor_raca_esgotamento_sanitario_municipio` table description - here + description: Moradores em domicílios particulares permanentes ocupados, por tipo de esgotamento sanitário, segundo grupos de idade e cor ou raça. tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: @@ -992,13 +987,13 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_esgotamento_sanitario description: Tipo de esgotamento sanitário - name: grupo_idade @@ -1008,8 +1003,7 @@ models: - name: moradores description: 'Moradores em domicílios particulares permanentes ocupados ' - name: br_ibge_censo_2022__morador_cor_raca_tipo_domicilio_municipio - description: Insert `morador_cor_raca_tipo_domicilio_municipio` table description - here + description: Moradores em domicílios particulares permanentes ocupados, por tipo do domicílio, segundo grupos de idade e cor ou raça. tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: @@ -1026,13 +1020,13 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_domicilio description: Tipo de domicílio - name: grupo_idade @@ -1042,7 +1036,7 @@ models: - name: moradores description: 'Moradores em domicílios particulares permanentes ocupados ' - name: br_ibge_censo_2022__domicilio_destino_lixo_municipio - description: Insert `domicilio_destino_lixo_municipio` table description here + description: Domicílios particulares permanentes ocupados, por destino do lixo tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: [ano, id_municipio, tipo_destino_lixo] @@ -1054,20 +1048,19 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_destino_lixo description: Destino do lixo - name: domicilios description: "Domicílios particulares permanentes ocupados\t" - name: br_ibge_censo_2022__morador_cor_raca_ligacao_abastecimento_agua_municipio - description: Insert `morador_cor_raca_ligacao_abastecimento_agua_municipio` table - description here + description: Moradores em domicílios particulares permanentes ocupados, por existência de ligação à rede geral de distribuição de água e principal forma de abastecimento de água, segundo grupos de idade e cor ou raça. tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: @@ -1084,13 +1077,13 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_ligacao_rede_geral description: Existência de ligação à rede geral de distribuição de água e principal forma de abastecimento de água @@ -1101,8 +1094,7 @@ models: - name: moradores description: 'Moradores em domicílios particulares permanentes ocupados ' - name: br_ibge_censo_2022__morador_cor_raca_destino_lixo_municipio - description: Insert `morador_cor_raca_destino_lixo_municipio` table description - here + description: Moradores em domicílios particulares permanentes ocupados, por destino do lixo, segundo grupos de idade e cor ou raça. tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: @@ -1119,13 +1111,13 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ref('ano.ano') + field: ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') - field: ref('id') + field: id_municipio - name: tipo_destino_lixo description: Destino do lixo - name: grupo_idade From a1eeb0ba057432eef715aee6cbd959cbdb5ff4e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Thu, 29 Feb 2024 17:41:51 -0300 Subject: [PATCH 4/5] fix(censo2022): fix column description --- models/br_ibge_censo_2022/schema.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/models/br_ibge_censo_2022/schema.yml b/models/br_ibge_censo_2022/schema.yml index b3e4c89b..2ca83efc 100644 --- a/models/br_ibge_censo_2022/schema.yml +++ b/models/br_ibge_censo_2022/schema.yml @@ -866,7 +866,7 @@ models: description: Existência de banheiro ou sanitário e número de banheiros de uso exclusivo do domicílio - name: domicilios - description: "Domicílios particulares permanentes ocupados\t" + description: Domicílios particulares permanentes ocupados - name: br_ibge_censo_2022__domicilio_esgotamento_sanitario_municipio description: Domicílios particulares permanentes ocupados, por tipo de esgotamento sanitário tests: @@ -893,7 +893,7 @@ models: - name: tipo_esgotamento_sanitario description: Tipo de esgotamento sanitário - name: domicilios - description: "Domicílios particulares permanentes ocupados\t" + description: Domicílios particulares permanentes ocupados - name: br_ibge_censo_2022__domicilio_canalizacao_abastecimento_agua_municipio description: Domicílios particulares permanentes ocupados, por existência de canalização de água e principal forma de abastecimento de água tests: @@ -919,7 +919,7 @@ models: - name: tipo_canalizacao_agua description: Existência de canalização de água - name: domicilios - description: "Domicílios particulares permanentes ocupados\t" + description: Domicílios particulares permanentes ocupados - name: br_ibge_censo_2022__domicilio_ligacao_abastecimento_agua_municipio description: Domicílios particulares permanentes ocupados, por existência de ligação à rede geral de distribuição de água e principal forma de abastecimento de água. tests: @@ -944,7 +944,7 @@ models: description: Existência de ligação à rede geral de distribuição de água e principal forma de abastecimento de água - name: domicilios - description: "Domicílios particulares permanentes ocupados\t" + description: Domicílios particulares permanentes ocupados - name: br_ibge_censo_2022__domicilio_tipo_municipio description: Domicílios particulares permanentes ocupados, por tipo de domicílio tests: @@ -968,7 +968,7 @@ models: - name: tipo_domicilio description: Tipo de domicílio - name: domicilios - description: "Domicílios particulares permanentes ocupados\t" + description: Domicílios particulares permanentes ocupados - name: br_ibge_censo_2022__morador_cor_raca_esgotamento_sanitario_municipio description: Moradores em domicílios particulares permanentes ocupados, por tipo de esgotamento sanitário, segundo grupos de idade e cor ou raça. tests: @@ -1058,7 +1058,7 @@ models: - name: tipo_destino_lixo description: Destino do lixo - name: domicilios - description: "Domicílios particulares permanentes ocupados\t" + description: Domicílios particulares permanentes ocupados - name: br_ibge_censo_2022__morador_cor_raca_ligacao_abastecimento_agua_municipio description: Moradores em domicílios particulares permanentes ocupados, por existência de ligação à rede geral de distribuição de água e principal forma de abastecimento de água, segundo grupos de idade e cor ou raça. tests: @@ -1092,7 +1092,7 @@ models: - name: cor_raca description: Cor ou Raça - name: moradores - description: 'Moradores em domicílios particulares permanentes ocupados ' + description: Moradores em domicílios particulares permanentes ocupados - name: br_ibge_censo_2022__morador_cor_raca_destino_lixo_municipio description: Moradores em domicílios particulares permanentes ocupados, por destino do lixo, segundo grupos de idade e cor ou raça. tests: From 8f347740ce3f245945b221d78601b49d02f7bad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Fri, 1 Mar 2024 13:04:49 -0300 Subject: [PATCH 5/5] fix(censo2022): make requested changes --- models/br_ibge_censo_2022/schema.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/models/br_ibge_censo_2022/schema.yml b/models/br_ibge_censo_2022/schema.yml index 2ca83efc..6379f8c8 100644 --- a/models/br_ibge_censo_2022/schema.yml +++ b/models/br_ibge_censo_2022/schema.yml @@ -853,7 +853,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: @@ -883,7 +883,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: @@ -933,7 +933,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: @@ -958,7 +958,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: @@ -987,7 +987,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: @@ -1020,7 +1020,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: @@ -1048,7 +1048,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: @@ -1077,7 +1077,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: @@ -1111,7 +1111,7 @@ models: tests: - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + field: ano.ano - name: id_municipio description: ID Município IBGE 7 dígitos tests: