From f2489c74b2bf45344de40c7669c9aba456a80b27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Mon, 1 Apr 2024 11:32:07 -0300 Subject: [PATCH 1/2] feat: add setor_censitario dir & table --- ...bd_diretorios_brasil__setor_censitario.sql | 60 +++++++++++++++++++ models/br_bd_diretorios_brasil/schema.yml | 54 +++++++++++++++++ ...22__domicilio_morador_setor_censitario.sql | 25 ++++++++ models/br_ibge_censo_2022/schema.yml | 45 ++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 models/br_bd_diretorios_brasil/br_bd_diretorios_brasil__setor_censitario.sql create mode 100644 models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_morador_setor_censitario.sql diff --git a/models/br_bd_diretorios_brasil/br_bd_diretorios_brasil__setor_censitario.sql b/models/br_bd_diretorios_brasil/br_bd_diretorios_brasil__setor_censitario.sql new file mode 100644 index 00000000..19a4c1b0 --- /dev/null +++ b/models/br_bd_diretorios_brasil/br_bd_diretorios_brasil__setor_censitario.sql @@ -0,0 +1,60 @@ +{{ + config( + alias="setor_censitario", + schema="br_bd_diretorios_brasil", + materialized="table", + ) +}} +with + censo_2022 as ( + select + 2022 as ano, + cd_setor as id_setor_censitario, + cd_mun as id_municipio, + cast(null as string) as id_rm, + cast(null as string) nome_rm, + cd_dist as id_distrito, + nm_dist as nome_distrito, + cd_subdist as id_subdistrito, + nm_subdist as nome_subdistrito, + cast(null as string) id_bairro, + cast(null as string) nome_bairro, + cast(null as string) sigla_uf, + cast(null as string) situacao_setor, + cast(null as string) tipo_setor, + cd_micro as id_microrregiao, + nm_micro as nome_microrregiao, + cd_meso as id_mesorregiao, + nm_meso as nome_mesorregiao, + cd_rgi as id_regiao_imediata, + nm_rgi as nome_regiao_imediata, + cd_rgint as id_regiao_intermediaria, + nm_rgint as nome_regiao_intermediaria, + cd_concurb as id_concentracao_urbana, + nm_concurb as nome_concentracao_urbana, + from + `basedosdados-staging.br_ibge_censo_2022_staging.domicilio_morador_setor_censitario` + + ), + + censo_2010 as ( + select + *, + cast(null as string) id_microrregiao, + cast(null as string) nome_microrregiao, + cast(null as string) id_mesorregiao, + cast(null as string) nome_mesorregiao, + cast(null as string) id_regiao_imediata, + cast(null as string) nome_regiao_imediata, + cast(null as string) id_regiao_intermediaria, + cast(null as string) nome_regiao_intermediaria, + cast(null as string) id_concentracao_urbana, + cast(null as string) nome_concentracao_urbana + from `basedosdados-staging.br_bd_diretorios_brasil.setor_censitario` + ) + +select * +from censo_2022 +union all +select * +from censo_2010 diff --git a/models/br_bd_diretorios_brasil/schema.yml b/models/br_bd_diretorios_brasil/schema.yml index 9092b923..006830d2 100644 --- a/models/br_bd_diretorios_brasil/schema.yml +++ b/models/br_bd_diretorios_brasil/schema.yml @@ -249,3 +249,57 @@ models: description: Seção - name: descricao_secao description: Descrição da Seção + - name: br_bd_diretorios_brasil__setor_censitario + description: Description + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [ano, id_setor_censitario] + columns: + - name: ano + description: Ano + - name: id_setor_censitario + description: ID do setor censitário + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + - name: id_rm + description: ID da região metropolitana ou RIDE + - name: nome_rm + description: Nome da região metropolitana ou RIDE + - name: id_distrito + description: ID do distrito + - name: nome_distrito + description: Nome do distrito + - name: id_subdistrito + description: ID do subdistrito + - name: nome_subdistrito + description: Nome do subdistrito + - name: id_bairro + description: ID de bairro + - name: nome_bairro + description: Nome do bairro + - name: sigla_uf + description: Sigla do Estado + - name: situacao_setor + description: – ID de situação do setor - Situação urbana - IDs 1, 2 e 3; 1 - Área urbanizada de cidade ou vila 2 - Área não urbanizada de cidade ou vila 3 - Área urbana isolada - Situação rural – IDs 4, 5, 6, 7 e 8; 4 - Aglomerado rural de extensão urbana 5 - Aglomerado rural isolado, povoado 6 - Aglomerado rural isolado, núcleo 7 - Aglomerado rural isolado, outros aglomerados 8 - Zona rural, exclusive aglomerado rural + - name: tipo_setor + description: Tipo de setor censitário + - name: id_microrregiao + description: ID da microrregião + - name: nome_microrregiao + description: Nome da microrregião + - name: id_mesorregiao + description: ID da microrregião + - name: nome_mesorregiao + description: Nome da mesorregião + - name: id_regiao_imediata + description: ID da região geográfica imediata + - name: nome_regiao_imediata + description: Nome da região geográfica imediata + - name: id_regiao_intermediaria + description: ID da região geográfica intermediária + - name: nome_regiao_intermediaria + description: Nome da região geográfica intermediária + - name: id_concentracao_urbana + description: ID da Concentração Urbana + - name: nome_concentracao_urbana + description: Nome da Concentração Urbana diff --git a/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_morador_setor_censitario.sql b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_morador_setor_censitario.sql new file mode 100644 index 00000000..d852c0bb --- /dev/null +++ b/models/br_ibge_censo_2022/br_ibge_censo_2022__domicilio_morador_setor_censitario.sql @@ -0,0 +1,25 @@ +{{ + config( + alias="domicilio_morador_setor_censitario", + schema="br_ibge_censo_2022", + cluster_by=["id_uf", "id_municipio"], + ) +}} +select + safe_cast(cd_uf as string) id_uf, + safe_cast(cd_mun as string) id_municipio, + safe_cast(cd_setor as string) id_setor_censitario, + safe_cast(area_km2 as float64) area_setor, + safe_cast( + st_geogfromwkb(geometry, planar => true, make_valid => true) as geography + ) geometria, + safe_cast(v0001 as int64) pessoas, + safe_cast(v0002 as int64) domicilios, + safe_cast(v0003 as int64) domicilios_particulares, + safe_cast(v0004 as int64) domicilios_coletivos, + safe_cast(v0005 as float64) media_moradores_domicilios, + safe_cast(v0006 as float64) porcentagem_domicilios_imputados, + safe_cast(v0007 as int64) domicilios_particulares_ocupados, +from + `basedosdados-staging.br_ibge_censo_2022_staging.domicilio_morador_setor_censitario` + as t diff --git a/models/br_ibge_censo_2022/schema.yml b/models/br_ibge_censo_2022/schema.yml index c3be58aa..ac2007b6 100644 --- a/models/br_ibge_censo_2022/schema.yml +++ b/models/br_ibge_censo_2022/schema.yml @@ -866,3 +866,48 @@ models: description: Cor ou Raça - name: moradores description: Moradores em domicílios particulares permanentes ocupados + - name: br_ibge_censo_2022__domicilio_morador_setor_censitario + description: description + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - id_uf + - id_municipio + - id_setor_censitario + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: id_uf + description: ID da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: id + - name: id_municipio + description: ID Município IBGE - 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: id_setor_censitario + description: Geocódigo de Setor Censitário + - name: area_setor + description: Área do Setor Censitário em quilômetros quadrados + - name: geometria + description: Polígono + - name: pessoas + description: Total de pessoas + - name: domicilios + description: Total de Domicílios (DPPO + DPPV + DPPUO + DPIO + DCCM + DCSM) + - name: domicilios_particulares + description: Total de Domicílios Particulares (DPPO + DPPV + DPPUO + DPIO) + - name: domicilios_coletivos + description: Total de Domicílios Coletivos (DCCM + DCSM) + - name: media_moradores_domicilios + description: Média de moradores em Domicílios Particulares Ocupados (Total + pessoas em Domicílios Particulares Ocupados / DPPO + DPIO) + - name: porcentagem_domicilios_imputados + description: Percentual de Domicílios Particulares Ocupados Imputados (Total + DPO imputados / Total DPO) + - name: domicilios_particulares_ocupados + description: Total de Domicílios Particulares Ocupados (DPPO + DPIO) From 8eda499d7660e371e8dcbc028194113d6ae6a9c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Tue, 2 Apr 2024 17:53:39 -0300 Subject: [PATCH 2/2] fix: fix tests --- models/br_ibge_censo_2022/schema.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/models/br_ibge_censo_2022/schema.yml b/models/br_ibge_censo_2022/schema.yml index ac2007b6..b12ec09d 100644 --- a/models/br_ibge_censo_2022/schema.yml +++ b/models/br_ibge_censo_2022/schema.yml @@ -881,14 +881,14 @@ models: description: ID da Unidade da Federação tests: - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: id + to: ref('br_bd_diretorios_brasil__uf') + field: id_uf - name: id_municipio description: ID Município IBGE - 7 Dígitos tests: - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: id_setor_censitario description: Geocódigo de Setor Censitário - name: area_setor