Skip to content

Commit

Permalink
Merge branch 'main' into add_format_sql
Browse files Browse the repository at this point in the history
  • Loading branch information
mergify[bot] authored Jan 23, 2025
2 parents 91c0541 + 92ab7be commit 37f7358
Show file tree
Hide file tree
Showing 9 changed files with 460 additions and 387 deletions.
8 changes: 7 additions & 1 deletion pipelines/migration/projeto_subsidio_sppo/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
# Changelog - projeto_subsidio_sppo

## [1.0.9] - 2025-01-23

### Alterado

- Remove parâmetro `stu_data_versao` do flow `subsidio_sppo_apuracao` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/395)

## [1.0.8] - 2025-01-03

### Corrigido

- corrigida a materialização dos modelos do dataset `monitoramento` no flow do subsídio (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/391)
- Corrigida a materialização dos modelos do dataset `monitoramento` no flow do subsídio (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/391)

## [1.0.7] - 2025-01-03

Expand Down
2 changes: 0 additions & 2 deletions pipelines/migration/projeto_subsidio_sppo/flows.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,6 @@

end_date = merge(end_date_get, end_date_def)

stu_data_versao = Parameter("stu_data_versao", default="")
materialize_sppo_veiculo_dia = Parameter("materialize_sppo_veiculo_dia", True)
test_only = Parameter("test_only", False)
# publish = Parameter("publish", False)
Expand Down Expand Up @@ -182,7 +181,6 @@
parameters = {
"start_date": start_date,
"end_date": end_date,
"stu_data_versao": stu_data_versao,
}

SPPO_VEICULO_DIA_RUN = create_flow_run(
Expand Down
5 changes: 5 additions & 0 deletions pipelines/migration/veiculo/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog - veiculo

## [1.1.1] - 2025-01-23

### Alterado
- Remove parâmetro `stu_data_versao` do flow `sppo_veiculo_dia` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/395)

## [1.1.0] - 2025-01-16

### Alterado
Expand Down
6 changes: 2 additions & 4 deletions pipelines/migration/veiculo/flows.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""
Flows for veiculos
DBT: 2025-01-21
DBT: 2025-01-22
"""

from copy import deepcopy
Expand Down Expand Up @@ -223,7 +223,6 @@
# Get default parameters #
start_date = Parameter("start_date", default=get_previous_date.run(1))
end_date = Parameter("end_date", default=get_previous_date.run(1))
stu_data_versao = Parameter("stu_data_versao", default="")

run_dates = get_run_dates(start_date, end_date)

Expand All @@ -243,8 +242,7 @@
dataset_id=smtr_constants.VEICULO_DATASET_ID.value,
)

dict_list = get_join_dict(dict_list=run_dates, new_dict=dataset_sha)
_vars = get_join_dict(dict_list=dict_list, new_dict={"stu_data_versao": stu_data_versao})
_vars = get_join_dict(dict_list=run_dates, new_dict=dataset_sha)

# 2. TREAT #
run_dbt_model.map(
Expand Down
1 change: 0 additions & 1 deletion queries/dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@ vars:
sppo_infracao_staging: "rj-smtr-staging.veiculo_staging.sppo_infracao"
sppo_registro_agente_verao_staging: "rj-smtr-staging.veiculo_staging.sppo_registro_agente_verao"
sppo_licenciamento_solicitacao_data_versao: "2023-02-06"
stu_data_versao: ""
# Prazo para última vistoria realizada dentro do período válido
sppo_licenciamento_validade_vistoria_ano: 1
# Tolerância de vistoria para veículos novos
Expand Down
49 changes: 31 additions & 18 deletions queries/macros/get_license_date.sql
Original file line number Diff line number Diff line change
@@ -1,19 +1,32 @@
{% macro get_license_date() %}
SELECT
CASE
{% if var("stu_data_versao") != "" %}
WHEN "{{ var('stu_data_versao') }}" != "" THEN DATE("{{ var('stu_data_versao') }}")
{% endif %}
--- Versão fixa do STU em 2024-03-25 para mar/Q1 devido à falha de atualização na fonte da dados (SIURB)
WHEN DATE("{{ var('run_date') }}") >= "2024-03-01" AND DATE("{{ var('run_date') }}") < "2024-03-16" THEN DATE("2024-03-25")
-- Versão fixa do STU em 2024-04-09 para mar/Q2 devido à falha de atualização na fonte da dados (SIURB)
WHEN DATE("{{ var('run_date') }}") >= "2024-03-16" AND DATE("{{ var('run_date') }}") < "2024-04-01" THEN DATE("2024-04-09")
ELSE (
SELECT MIN(DATE(data))
FROM {{ ref("licenciamento_stu_staging") }}
WHERE DATE(data) >= DATE_ADD(DATE("{{ var('run_date') }}"), INTERVAL 5 DAY)
-- Admite apenas versões do STU igual ou após 2024-04-09 a partir de abril/24 devido à falha de atualização na fonte da dados (SIURB)
AND (DATE("{{ var('run_date') }}") < "2024-04-01" OR DATE(data) >= '2024-04-09')
)
END
{% endmacro %}
select
case
/* Versão fixa do STU em 2024-03-25 para mar/Q1 devido à falha de
atualização na fonte da dados (SIURB) */
when
date("{{ var('run_date') }}") >= "2024-03-01"
and date("{{ var('run_date') }}") < "2024-03-16"
then date("2024-03-25")
/* Versão fixa do STU em 2024-04-09 para mar/Q2 devido à falha de
atualização na fonte da dados (SIURB) */
when
date("{{ var('run_date') }}") >= "2024-03-16"
and date("{{ var('run_date') }}") < "2024-04-01"
then date("2024-04-09")
else
(
select min(date(data))
from {{ ref("licenciamento_stu_staging") }}
where
date(data)
>= date_add(date("{{ var('run_date') }}"), interval 5 day)
/* Admite apenas versões do STU igual ou após 2024-04-09 a
partir de abril/24 devido à falha de atualização na fonte
de dados (SIURB) */
and (
date("{{ var('run_date') }}") < "2024-04-01"
or date(data) >= '2024-04-09'
)
)
end
{% endmacro %}
8 changes: 8 additions & 0 deletions queries/models/veiculo/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog - veiculo

## [2.0.2] - 2025-01-23

### Alterado
- Encerrada regra de transição com dados temporários da CGLF no modelo `licenciamento.sql` e reformatação deste (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/395)

### Corrigido
- Corrigidos os tipos das colunas `tecnologia`, `placa`, `data_licenciamento` e `data_infracao` na materialização antes de `2025-01-01` no modelo `sppo_veiculo_dia.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/395)

## [2.0.1] - 2025-01-21

### Corrigido
Expand Down
174 changes: 85 additions & 89 deletions queries/models/veiculo/licenciamento.sql
Original file line number Diff line number Diff line change
@@ -1,96 +1,92 @@
-- depends_on: {{ ref('aux_sppo_licenciamento_vistoria_atualizada') }}
{{
config(
materialized="incremental",
partition_by={"field": "data", "data_type": "date", "granularity": "day"},
unique_key=["data", "id_veiculo"],
incremental_strategy="insert_overwrite",
)
config(
materialized="incremental",
partition_by={"field": "data", "data_type": "date", "granularity": "day"},
unique_key=["data", "id_veiculo"],
incremental_strategy="insert_overwrite",
)
}}

{% if execute and is_incremental() %}
{% set licenciamento_date = run_query(get_license_date()).columns[0].values()[0] %}
{% set licenciamento_date = run_query(get_license_date()).columns[0].values()[0] %}
{% endif %}

WITH stu AS (
SELECT
* EXCEPT(data),
DATE(data) AS data
FROM
{{ ref("licenciamento_stu_staging") }} AS t
{% if is_incremental() %}
WHERE
DATE(data) = DATE("{{ licenciamento_date }}")
{% endif %}
),
stu_rn AS (
SELECT
* EXCEPT (timestamp_captura),
EXTRACT(YEAR FROM data_ultima_vistoria) AS ano_ultima_vistoria,
ROW_NUMBER() OVER (PARTITION BY data, id_veiculo) rn
FROM
stu
),
stu_ano_ultima_vistoria AS (
-- Temporariamente considerando os dados de vistoria enviados pela TR/SUBTT/CGLF
SELECT
s.* EXCEPT(ano_ultima_vistoria),
CASE
WHEN data >= "2024-03-01" AND c.ano_ultima_vistoria > s.ano_ultima_vistoria THEN c.ano_ultima_vistoria
WHEN data >= "2024-03-01" THEN COALESCE(s.ano_ultima_vistoria, c.ano_ultima_vistoria)
ELSE s.ano_ultima_vistoria
END AS ano_ultima_vistoria_atualizado,
FROM
stu_rn AS s
LEFT JOIN
(
SELECT
id_veiculo,
placa,
ano_ultima_vistoria
FROM
{{ ref("aux_sppo_licenciamento_vistoria_atualizada") }}
) AS c
USING(id_veiculo, placa)
)
SELECT
data,
modo,
id_veiculo,
ano_fabricacao,
carroceria,
data_ultima_vistoria,
id_carroceria,
id_chassi,
id_fabricante_chassi,
id_interno_carroceria,
id_planta,
indicador_ar_condicionado,
indicador_elevador,
indicador_usb,
indicador_wifi,
nome_chassi,
permissao,
placa,
CASE
WHEN tipo_veiculo LIKE "%BASIC%" OR tipo_veiculo LIKE "%BS%" THEN "BASICO"
WHEN tipo_veiculo LIKE "%MIDI%" THEN "MIDI"
WHEN tipo_veiculo LIKE "%MINI%" THEN "MINI"
WHEN tipo_veiculo LIKE "%PDRON%" OR tipo_veiculo LIKE "%PADRON%" THEN "PADRON"
WHEN tipo_veiculo LIKE "%ARTICULADO%" THEN "ARTICULADO"
ELSE NULL
END AS tecnologia,
quantidade_lotacao_pe,
quantidade_lotacao_sentado,
tipo_combustivel,
tipo_veiculo,
status,
data_inicio_vinculo,
ano_ultima_vistoria_atualizado,
CURRENT_DATETIME("America/Sao_Paulo") AS datetime_ultima_atualizacao,
"{{ var("version") }}" AS versao
FROM
stu_ano_ultima_vistoria
WHERE
rn = 1

with
stu as (
select * except (data), date(data) as data
from {{ ref("licenciamento_stu_staging") }} as t
{% if is_incremental() %}
where date(data) = date("{{ licenciamento_date }}")
{% endif %}
),
stu_rn as (
select
* except (timestamp_captura),
extract(year from data_ultima_vistoria) as ano_ultima_vistoria,
row_number() over (partition by data, id_veiculo) rn
from stu
),
stu_ano_ultima_vistoria as (
-- Temporariamente considerando os dados de vistoria enviados pela TR/SUBTT/CGLF
select
s.* except (ano_ultima_vistoria),
case
when
data between "2024-03-01" and "2024-12-31"
and c.ano_ultima_vistoria > s.ano_ultima_vistoria
then c.ano_ultima_vistoria
when data between "2024-03-01" and "2024-12-31"
then coalesce(s.ano_ultima_vistoria, c.ano_ultima_vistoria)
else s.ano_ultima_vistoria
end as ano_ultima_vistoria_atualizado,
from stu_rn as s
left join
(
select id_veiculo, placa, ano_ultima_vistoria
from {{ ref("aux_sppo_licenciamento_vistoria_atualizada") }}
) as c using (id_veiculo, placa)
)
select
data,
modo,
id_veiculo,
ano_fabricacao,
carroceria,
data_ultima_vistoria,
id_carroceria,
id_chassi,
id_fabricante_chassi,
id_interno_carroceria,
id_planta,
indicador_ar_condicionado,
indicador_elevador,
indicador_usb,
indicador_wifi,
nome_chassi,
permissao,
placa,
case
when tipo_veiculo like "%BASIC%" or tipo_veiculo like "%BS%"
then "BASICO"
when tipo_veiculo like "%MIDI%"
then "MIDI"
when tipo_veiculo like "%MINI%"
then "MINI"
when tipo_veiculo like "%PDRON%" or tipo_veiculo like "%PADRON%"
then "PADRON"
when tipo_veiculo like "%ARTICULADO%"
then "ARTICULADO"
else null
end as tecnologia,
quantidade_lotacao_pe,
quantidade_lotacao_sentado,
tipo_combustivel,
tipo_veiculo,
status,
data_inicio_vinculo,
ano_ultima_vistoria_atualizado,
current_datetime("America/Sao_Paulo") as datetime_ultima_atualizacao,
"{{ var('version') }}" as versao
from stu_ano_ultima_vistoria
where rn = 1
Loading

0 comments on commit 37f7358

Please sign in to comment.