Skip to content

Commit

Permalink
adds coordinates raw model; improves ap model; adds geolocation on mv…
Browse files Browse the repository at this point in the history
…a; adds tags to models
  • Loading branch information
miloskimatheus committed Feb 21, 2025
1 parent 3653502 commit b423268
Show file tree
Hide file tree
Showing 8 changed files with 173 additions and 18 deletions.
15 changes: 11 additions & 4 deletions dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,14 @@ models:
dado_sensivel: nao
area_programatica:
+schema: brutos_area_programatica
+tags: "daily"
+tags: ["weekly", "subgeral", "monitora_reg", "cnes_subgeral"]
+labels:
dado_publico: sim
dado_pessoal: nao
dado_sensivel: nao
geo_pgeo3:
+schema: brutos_geo_pgeo3
+tags: ["weekly", "subgeral", "monitora_reg", "cnes_subgeral"]
+labels:
dado_publico: sim
dado_pessoal: nao
Expand Down Expand Up @@ -239,15 +246,15 @@ models:
dado_sensivel: nao
rio:
+schema: saude_rio
+tags: ["weekly", "saude_rio", "subgeral"]
+tags: ["weekly", "saude_rio", "subgeral", "cnes_subgeral"]
+labels:
dado_publico: sim
dado_pessoal: sim
dado_sensivel: nao
facts:
sisreg:
+schema: saude_sisreg
+tags: "daily"
+tags: ["daily", "cnes", "sisreg"]
+labels:
dado_publico: nao
dado_pessoal: nao
Expand Down Expand Up @@ -325,7 +332,7 @@ models:
dominio: subgeral
sisreg_reports:
+schema: projeto_sisreg_reports
+tags: ["weekly", "subgeral", "sisreg_reports"]
+tags: ["weekly", "subgeral", "sisreg", "sisreg_reports"]
+labels:
dado_publico: nao
dado_pessoal: sim
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,23 @@ with
from {{ ref("raw_area_programatica__bairros_aps") }}
),

-- Obtendo latitudes e longitudes dos estabelecimentos de saúde
coordenadas as (
select id_cnes, latitude_api, longitude_api
from
(
select
id_cnes,
latitude_api,
longitude_api,
row_number() over (
partition by id_cnes order by data_extracao desc
) as rn
from {{ ref("raw_geo_pgeo3__estabelecimentos_coordenadas") }}
)
where rn = 1
),

-- Obtendo atributos de contato para os estabelecimentos
contatos_aps as (
select id_cnes, telefone, email, facebook, instagram, twitter
Expand Down Expand Up @@ -155,8 +172,12 @@ with
cnes_web.endereco_logradouro,
cnes_web.endereco_numero,
cnes_web.endereco_complemento,
cnes_web.endereco_latitude,
cnes_web.endereco_longitude,
coalesce(
cnes_web.endereco_latitude, coordenadas.latitude_api
) as endereco_latitude,
coalesce(
cnes_web.endereco_longitude, coordenadas.longitude_api
) as endereco_longitude,
cnes_web.id_motivo_desativacao,
cnes_web.id_unidade,
cnes_web.aberto_sempre,
Expand Down Expand Up @@ -248,6 +269,10 @@ with
on cast(brutos.id_estabelecimento_cnes as int64)
= cast(contatos_aps.id_cnes as int64)
left join aps_tb on cnes_web.endereco_bairro = aps_tb.bairro
left join
coordenadas
on cast(brutos.id_estabelecimento_cnes as int64)
= cast(coordenadas.id_cnes as int64)
),

-- Seleção final
Expand Down
16 changes: 16 additions & 0 deletions models/raw/area_programatica/_area_programatica_schema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
models:
- name: raw_area_programatica__bairros_aps
description: As Áreas Programáticas de Saúde do Rio de Janeiro são 10 grandes regiões que dividem a cidade para fins de planejamento e gestão. Essa divisão facilita a organização do sistema de saúde e permite identificar e abordar problemas específicos de cada área.
columns:
- name: bairro
description: A coluna 'bairro' representa o nome do bairro na cidade do Rio de Janeiro.
data_type: string
quote: true
- name: ap
description: A coluna 'ap' representa o código da Área Programática, um identificador único para cada uma das 10 Áreas Programáticas da cidade do Rio de Janeiro.
data_type: int64
quote: true
- name: ap_titulo
description: A coluna 'ap_titulo' representa o nome ou título da Área Programática correspondente.
data_type: string
quote: true
2 changes: 0 additions & 2 deletions models/raw/area_programatica/_area_programatica_sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,3 @@ sources:
schema: brutos_area_programatica_staging
tables:
- name: bairros_aps


Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
{{
config(
alias="bairros_aps",
schema= "brutos_area_programatica"
)
}}
{{ config(alias="bairros_aps", schema="brutos_area_programatica") }}

with source as (
select * from {{ source('brutos_area_programatica_staging', 'bairros_aps') }}
)
with
source as (
select bairro, ap, ap_titulo
from {{ source("brutos_area_programatica_staging", "bairros_aps") }}
)

select *
from source
from source
64 changes: 64 additions & 0 deletions models/raw/geo_pgeo3/_geo_pgeo3_schema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
models:
- name: raw_geo_pgeo3__estabelecimentos_coordenadas
description: O modelo raw_geo_pgeo3__estabelecimentos_coordenadas contém dados geográficos relacionados a estabelecimentos de saúde. Estes dados são municipais, provenientes da API do IPP.
columns:
- name: id_cnes
description: Esta coluna representa o identificador único do estabelecimento de saúde. É um número de sete dígitos, preenchido com zeros à esquerda caso o número original tenha menos de sete dígitos.
data_type: string
quote: true
- name: endereco_cep
description: Esta coluna representa o Código de Endereçamento Postal (CEP) do endereço do estabelecimento de saúde. É um número de oito dígitos, preenchido com zeros à esquerda caso o número original tenha menos de oito dígitos.
data_type: string
quote: true
- name: endereco_bairro
description: Esta coluna representa o bairro do endereço do estabelecimento de saúde.
data_type: string
quote: true
- name: endereco_logradouro
description: Esta coluna contém o nome da rua do estabelecimento.
data_type: string
quote: true
- name: endereco_numero
description: Esta coluna contém o número do endereço do estabelecimento.
data_type: string
quote: true
- name: latitude_cep
description: Esta coluna contém a latitude do estabelecimento com base no CEP.
data_type: float64
quote: true
- name: longitude_cep
description: Esta coluna representa a longitude do CEP do estabelecimento.
data_type: float64
quote: true
- name: latitude_addr
description: Esta coluna representa a latitude do endereço do estabelecimento.
data_type: float64
quote: true
- name: longitude_addr
description: Esta coluna representa a longitude do endereço do estabelecimento.
data_type: float64
quote: true
- name: latitude_api
description: Latitude final à ser considerada (Tenta preencher com addr, e caso não consiga, tenta preencher com cep).
data_type: float64
quote: true
- name: longitude_api
description: Longitude final à ser considerada (Tenta preencher com addr, e caso não consiga, tenta preencher com cep).
data_type: float64
quote: true
- name: data_extracao
description: A data e hora em que os dados foram extraídos.
data_type: datetime
quote: true
- name: ano_particao
description: Esta coluna representa o ano da partição.
data_type: int64
quote: true
- name: mes_particao
description: Esta coluna representa o mês da partição.
data_type: int64
quote: true
- name: data_particao
description: Esta coluna representa a data da partição. É baseada na data_extração, e é utilizada para fins de organização dos dados e consultas mais rápidas.
data_type: date
quote: true
8 changes: 8 additions & 0 deletions models/raw/geo_pgeo3/_geo_pgeo3_sources.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2

sources:
- name: brutos_geo_pgeo3_staging
database: rj-sms
schema: brutos_geo_pgeo3_staging
tables:
- name: estabelecimentos_coordenadas
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{{
config(
schema="brutos_geo_pgeo3",
alias="estabelecimentos_coordenadas",
partition_by={
"field": "data_particao",
"data_type": "date",
"granularity": "month",
},
)
}}

with
source as (
select
lpad(id_cnes, 7, '0') as id_cnes,
lpad(endereco_cep, 8, '0') as endereco_cep,

endereco_bairro,
endereco_logradouro,
endereco_numero,

safe_cast(latitude_cep as float64) as latitude_cep,
safe_cast(longitude_cep as float64) as longitude_cep,
safe_cast(latitude_addr as float64) as latitude_addr,
safe_cast(longitude_addr as float64) as longitude_addr,
safe_cast(latitude_api as float64) as latitude_api,
safe_cast(longitude_api as float64) as longitude_api,

safe_cast(data_extracao as datetime) as data_extracao,
safe_cast(ano_particao as int64) as ano_particao,
safe_cast(mes_particao as int64) as mes_particao,
safe_cast(data_particao as date) as data_particao

from {{ source("brutos_geo_pgeo3_staging", "estabelecimentos_coordenadas") }}

)

select *
from source

0 comments on commit b423268

Please sign in to comment.