diff --git a/dbt_project.yml b/dbt_project.yml index c3e35d6a..dda95eb4 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -130,6 +130,9 @@ models: br_ibge_inpc: +materialized: table +schema: br_ibge_inpc + br_geobr_mapas: + +materialized: table + +schema: br_geobr_mapas br_ibge_ipca: +materialized: table +schema: br_ibge_ipca diff --git a/models/br_geobr_mapas/br_geobr_mapas__bioma.sql b/models/br_geobr_mapas/br_geobr_mapas__bioma.sql new file mode 100644 index 00000000..34ef972d --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__bioma.sql @@ -0,0 +1,21 @@ +{{ + config( + alias='bioma', + schema='br_geobr_mapas', + materialized='table', + partition_by={ + "field": "ano", + "data_type": "int64", + "range": { + "start": 2004, + "end": 2019, + "interval": 15} + }, + ) + }} +SELECT +SAFE_CAST(year AS INT64) ano, +SAFE_CAST(id_bioma AS STRING) id_bioma, +SAFE_CAST(nome_bioma AS STRING) nome_bioma, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +from basedosdados-staging.br_geobr_mapas_staging.bioma as t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__escola.sql b/models/br_geobr_mapas/br_geobr_mapas__escola.sql new file mode 100644 index 00000000..657b10fc --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__escola.sql @@ -0,0 +1,13 @@ +{{ + config( + alias='escola', + schema='br_geobr_mapas', + materialized='table', + ) + }} + +SELECT +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE_CAST(id_escola AS STRING) id_escola, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.escola AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__estabelecimentos_saude.sql b/models/br_geobr_mapas/br_geobr_mapas__estabelecimentos_saude.sql new file mode 100644 index 00000000..9be46055 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__estabelecimentos_saude.sql @@ -0,0 +1,14 @@ +{{ + config( + alias='estabelecimentos_saude', + schema='br_geobr_mapas', + materialized='table', + ) + }} +SELECT +SAFE_CAST(ano AS INT64) ano, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE_CAST(id_municipio AS STRING) id_municipio, +SAFE_CAST(id_cnes AS STRING) id_cnes, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.estabelecimentos_saude AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__mesorregiao.sql b/models/br_geobr_mapas/br_geobr_mapas__mesorregiao.sql new file mode 100644 index 00000000..a0522618 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__mesorregiao.sql @@ -0,0 +1,13 @@ +{{ + config( + alias='mesorregiao', + schema='br_geobr_mapas', + materialized='table', + ) + }} +SELECT +SAFE_CAST(id_uf AS STRING) id_uf, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE_CAST(id_mesorregiao AS STRING) id_mesorregiao, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.mesorregiao AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__microrregiao.sql b/models/br_geobr_mapas/br_geobr_mapas__microrregiao.sql new file mode 100644 index 00000000..a18cb996 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__microrregiao.sql @@ -0,0 +1,14 @@ +{{ + config( + alias='microrregiao', + schema='br_geobr_mapas', + materialized='table', + ) + }} + +SELECT +SAFE_CAST(id_uf AS STRING) id_uf, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE_CAST(id_microrregiao AS STRING) id_microrregiao, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.microrregiao AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__municipio.sql b/models/br_geobr_mapas/br_geobr_mapas__municipio.sql new file mode 100644 index 00000000..50bafa1c --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__municipio.sql @@ -0,0 +1,13 @@ +{{ + config( + alias='municipio', + schema='br_geobr_mapas', + materialized='table', + ) + }} + +SELECT +SAFE_CAST(id_municipio AS STRING ) id_municipio, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.municipio AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__regiao.sql b/models/br_geobr_mapas/br_geobr_mapas__regiao.sql new file mode 100644 index 00000000..2fbad9b0 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__regiao.sql @@ -0,0 +1,12 @@ +{{ + config( + alias='regiao', + schema='br_geobr_mapas', + materialized='table', + ) + }} +SELECT +SAFE_CAST(id_regiao AS STRING) id_regiao, +SAFE_CAST(nome_regiao AS STRING) nome_regiao, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.regiao AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__regiao_imediata.sql b/models/br_geobr_mapas/br_geobr_mapas__regiao_imediata.sql new file mode 100644 index 00000000..f5010a52 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__regiao_imediata.sql @@ -0,0 +1,13 @@ +{{ + config( + alias='regiao_imediata', + schema='br_geobr_mapas', + materialized='table', + ) + }} +SELECT +SAFE_CAST(id_uf AS STRING) id_uf, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE_CAST(id_regiao_imediata AS STRING) id_regiao_imediata, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.regiao_imediata AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__regiao_intermediaria.sql b/models/br_geobr_mapas/br_geobr_mapas__regiao_intermediaria.sql new file mode 100644 index 00000000..ae99acc7 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__regiao_intermediaria.sql @@ -0,0 +1,13 @@ +{{ + config( + alias='regiao_intermediaria', + schema='br_geobr_mapas', + materialized='table', + ) + }} +SELECT +SAFE_CAST(id_uf AS STRING) id_uf, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE_CAST(id_regiao_intermediaria AS STRING) id_regiao_intermediaria, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.regiao_intermediaria AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__saude.sql b/models/br_geobr_mapas/br_geobr_mapas__saude.sql new file mode 100644 index 00000000..13f204e9 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__saude.sql @@ -0,0 +1,13 @@ +{{ + config( + alias='saude', + schema='br_geobr_mapas', + materialized='table', + ) + }} +SELECT +SAFE_CAST(id_regiao_saude AS STRING) id_regiao_saude, +SAFE_CAST(id_uf AS STRING) id_uf, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.saude AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__semiarido.sql b/models/br_geobr_mapas/br_geobr_mapas__semiarido.sql new file mode 100644 index 00000000..7087d9f6 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__semiarido.sql @@ -0,0 +1,12 @@ +{{ + config( + alias='semiarido', + schema='br_geobr_mapas', + materialized='table', + ) + }} +SELECT +SAFE_CAST(id_municipio AS STRING) id_municipio, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.semiarido AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__setor_censitario_2010.sql b/models/br_geobr_mapas/br_geobr_mapas__setor_censitario_2010.sql new file mode 100644 index 00000000..22e79484 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__setor_censitario_2010.sql @@ -0,0 +1,27 @@ +{{ + config( + alias='setor_censitario_2010', + schema='br_geobr_mapas', + materialized='table', + partition_by={ + "field": "sigla_uf", + "data_type": "string", + }, + ) + }} + +SELECT +SAFE_CAST(id_uf AS STRING) id_uf, +SAFE_CAST(estado_abrev AS STRING) sigla_uf, +SAFE_CAST( SAFE_CAST( SAFE_CAST(id_municipio AS FLOAT64) AS INT64) AS STRING) id_municipio, -- corrige ponto decimal +SAFE_CAST(nome_municipio AS STRING) nome_municipio, +SAFE_CAST(id_distrito AS STRING) id_distrito, +SAFE_CAST(nome_distrito AS STRING) nome_distrito, +SAFE_CAST(id_subdistrito AS STRING) id_subdistrito, +SAFE_CAST(nome_subdistrito AS STRING) nome_subdistrito, +SAFE_CAST(id_vizinhanca AS STRING) nome_vizinhanca, -- invertida com nome_vizinhanca +SAFE_CAST( SAFE_CAST( SAFE_CAST(nome_vizinhanca AS FLOAT64) AS INT64) AS STRING) id_vizinhanca, -- invertida com id_vizinhanca e corrige ponto decimal +SAFE_CAST(id_setor_censitario AS STRING) id_setor_censitario, +SAFE_CAST(zona AS STRING) zona, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +from basedosdados-staging.br_geobr_mapas_staging.setor_censitario_2010 as t \ No newline at end of file diff --git a/models/br_geobr_mapas/br_geobr_mapas__uf.sql b/models/br_geobr_mapas/br_geobr_mapas__uf.sql new file mode 100644 index 00000000..789b1496 --- /dev/null +++ b/models/br_geobr_mapas/br_geobr_mapas__uf.sql @@ -0,0 +1,12 @@ +{{ + config( + alias='uf', + schema='br_geobr_mapas', + materialized='table', + ) + }} +SELECT +SAFE_CAST(id_uf AS STRING) id_uf, +SAFE_CAST(sigla_uf AS STRING) sigla_uf, +SAFE.ST_GEOGFROMTEXT(geometria) geometria +FROM basedosdados-staging.br_geobr_mapas_staging.uf AS t \ No newline at end of file diff --git a/models/br_geobr_mapas/schema.yml b/models/br_geobr_mapas/schema.yml new file mode 100644 index 00000000..2fd10a8a --- /dev/null +++ b/models/br_geobr_mapas/schema.yml @@ -0,0 +1,168 @@ +version: 2 + +models: + - name: br_geobr_mapas__municipio + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_municipio + description: ID Município IBGE - 7 Dígitos + - name: sigla_uf + description: Sigla da Unidade de Federação + - name: geometria + description: Multipoligono + + - name: br_geobr_mapas__microrregiao + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_uf + description: ID da Unidade de Federação + - name: sigla_uf + description: Sigla da Unidade de Federação + - name: id_microrregiao + description: ID da Microrregião - IBGE + - name: geometria + description: Polígono da microrregião + + - name: br_geobr_mapas__estabelecimentos_saude + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: ano + description: Ano + - name: sigla_uf + description: Sigla da Unidade de Federação + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + - name: id_cnes + description: Id estabelecimento - CNES + - name: geometria + description: Coordenadas do Estabelecimento de Saúde + + - name: br_geobr_mapas__escola + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: sigla_uf + description: Sigla da Unidade da Federação - IBGE + - name: id_escola + description: ID Escola - INEP + - name: geometria + description: Latitude e Longitude da Escola + + - name: br_geobr_mapas__regiao + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_regiao + description: Código da Região - IBGE + - name: nome_regiao + description: Nome da Região + - name: geometria + description: Polígonos das Regiões Brasileiras + + - name: br_geobr_mapas__regiao_intermediaria + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_uf + description: ID da Unidade da Federação + - name: sigla_uf + description: Sigla da Unidade da Federação + - name: id_regiao_intermediaria + description: ID da Região Intermediária - IBGE + - name: geometria + description: Polígono da Região Intermediária + + - name: br_geobr_mapas__saude + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_regiao_saude + description: ID Região de Saúde + - name: id_uf + description: ID da Unidade da Federação - IBGE + - name: sigla_uf + description: Sigla da Unidade da Federação + - name: geometria + description: Polígonos das regiões de saúde + + - name: br_geobr_mapas__semiarido + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_municipio + description: ID Município IBGE - 7 Dígitos + - name: sigla_uf + description: Sigla da Unidade de Federação + - name: geometria + description: Multipoligono da região do Semiárido + + - name: br_geobr_mapas__setor_censitario_2010 + description: Setores censitarios do Censo Brasileiro de 2010 + columns: + - name: id_setor_censitario + description: Identificador do setor censitário + - name: zona + description: Zona + - name: id_uf + description: ID da Unidade da Federação + - name: id_municipio + description: Identificador do município IBGE + - name: nome_municipio + description: Nome do município + - name: id_vizinhanca + description: Identificador da vizinhança + - name: nome_vizinhanca + description: Nome da vizinhança + - name: id_subdistrito + description: Identificador do substrito + - name: nome_subdistrito + description: Nome do substrito + - name: id_distrito + description: Identificador do distrito + - name: nome_distrito + description: Nome do distrito + - name: geometria + description: Polígono do setor censitário + - name: sigla_uf + description: Sigla da Unidade da Federação + + - name: br_geobr_mapas__uf + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_uf + description: ID da Unidade da Federação - IBGE + - name: sigla_uf + description: Sigla da Unidade da Federação + - name: geometria + description: Polígono da Unidade da Federação + + - name: br_geobr_mapas__bioma + description: Polígonos de todos o biomas presentes no território brasileiro e área costeira. + columns: + - name: id_bioma + description: Código do bioma + - name: nome_bioma + description: Nome do bioma + - name: geometria + description: Geometria + - name: ano + description: Ano + + - name: br_geobr_mapas__mesorregiao + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_uf + description: ID da Unidade da Federação + - name: sigla_uf + description: Sigla da Unidade da Federação + - name: id_mesorregiao + description: ID da Mesorregião - IBGE + - name: geometria + description: Polígono da Mesorregião + + - name: br_geobr_mapas__regiao_imediata + description: O geobr é um pacote R e Python que permite que os usuários acessem facilmente os shapefiles do Instituto Brasileiro de Geografia e Estatística (IBGE) e outros conjuntos oficiais de dados espaciais do Brasil. O pacote inclui uma ampla variedade de conjuntos de dados geográficos como recursos simples, disponíveis em várias escalas geográficas e por vários anos. + columns: + - name: id_uf + description: ID da Unidade da Federação + - name: sigla_uf + description: Sigla da Unidade da Federação + - name: id_regiao_imediata + description: ID da Região Imediata - IBGE + - name: geometria + description: Polígono da região imediata diff --git a/models/br_inep_enem/br_inep_enem__dicionario.sql b/models/br_inep_enem/br_inep_enem__dicionario.sql index e7d8d95d..378c67c7 100644 --- a/models/br_inep_enem/br_inep_enem__dicionario.sql +++ b/models/br_inep_enem/br_inep_enem__dicionario.sql @@ -11,4 +11,4 @@ SAFE_CAST(nome_coluna AS STRING) nome_coluna, SAFE_CAST(chave AS STRING) chave, SAFE_CAST(cobertura_temporal AS STRING) cobertura_temporal, SAFE_CAST(valor AS STRING) valor -FROM basedosdados-staging.br_inep_enem.dicionario AS t +FROM basedosdados-staging.br_inep_enem_staging.dicionario AS t diff --git a/models/br_inep_enem/code/main.py b/models/br_inep_enem/code/main.py index e12fcba4..ed2d1f52 100644 --- a/models/br_inep_enem/code/main.py +++ b/models/br_inep_enem/code/main.py @@ -288,14 +288,13 @@ def drop_temporal_cov(key, temporal_cov): ] ) -pd.concat([dict_microdados, dict_by_table]).to_parquet(f"{OUTPUT}/dicionario.parquet", index=False) # type: ignore +pd.concat([dict_microdados, dict_by_table]).to_csv(f"{OUTPUT}/dicionario.csv", index=False) # type: ignore # Upload dictionary tb = bd.Table(dataset_id="br_inep_enem", table_id="dicionario") tb.create( - path=f"{OUTPUT}/dicionario.parquet", + path=f"{OUTPUT}/dicionario.csv", if_table_exists="replace", if_storage_data_exists="replace", - source_format="parquet", )