Skip to content

Commit

Permalink
Merge pull request #231 from prefeitura-rio/subgeral_minhasaude_mongodb
Browse files Browse the repository at this point in the history
[MINHA SAUDE] Mongo DB  - Acessos
  • Loading branch information
TanookiVerde authored Feb 21, 2025
2 parents b346aea + afa9b25 commit bc0d29f
Show file tree
Hide file tree
Showing 4 changed files with 180 additions and 21 deletions.
2 changes: 1 addition & 1 deletion dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ models:
dado_sensivel: nao
minhasaude_mongodb:
+schema: brutos_minhasaude_mongodb
+tags: ["daily", "minhasaude"]
+tags: ["daily", "minhasaude", "subgeral"]
+labels:
dado_publico: nao
dado_pessoal: sim
Expand Down
112 changes: 112 additions & 0 deletions models/raw/minhasaude_mongodb/_minhasaude_mongodb__schema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
models:
- name: raw_minhasaude_mongodb__perfil_acessos
description: Representa a coleção 'perfil_acessos' do MongoDB, responsável por armazenar o perfil dos usuários do Minha Saúde Rio. Esta tabela exibe apenas os registros mais recentes, definidos com base na data de extração.
columns:
- name: _id
description: Identificador único de cada registro na tabela.
data_type: string
quote: true
- name: idmodulo
description: Identificador do módulo associado ao perfil de acesso do usuário.
data_type: string
quote: true
- name: idusuario
description: Identificador único do usuário associado ao perfil de acesso.
data_type: string
quote: true
- name: nome
description: Representa o nome do usuário.
data_type: string
quote: true
- name: cpf
description: O campo 'cpf' representa o CPF (Cadastro de Pessoas Físicas) do usuário.
data_type: string
quote: true
- name: cns
description: O campo 'cns' representa o Cartão Nacional de Saúde (CNS) do usuário.
data_type: string
quote: true
- name: logingovbr
description: Indica se o usuário efetuou login utilizando o portal oficial do governo (gov.br).
data_type: boolean
quote: true
- name: origem
description: Indica a fonte de onde o usuário acessou o serviço. Pode ser, por exemplo, 'web', 'android', 'ios'.
data_type: string
quote: true
- name: createdat
description: Indica a data e hora em que o registro de acesso do usuário foi criado.
data_type: datetime
quote: true
- name: updatedat
description: Indica a data e hora em que o registro foi atualizado pela última vez.
data_type: datetime
quote: true
- name: __v
description: Campo de versão do documento no MongoDB, usado internamente para evitar conflitos em operações simultâneas.
data_type: string
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

- name: raw_minhasaude_mongodb__modulos_perfil_acessos
description: Representa a coleção 'modulos_perfil_acessos' do MongoDB, responsável por armazenar os acessos dos usuários do Minha Saúde Rio. Esta tabela exibe apenas os registros mais recentes, definidos com base na data de extração.
columns:
- name: _id
description: Identificador único de cada registro na tabela.
data_type: string
quote: true
- name: rota
description: Indica a rota associada ao módulo.
data_type: string
quote: true
- name: nome
description: Representa o nome do módulo.
data_type: string
quote: true
- name: descricao
description: Descrição do módulo de perfil de acesso.
data_type: string
quote: true
- name: createdat
description: Indica a data e hora em que o registro do módulo foi criado.
data_type: datetime
quote: true
- name: updatedat
description: Indica a data e hora em que o registro foi atualizado pela última vez.
data_type: datetime
quote: true
- name: __v
description: Campo de versão do documento no MongoDB, usado internamente para evitar conflitos em operações simultâneas.
data_type: string
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 em 'data_extracao' e utilizada para organização dos dados e consultas mais rápidas.
data_type: date
quote: true
Original file line number Diff line number Diff line change
@@ -1,15 +1,36 @@
{{ config(alias="modulos_perfil_acessos") }}

{{
config(
schema="brutos_minhasaude_mongodb",
alias="modulos_perfil_acessos",
partition_by={
"field": "data_particao",
"data_type": "date",
"granularity": "month",
},
)
}}

with
source as (
select *
from
{{
source(
"brutos_minhasaude_mongodb_staging", "modulos_perfil_acessos"
)
}}
select
_id,

rota,
nome,
descricao,

safe_cast(createdat as datetime) as createdat,
safe_cast(updatedat as datetime) as updatedat,

__v,

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_minhasaude_mongodb_staging", "modulos_perfil_acessos") }}
)

select *
from source
from source
where data_extracao = (select max(data_extracao) from source)
Original file line number Diff line number Diff line change
@@ -1,15 +1,41 @@
{{ config(alias="perfil_acessos") }}

{{
config(
schema="brutos_minhasaude_mongodb",
alias="perfil_acessos",
partition_by={
"field": "data_particao",
"data_type": "date",
"granularity": "month",
},
)
}}

with
source as (
select *
from
{{
source(
"brutos_minhasaude_mongodb_staging", "perfil_acessos"
)
}}
select
_id,
idmodulo,
idusuario,

nome,
lpad(cpf, 11, '0') as cpf,
lpad(cns, 15, '0') as cns,

safe_cast(logingovbr as bool) as logingovbr,
origem,

safe_cast(createdat as datetime) as createdat,
safe_cast(updatedat as datetime) as updatedat,

__v,

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_minhasaude_mongodb_staging", "perfil_acessos") }}
)

select *
from source
from source
where data_extracao = (select max(data_extracao) from source)

0 comments on commit bc0d29f

Please sign in to comment.