diff --git a/queries/dbt_project.yml b/queries/dbt_project.yml index ed8796ff..52d210ed 100644 --- a/queries/dbt_project.yml +++ b/queries/dbt_project.yml @@ -126,6 +126,8 @@ vars: DATA_SUBSIDIO_V8_INICIO: "2024-07-20" # Feature Apuração por faixa horária DATA_SUBSIDIO_V9_INICIO: "2024-08-16" + # Feature desconsideração de km não vistoriado e não licenciado + DATA_SUBSIDIO_V9A_INICIO: "2024-09-01" # Feature Apuração por novas faixas horárias (RESOLUÇÃO SMTR 3777/2024) DATA_SUBSIDIO_V10_INICIO: "2024-11-01" # Feature Apuração por novas faixas horárias (RESOLUÇÃO SMTR 3777/2024) - Feed (GTFS) @@ -133,6 +135,7 @@ vars: # Parâmetro 110 km/h + alterações de regras do modelo `viagem_transacao.sql` DATA_SUBSIDIO_V12_INICIO: "2024-11-16" + # Recursos # recurso_staging: "rj-smtr-staging.projeto_subsidio_sppo_staging.recurso" recurso_prazo: "rj-smtr.projeto_subsidio_sppo.recurso_prazo" diff --git a/queries/models/monitoramento/CHANGELOG.md b/queries/models/monitoramento/CHANGELOG.md index 259f4f63..00f69fff 100644 --- a/queries/models/monitoramento/CHANGELOG.md +++ b/queries/models/monitoramento/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog - monitoramento + +## [1.2.2] - 2025-01-08 + +### Adicionado + +- Cria modelos `sumario_servico_dia_pagamento_historico.sql` e `sumario_servico_dia_tipo_viagem_historico.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/258) + +- Adicionado o label `dashboard` aos modelos `sumario_servico_dia_pagamento_historico.sql` e `sumario_servico_dia_tipo_viagem_historico.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/258) + ## [1.2.1] - 2025-01-03 ### Adicionado @@ -31,4 +40,4 @@ ## [1.0.0] - 2024-10-21 ### Adicionado -- Cria modelos para tratamento de viagens informadas: `staging_viagem_informada_rioonibus.sql` e `viagem_informada_monitoramento.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/276) \ No newline at end of file +- Cria modelos para tratamento de viagens informadas: `staging_viagem_informada_rioonibus.sql` e `viagem_informada_monitoramento.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/276) diff --git a/queries/models/monitoramento/monitoramento_sumario_servico_dia_historico.sql b/queries/models/monitoramento/monitoramento_sumario_servico_dia_historico.sql new file mode 100644 index 00000000..45400e0d --- /dev/null +++ b/queries/models/monitoramento/monitoramento_sumario_servico_dia_historico.sql @@ -0,0 +1,18 @@ +{{ + config( + materialized="incremental", + partition_by={"field": "data", "data_type": "date", "granularity": "day"}, + incremental_strategy="insert_overwrite", + alias="sumario_servico_dia_historico", + labels={'dashboard':'yes'} + ) +}} +select * +from {{ ref("monitoramento_servico_dia") }} +where + data < date("{{ var("DATA_SUBSIDIO_V9_INICIO") }}") +union all +select * +from {{ ref("monitoramento_servico_dia_v2") }} +where + data >= date("{{ var("DATA_SUBSIDIO_V9_INICIO") }}") diff --git a/queries/models/monitoramento/monitoramento_sumario_servico_dia_tipo_viagem_historico.sql b/queries/models/monitoramento/monitoramento_sumario_servico_dia_tipo_viagem_historico.sql new file mode 100644 index 00000000..f53b49b7 --- /dev/null +++ b/queries/models/monitoramento/monitoramento_sumario_servico_dia_tipo_viagem_historico.sql @@ -0,0 +1,20 @@ +{{ + config( + materialized="incremental", + partition_by={"field": "data", "data_type": "date", "granularity": "day"}, + incremental_strategy="insert_overwrite", + alias="sumario_servico_dia_tipo_viagem_historico", + labels={'dashboard':'yes'} + ) +}} + +select * +from {{ ref("monitoramento_servico_dia_tipo_viagem") }} +where + data < date("{{ var("DATA_SUBSIDIO_V9_INICIO") }}") +union all +select * +from {{ ref("monitoramento_servico_dia_tipo_viagem_v2") }} +where + data >= date("{{ var("DATA_SUBSIDIO_V9_INICIO") }}") + and tipo_viagem != "Sem viagem apurada" diff --git a/queries/models/monitoramento/staging/monitoramento_servico_dia.sql b/queries/models/monitoramento/staging/monitoramento_servico_dia.sql new file mode 100644 index 00000000..ec34f1df --- /dev/null +++ b/queries/models/monitoramento/staging/monitoramento_servico_dia.sql @@ -0,0 +1,22 @@ +{{ config(materialized="ephemeral") }} + +select + data, + tipo_dia, + consorcio, + servico, + vista, + viagens, + km_apurada, + km_planejada, + perc_km_planejada, + valor_subsidio_pago, + valor_penalidade +from {{ ref("sumario_servico_dia_historico") }} +-- `rj-smtr.dashboard_subsidio_sppo.sumario_servico_dia_historico` +where + data < DATE("{{ var("DATA_SUBSIDIO_V9_INICIO") }}") --noqa + {% if is_incremental() %} + AND data BETWEEN DATE("{{ var("start_date") }}") + AND DATE_ADD(DATE("{{ var("end_date") }}"), INTERVAL 1 DAY) + {% endif %} diff --git a/queries/models/monitoramento/staging/monitoramento_servico_dia_tipo_viagem.sql b/queries/models/monitoramento/staging/monitoramento_servico_dia_tipo_viagem.sql new file mode 100644 index 00000000..7ccd9ea8 --- /dev/null +++ b/queries/models/monitoramento/staging/monitoramento_servico_dia_tipo_viagem.sql @@ -0,0 +1,20 @@ +{{ config(materialized="ephemeral") }} + +select + data, + tipo_dia, + consorcio, + servico, + tipo_viagem, + indicador_ar_condicionado, + viagens, + km_apurada +from {{ ref("sumario_servico_tipo_viagem_dia") }} +-- `rj-smtr.dashboard_subsidio_sppo.sumario_servico_tipo_viagem_dia` +where + data < date("{{ var("DATA_SUBSIDIO_V9_INICIO") }}") + {% if is_incremental() %} + and data between date("{{ var("start_date") }}") and date_add( + date("{{ var("end_date") }}"), interval 1 day + ) + {% endif %} diff --git a/queries/models/monitoramento/staging/monitoramento_servico_dia_tipo_viagem_v2.sql b/queries/models/monitoramento/staging/monitoramento_servico_dia_tipo_viagem_v2.sql new file mode 100644 index 00000000..805ef607 --- /dev/null +++ b/queries/models/monitoramento/staging/monitoramento_servico_dia_tipo_viagem_v2.sql @@ -0,0 +1,22 @@ +{{ config(materialized="ephemeral") }} + +select + data, + tipo_dia, + consorcio, + servico, + tipo_viagem, + indicador_ar_condicionado, + sum(viagens_faixa) as viagens, + sum(km_apurada_faixa) as km_apurada +from {{ ref("subsidio_faixa_servico_dia_tipo_viagem") }} +-- `rj-smtr.financeiro.subsidio_faixa_servico_dia_tipo_viagem` +where + data >= date("{{ var("DATA_SUBSIDIO_V9_INICIO") }}") + and tipo_viagem != "Sem viagem apurada" + {% if is_incremental() %} + and data between date("{{ var("start_date") }}") and date_add( + date("{{ var("end_date") }}"), interval 1 day + ) + {% endif %} +group by data, tipo_dia, consorcio, servico, tipo_viagem, indicador_ar_condicionado diff --git a/queries/models/monitoramento/staging/monitoramento_servico_dia_v2.sql b/queries/models/monitoramento/staging/monitoramento_servico_dia_v2.sql new file mode 100644 index 00000000..b4f1f556 --- /dev/null +++ b/queries/models/monitoramento/staging/monitoramento_servico_dia_v2.sql @@ -0,0 +1,84 @@ +{{ config(materialized="ephemeral") }} + +with + valores_subsidio AS ( +SELECT + data, + sdp.tipo_dia, + sdp.consorcio, + servico, + sdp.viagens_dia, + SUM( + CASE + WHEN data >= DATE("{{ var('DATA_SUBSIDIO_V9A_INICIO') }}") + AND tipo_viagem NOT IN ("Não licenciado", "Não vistoriado") + THEN km_apurada_faixa + WHEN data < DATE("{{ var('DATA_SUBSIDIO_V9A_INICIO') }}") + THEN km_apurada_faixa + ELSE 0 + END + ) AS km_apurada, + km_planejada_dia, + valor_a_pagar, + valor_penalidade +FROM + {{ ref("subsidio_sumario_servico_dia_pagamento") }} as sdp + -- rj-smtr.financeiro.subsidio_sumario_servico_dia_pagamento +left join {{ ref("subsidio_faixa_servico_dia_tipo_viagem") }} as sdtv + using (data, servico) + WHERE + data BETWEEN DATE("{{ var('start_date') }}") + AND DATE("{{ var('end_date') }}") + group by data, + tipo_dia, + consorcio, + servico, + viagens_dia, + km_planejada_dia, + valor_a_pagar, + valor_penalidade + ), + planejada as ( + select distinct data, consorcio, servico, vista + from {{ ref("viagem_planejada") }} + -- `rj-smtr.projeto_subsidio_sppo.viagem_planejada` + where + data >= date("{{ var('DATA_SUBSIDIO_V9_INICIO') }}") + and (id_tipo_trajeto = 0 or id_tipo_trajeto is null) + and format_time("%T", time(faixa_horaria_inicio)) != "00:00:00" + ), + pagamento as ( + select + data, + tipo_dia, + consorcio, + servico, + vista, + viagens_dia as viagens, + km_apurada, + km_planejada_dia as km_planejada, + valor_a_pagar as valor_subsidio_pago, + valor_penalidade + from valores_subsidio as sdp + left join planejada as p using (data, servico, consorcio) + where + data >= date("{{ var('DATA_SUBSIDIO_V9_INICIO') }}") + {% if is_incremental() %} + and data between date("{{ var('start_date') }}") and date_add( + date("{{ var('end_date') }}"), interval 1 day + ) + {% endif %} + ) +select + data, + tipo_dia, + consorcio, + servico, + vista, + viagens, + km_apurada, + km_planejada, + ROUND(100 * km_apurada / km_planejada, 2) as perc_km_planejada, + valor_subsidio_pago, + valor_penalidade +from pagamento diff --git a/queries/models/projeto_subsidio_sppo/CHANGELOG.md b/queries/models/projeto_subsidio_sppo/CHANGELOG.md index ae9763f3..ed5ab618 100644 --- a/queries/models/projeto_subsidio_sppo/CHANGELOG.md +++ b/queries/models/projeto_subsidio_sppo/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog - projeto_subsidio_sppo +## [9.1.5] - 2025-01-08 + +### Adicionado + +- Adicionado label `dashboard` ao modelo `viagem_completa.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/258) + ## [9.1.4] - 2025-01-06 ### Adicionado diff --git a/queries/models/projeto_subsidio_sppo/viagem_completa.sql b/queries/models/projeto_subsidio_sppo/viagem_completa.sql index 345935b4..aaf1cf99 100644 --- a/queries/models/projeto_subsidio_sppo/viagem_completa.sql +++ b/queries/models/projeto_subsidio_sppo/viagem_completa.sql @@ -8,7 +8,8 @@ config( "granularity":"day" }, unique_key=['id_viagem'], - incremental_strategy='insert_overwrite' + incremental_strategy='insert_overwrite', + labels = {'dashboard': 'yes'} ) }} diff --git a/queries/selectors.yml b/queries/selectors.yml index 8a24f258..37ec7532 100644 --- a/queries/selectors.yml +++ b/queries/selectors.yml @@ -9,6 +9,10 @@ selectors: value: viagem_transacao - method: path value: models/dashboard_subsidio_sppo + - method: fqn + value: monitoramento_sumario_servico_dia_historico + - method: fqn + value: monitoramento_sumario_servico_dia_tipo_viagem_historico - name: apuracao_subsidio_v9 description: Apuração com faixa horária @@ -24,8 +28,6 @@ selectors: value: models/financeiro - method: path value: models/dashboard_subsidio_sppo_v2 - - method: fqn - value: monitoramento_viagem_transacao - name: viagem_informada description: Materialização da tabela de viagens informadas @@ -92,5 +94,10 @@ selectors: - name: monitoramento_subsidio description: Materialização das tabelas utilizadas nos dashboards do subsidio definition: - method: fqn - value: monitoramento_viagem_transacao \ No newline at end of file + union: + - method: fqn + value: monitoramento_viagem_transacao + - method: fqn + value: monitoramento_sumario_servico_dia_historico + - method: fqn + value: monitoramento_sumario_servico_dia_tipo_viagem_historico \ No newline at end of file