Skip to content

Commit

Permalink
chore: refactor 1746
Browse files Browse the repository at this point in the history
  • Loading branch information
d116626 committed Mar 1, 2024
2 parents 191b7e7 + 14e7d29 commit 953be45
Show file tree
Hide file tree
Showing 23 changed files with 2,666 additions and 2,401 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/cd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
run: echo "$DBT_CREDENTIALS_DEV" > credentials/dev.json

- name: Install dbt
run: pip install dbt-core dbt-bigquery
run: pip install dbt-core dbt-bigquery setuptools

- name: Compile dbt models
run: dbt compile --profiles-dir . --profile default --target compile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dbt-compile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
run: echo "$DBT_CREDENTIALS_DEV" > credentials/dev.json

- name: Install dbt
run: pip install dbt-core dbt-bigquery
run: pip install dbt-core dbt-bigquery setuptools

- name: Compile dbt models
run: dbt compile --profiles-dir . --profile default --target compile
Expand Down
3 changes: 3 additions & 0 deletions dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,6 @@ models:
transporte_rodoviario_municipal:
+materialized: table
+schema: transporte_rodoviario_municipal
turismo_fluxo_visitantes:
+materialized: table
+schema: turismo_fluxo_visitantes
3,072 changes: 1,603 additions & 1,469 deletions metadata.json

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions models/adm_cor_comando/ocorrencias_nova_api.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{{
config(
materialized='incremental',
unique_key="id_evento",
partition_by={
"field": "data_particao",
"data_type": "date",
"granularity": "month",
}
)
}}

SELECT
*
FROM `rj-cor.adm_cor_comando.ocorrencias_nova_api`
WHERE data_particao < CURRENT_DATE('America/Sao_Paulo')


{% if is_incremental() %}

{% set max_partition = run_query("SELECT gr FROM (SELECT IF(max(data_particao) > CURRENT_DATE('America/Sao_Paulo'), CURRENT_DATE('America/Sao_Paulo'), max(data_particao)) as gr FROM " ~ this ~ ")").columns[0].values()[0] %}

AND
data_particao > ("{{ max_partition }}")

{% endif %}
143 changes: 90 additions & 53 deletions models/adm_cor_comando/schema.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
version: 2
models :
- name: ocorrencias
description: "**Descrição**: Ocorrências disparadas pelo COR desde 2015. Uma ocorrência\
\ na cidade do Rio de Janeiro é um acontecimento que exije um acompanhamento\
\ e, na maioria das vezes, uma ação da PCRJ. Por exemplo, Buraco na pista, bolsão\
\ d'água, enguiço mecânico. Uma ocorrência aberta é uma ocorrência que ainda\
\ não foi solucionada. Acesse também através da API do Escritório de Dados:\
\ https://api.dados.rio/v1/\n**Frequência de atualização**: Diário\n**Cobertura\
\ temporal**: Não informado.\n**Órgão gestor dos dados**: COR\n**Publicado por**:\
\ Patrícia Catandi\n**Publicado por (email)**: [email protected]\n"
- name: ocorrencias_nova_api
description: "**Descrição**: Ocorrências disparadas pelo COR desde 2015. Uma ocorrência
na cidade do Rio de Janeiro é um acontecimento que exije um acompanhamento
e, na maioria das vezes, uma ação da PCRJ. Por exemplo, Buraco na pista, bolsão
d'água, enguiço mecânico. Uma ocorrência aberta é uma ocorrência que ainda não
foi solucionada. Acesse também através da API do Escritório de Dados: https://api.dados.rio/v1/\n
**Frequência de atualização**: Diário\n**Cobertura temporal**: Não informado.\n
**Órgão gestor dos dados**: COR\n**Publicado por**: Patrícia Catandi\n**Publicado
por (email)**: [email protected]\n"
columns:
- name: data_inicio
description: Data e hora do registro do evento na PCRJ.
Expand Down Expand Up @@ -36,17 +36,48 @@ models :
description: Descrição do evento.
- name: tipo
description: Tipo do evento (PRIMARIO, SECUNDARIO)

- name: ocorrencias_orgaos_responsaveis
description: "**Descrição**: Orgãos responsáveis por atender cada uma das ocorrências.
Cada ocorrência necessita o acionamento de diferentes órgãos para atender atividades
distintas. Aqui são descritas as atividades que estão sendo executadas ou que
foram executadas para a solução de uma ocorrência. Uma ocorrência na cidade
do Rio de Janeiro é um acontecimento que exije um acompanhamento e, na maioria
das vezes, uma ação da PCRJ. Por exemplo, Buraco na pista, bolsão d'água, enguiço
mecânico. Uma ocorrência aberta é uma ocorrência que ainda não foi solucionada.
Acesse também através da API do Escritório de Dados: https://api.dados.rio/v1/\n
**Frequência de atualização**: Diário\n**Cobertura temporal**: Não informado.\n
**Órgão gestor dos dados**: COR\n**Publicado por**: Patrícia Catandi\n**Publicado
por (email)**: [email protected]\n"
columns:
- name: data_inicio
description: Data e hora do início da atividade.
- name: data_fim
description: Data e hora do fim da atividade.
- name: sigla
description: Sigla do órgão que está realizando ou realizou a atividade.
- name: descricao
description: Descrição da atividade.
- name: id_evento
description: Identificador do evento ao qual está ligada a atividade.
- name: status
description: Status da atividade (ABERTO, FECHADO).
- name: data_chegada
description: Data e hora da chegada da atividade.
- name: primary_key
description: Chave primária criada a partir da concatenação da coluna id_evento,
sigla e descricao. Serve para evitar dados duplicados.
- name: procedimento_operacional_padrao_orgaos_responsaveis
description: "**Descrição**: Um Procedimento operacional padrão (POP) é um procedimento\
\ que será usado para solucionar uma ocorrência. Cada ocorrência necessita o\
\ acionamento de diferentes órgãos para atender atividades distintas. Uma ocorrência\
\ na cidade do Rio de Janeiro é um acontecimento que exije um acompanhamento\
\ e, na maioria das vezes, uma ação da PCRJ. Por exemplo, Buraco na pista, bolsão\
\ d'água, enguiço mecânico. Uma ocorrência aberta é uma ocorrência que ainda\
\ não foi solucionada. Acesse também através da API do Escritório de Dados:\
\ https://api.dados.rio/v1/\n**Frequência de atualização**: Mensal\n**Cobertura\
\ temporal**: Não informado.\n**Órgão gestor dos dados**: COR\n**Publicado por**:\
\ Patrícia Catandi\n**Publicado por (email)**: [email protected]\n"
description: "**Descrição**: Um Procedimento operacional padrão (POP) é um procedimento
que será usado para solucionar uma ocorrência. Cada ocorrência necessita o acionamento
de diferentes órgãos para atender atividades distintas. Uma ocorrência na cidade
do Rio de Janeiro é um acontecimento que exije um acompanhamento e, na maioria
das vezes, uma ação da PCRJ. Por exemplo, Buraco na pista, bolsão d'água, enguiço
mecânico. Uma ocorrência aberta é uma ocorrência que ainda não foi solucionada.
Acesse também através da API do Escritório de Dados: https://api.dados.rio/v1/\n
**Frequência de atualização**: Mensal\n**Cobertura temporal**: Não informado.\n
**Órgão gestor dos dados**: COR\n**Publicado por**: Patrícia Catandi\n**Publicado
por (email)**: [email protected]\n"
columns:
- name: id_pop
description: ID do POP ao qual a atividade está ligada.
Expand All @@ -57,46 +88,52 @@ models :
- name: acao
description: Descrição da atividade.
- name: procedimento_operacional_padrao
description: "**Descrição**: Procedimentos operacionais padrões (POP) existentes\
\ na PCRJ. Um POP é um procedimento que será usado para solucionar um evento.\
\ Um POP é composto de várias atividades. Um evento é uma ocorrência na cidade\
\ do Rio de Janeiro que exija um acompanhamento e na maioria das vezes uma ação\
\ da PCRJ, como por exemplo um buraco na rua. Acesse também através da API do\
\ Escritório de Dados: https://api.dados.rio/v1/\n**Frequência de atualização**:\
\ Mensal\n**Cobertura temporal**: Não informado.\n**Órgão gestor dos dados**:\
\ COR\n**Publicado por**: Patrícia Catandi\n**Publicado por (email)**: [email protected]\n"
description: "**Descrição**: Procedimentos operacionais padrões (POP) existentes
na PCRJ. Um POP é um procedimento que será usado para solucionar um evento.
Um POP é composto de várias atividades. Um evento é uma ocorrência na cidade
do Rio de Janeiro que exija um acompanhamento e na maioria das vezes uma ação
da PCRJ, como por exemplo um buraco na rua. Acesse também através da API do
Escritório de Dados: https://api.dados.rio/v1/\n**Frequência de atualização**:
Mensal\n**Cobertura temporal**: Não informado.\n**Órgão gestor dos dados**:
COR\n**Publicado por**: Patrícia Catandi\n**Publicado por (email)**: [email protected]\n"
columns:
- name: id_pop
description: Identificador do POP procedimento operacional padrão).
- name: pop_titulo
description: Nome do procedimento operacional padrão.
- name: ocorrencias_orgaos_responsaveis
description: "**Descrição**: Orgãos responsáveis por atender cada uma das ocorrências.\
\ Cada ocorrência necessita o acionamento de diferentes órgãos para atender\
\ atividades distintas. Aqui são descritas as atividades que estão sendo executadas\
\ ou que foram executadas para a solução de uma ocorrência. Uma ocorrência na\
\ cidade do Rio de Janeiro é um acontecimento que exije um acompanhamento e,\
\ na maioria das vezes, uma ação da PCRJ. Por exemplo, Buraco na pista, bolsão\
\ d'água, enguiço mecânico. Uma ocorrência aberta é uma ocorrência que ainda\
\ não foi solucionada. Acesse também através da API do Escritório de Dados:\
\ https://api.dados.rio/v1/\n**Frequência de atualização**: Diário\n**Cobertura\
\ temporal**: Não informado.\n**Órgão gestor dos dados**: COR\n**Publicado por**:\
\ Patrícia Catandi\n**Publicado por (email)**: [email protected]\n"
- name: ocorrencias
description: "**Descrição**: Ocorrências disparadas pelo COR desde 2015. Uma ocorrência
na cidade do Rio de Janeiro é um acontecimento que exije um acompanhamento
e, na maioria das vezes, uma ação da PCRJ. Por exemplo, Buraco na pista, bolsão
d'água, enguiço mecânico. Uma ocorrência aberta é uma ocorrência que ainda não
foi solucionada. Acesse também através da API do Escritório de Dados: https://api.dados.rio/v1/\n
**Frequência de atualização**: Diário\n**Cobertura temporal**: Não informado.\n
**Órgão gestor dos dados**: COR\n**Publicado por**: Patrícia Catandi\n**Publicado
por (email)**: [email protected]\n"
columns:
- name: data_inicio
description: Data e hora do início da atividade.
description: Data e hora do registro do evento na PCRJ.
- name: data_fim
description: Data e hora do fim da atividade.
- name: sigla
description: Sigla do órgão que está realizando ou realizou a atividade.
- name: descricao
description: Descrição da atividade.
- name: id_evento
description: Identificador do evento ao qual está ligada a atividade.
description: Data e hora do encerramento do evento na PCRJ. O evento é encerrado
quando é solucionado. Este atributo está vazio quanto o evento está aberto.
- name: bairro
description: Bairro onde ocorreu o evento.
- name: id_pop
description: Identificador do POP.
- name: status
description: Status da atividade (ABERTO, FECHADO).
- name: data_chegada
description: Data e hora da chegada da atividade.
- name: primary_key
description: Chave primária criada a partir da concatenação da coluna id_evento,
sigla e descricao. Serve para evitar dados duplicados.
description: Status do evento (ABERTO, FECHADO).
- name: gravidade
description: Gravidade do evento (BAIXO, MEDIO, ALTO, CRITICO).
- name: prazo
description: Prazo esperado de solução do evento (CURTO, MEDIO(acima de 3
dias), LONGO( acima de 5 dias)).
- name: latitude
description: Latitude em formato WGS-84 em que ocorreu o evento
- name: longitude
description: Longitude em formato WGS-84 em que ocorreu o evento
- name: id_evento
description: Identificador do evento.
- name: descricao
description: Descrição do evento.
- name: tipo
description: Tipo do evento (PRIMARIO, SECUNDARIO)
1 change: 1 addition & 0 deletions models/clima_estacao_meteorologica/estacoes_redemet.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SELECT * FROM `rj-cor.clima_estacao_meteorologica.estacoes_redemet`
32 changes: 32 additions & 0 deletions models/clima_estacao_meteorologica/meteorologia_redemet.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{{
config(
materialized='incremental',
unique_key="primary_key",
partition_by={
"field": "data_particao",
"data_type": "date",
"granularity": "month",
},
post_hook='CREATE OR REPLACE TABLE `rj-cor.clima_estacao_meteorologica_staging.meteorologia_redemet_last_partition_datario` AS (SELECT CURRENT_DATE("America/Sao_Paulo") AS data_particao)'
)
}}

SELECT
*
FROM `rj-cor.clima_estacao_meteorologica.meteorologia_redemet`

{% if is_incremental() %}

{% set max_partition = run_query(
"SELECT DATE(gr) FROM (
SELECT IF(
max(data_particao) > CURRENT_DATE('America/Sao_Paulo'), CURRENT_DATE('America/Sao_Paulo'), max(data_particao)
) as gr
FROM `rj-cor.clima_estacao_meteorologica_staging.meteorologia_redemet_last_partition_datario`
)
").columns[0].values()[0] %}

WHERE
data_particao >= ("{{ max_partition }}")

{% endif %}
70 changes: 59 additions & 11 deletions models/clima_estacao_meteorologica/schema.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,61 @@
version: 2
models :
- name: estacoes_redemet
description: "**Descrição**: Dados sobre as estações meteorológicas da REDEMET
(Rede de Meteorologia do Comando da Aeronáutica) na cidade do Rio de Janeiro.\n
**Frequência de atualização**: Mensal\n**Cobertura temporal**: N/A\n**Órgão
gestor dos dados**: REDEMET\n**Publicado por**: Patricia Catandi\n**Publicado
por (email)**: [email protected]\n"
columns:
- name: id_estacao
description: Código da estação definido pela REDEMET.
- name: estacao
description: Nome da estação.
- name: latitude
description: Latitude onde a estação se encontra.
- name: longitude
description: Longitude onde a estação se encontra.
- name: altitude
description: Altitude onde a estação se encontra em metros.
- name: data_atualizacao
description: Última data em que os dados foram atualizados.
- name: meteorologia_redemet
description: "**Descrição**: Dados meteorológicos obtidos das estações meteorológicas
dos aeródromos (aeroportos e bases aéreas) na cidade do Rio de Janeiro.\r\n
As medidas são feitas de hora em hora, cada registro contendo dados destas medidas
para cada estação.\n**Frequência de atualização**: Diário\n**Cobertura temporal**:
Desde 2003 até data corrente\n**Órgão gestor dos dados**: REDEMET\n**Publicado
por**: Richard Gatinho\n**Publicado por (email)**: [email protected]\n"
columns:
- name: primary_key
description: Chave primária criada a partir da coluna id_estacao e da data_medicao.
Serve para evitar dados duplicados.
- name: id_estacao
description: Código ICAO do aeródromo da estação.
- name: data_particao
description: Data em que foi realizada a medição
- name: data_medicao
description: Horário no qual foi realizada a medição
- name: temperatura
description: Temperatura na medição instantânea na estação.
- name: umidade
description: Umidade relativa do ar instantânea na estação.
- name: condicoes_tempo
description: Condições de tempo instantâneas na estação.
- name: ceu
description: Condições de céu instantâneas na estação.
- name: teto
description: Condições de formação de teto instantâneas na estação.
- name: visibilidade
description: Condições de visibilidade instantâneas na estação.
- name: meteorologia_inmet
description: "**Descrição**: Dados meteorológicos obtidos nas estações meteorológicas\
\ do INMET ( Instituto Nacional de Meteorologia ) na cidade do Rio de Janeiro.\r\
\nAs medidas são feitas de hora em hora, cada registro contendo dados destas\
\ medidas para cada estação. \r\nEntre os dados temos horário da medição, acumulado\
\ de chuva em 1 hora, direção e velocidade do vento, temperatura, pressão atmosférica,\
\ umidade e radiação global.\n**Frequência de atualização**: Diário\n**Cobertura\
\ temporal**: Desde 2010 até data corrente\n**Órgão gestor dos dados**: INMET\n\
description: "**Descrição**: Dados meteorológicos obtidos nas estações meteorológicas
do INMET ( Instituto Nacional de Meteorologia ) na cidade do Rio de Janeiro.\r
\nAs medidas são feitas de hora em hora, cada registro contendo dados destas
medidas para cada estação. \r\nEntre os dados temos horário da medição, acumulado
de chuva em 1 hora, direção e velocidade do vento, temperatura, pressão atmosférica,
umidade e radiação global.\n**Frequência de atualização**: Diário\n**Cobertura
temporal**: Desde 2010 até data corrente\n**Órgão gestor dos dados**: INMET\n
**Publicado por**: Patrícia Catandi\n**Publicado por (email)**: [email protected]\n"
columns:
- name: id_estacao
Expand Down Expand Up @@ -52,10 +100,10 @@ models :
description: Chave primária criada a partir da concatenação da coluna id_estacao,
data e horário Serve para evitar dados duplicados.
- name: estacoes_inmet
description: "**Descrição**: Dados sobre as estações meteorológicas do inmet (\
\ Instituto Nacional de Meteorologia ) na cidade do Rio de Janeiro.\n**Frequência\
\ de atualização**: Nunca\n**Cobertura temporal**: N/A\n**Órgão gestor dos dados**:\
\ INMET\n**Publicado por**: Patricia Catandi\n**Publicado por (email)**: [email protected]\n"
description: "**Descrição**: Dados sobre as estações meteorológicas do inmet (
Instituto Nacional de Meteorologia ) na cidade do Rio de Janeiro.\n**Frequência
de atualização**: Nunca\n**Cobertura temporal**: N/A\n**Órgão gestor dos dados**:
INMET\n**Publicado por**: Patricia Catandi\n**Publicado por (email)**: [email protected]\n"
columns:
- name: sigla_uf
description: Sigla do estado.
Expand Down
1 change: 1 addition & 0 deletions models/clima_pluviometro/estacoes_cemaden.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SELECT * FROM `rj-cor.clima_pluviometro.estacoes_cemaden`
Loading

0 comments on commit 953be45

Please sign in to comment.