From 40ee4c06ebe8443a9fd125be6a7b305a758bacd0 Mon Sep 17 00:00:00 2001 From: Rodrigo Cunha <66736583+eng-rodrigocunha@users.noreply.github.com> Date: Fri, 5 Jan 2024 14:13:21 -0300 Subject: [PATCH 1/3] commit inicial (#6) --- .../dicionario.sql | 13 - .../ordem_pagamento.sql | 129 ---- .../br_rj_riodejaneiro_bilhetagem/schema.yml | 125 --- .../transacao.sql | 134 ---- .../staging_cliente.sql | 37 - .../staging_consorcio.sql | 30 - .../staging_conta_bancaria.sql | 33 - .../staging_contato_pessoa_juridica.sql | 34 - .../staging_grupo.sql | 31 - .../staging_grupo_linha.sql | 32 - .../staging_linha.sql | 43 -- .../staging_linha_consorcio.sql | 35 - .../staging_operadora_transporte.sql | 34 - .../staging_ordem_pagamento.sql | 47 -- .../staging_ordem_ressarcimento.sql | 52 -- .../staging_pessoa_juridica.sql | 33 - .../brt_aux_registros_filtrada.sql | 71 -- ...brt_aux_registros_flag_trajeto_correto.sql | 93 --- .../brt_aux_registros_parada.sql | 71 -- .../brt_aux_registros_velocidade.sql | 92 --- .../brt_registros.sql | 9 - .../brt_registros_desaninhada.sql | 12 - .../br_rj_riodejaneiro_gtfs/agency_gtfs.sql | 18 - .../calendar_dates_gtfs.sql | 19 - .../br_rj_riodejaneiro_gtfs/calendar_gtfs.sql | 26 - .../fare_attributes_gtfs.sql | 23 - .../fare_rules_gtfs.sql | 22 - .../feed_info_gtfs.sql | 25 - .../frequencies_gtfs.sql | 18 - .../ordem_servico_diaria.sql | 68 -- .../ordem_servico_gtfs.sql | 73 -- .../br_rj_riodejaneiro_gtfs/routes_gtfs.sql | 29 - .../models/br_rj_riodejaneiro_gtfs/schema.yml | 342 --------- .../servicos_sentido.sql | 79 -- .../shapes_geom_gtfs.sql | 77 -- .../br_rj_riodejaneiro_gtfs/shapes_gtfs.sql | 19 - .../stop_times_gtfs.sql | 28 - .../br_rj_riodejaneiro_gtfs/stops_gtfs.sql | 31 - .../br_rj_riodejaneiro_gtfs/trips_gtfs.sql | 26 - .../br_rj_riodejaneiro_onibus_gps/schema.yaml | 332 -------- .../sppo_aux_registros_filtrada.sql | 81 -- ...ppo_aux_registros_flag_trajeto_correto.sql | 96 --- .../sppo_aux_registros_parada.sql | 77 -- .../sppo_aux_registros_realocacao.sql | 73 -- .../sppo_aux_registros_velocidade.sql | 91 --- .../sppo_realocacao.sql | 15 - .../sppo_registros.sql | 15 - .../rho_registros_sppo.sql | 18 - .../rho_registros_sppo_view.sql | 16 - .../models/br_rj_riodejaneiro_rdo/schema.yaml | 7 - .../recurso_sppo_viagens_individuais.sql | 113 --- .../br_rj_riodejaneiro_recurso/schema.yml | 35 - .../br_rj_riodejaneiro_sigmob/agency.sql | 26 - .../agency_desaninhada.sql | 10 - .../agg_stops_vistoriadas.sql | 21 - .../br_rj_riodejaneiro_sigmob/calendar.sql | 26 - .../calendar_desaninhada.sql | 14 - .../data_versao_efetiva.sql | 209 ----- .../frota_determinada.sql | 26 - .../frota_determinada_desaninhada.sql | 12 - .../br_rj_riodejaneiro_sigmob/holidays.sql | 26 - .../br_rj_riodejaneiro_sigmob/linhas.sql | 26 - .../linhas_desaninhada.sql | 18 - .../br_rj_riodejaneiro_sigmob/routes.sql | 26 - .../routes_desaninhada.sql | 56 -- .../br_rj_riodejaneiro_sigmob/schema.yaml | 114 --- .../br_rj_riodejaneiro_sigmob/shapes.sql | 26 - .../br_rj_riodejaneiro_sigmob/shapes_geom.sql | 121 --- .../stop_details.sql | 26 - .../stop_details_desaninhada.sql | 45 -- .../br_rj_riodejaneiro_sigmob/stop_times.sql | 26 - .../stop_times_desaninhada.sql | 9 - .../br_rj_riodejaneiro_sigmob/stops.sql | 26 - .../stops_desaninhada.sql | 51 -- .../br_rj_riodejaneiro_sigmob/trips.sql | 26 - .../trips_desaninhada.sql | 45 -- .../staging_operadora_empresa.sql | 34 - .../staging_operadora_pessoa_fisica.sql | 36 - .../br_rj_riodejaneiro_veiculos/gps_brt.sql | 139 ---- .../gps_brt_15_minutos.sql | 139 ---- .../br_rj_riodejaneiro_veiculos/gps_sppo.sql | 139 ---- .../models/cadastro/diretorio_consorcios.sql | 38 - .../models/cadastro/diretorio_operadoras.sql | 105 --- .../models/cadastro/operadoras_contato.sql | 26 - queries/models/cadastro/schema.yml | 92 --- .../models/dashboard_subsidio_sppo/README.md | 87 --- .../models/dashboard_subsidio_sppo/schema.yml | 334 -------- .../subsidio_parametros.sql | 24 - .../dashboard_subsidio_sppo/sumario_dia.sql | 116 --- .../sumario_servico_dia.sql | 105 --- .../sumario_servico_dia_historico.sql | 103 --- .../sumario_servico_dia_tipo.sql | 218 ------ .../sumario_servico_dia_tipo_sem_glosa.sql | 47 -- .../sumario_servico_tipo_viagem_dia.sql | 153 ---- .../valor_tipo_penalidade.sql | 21 - .../viagens_realizadas.sql | 6 - .../viagens_remuneradas.sql | 183 ----- queries/models/example/my_first_dbt_model.sql | 27 - .../models/example/my_second_dbt_model.sql | 6 - queries/models/example/schema.yml | 21 - .../models/projeto_subsidio_sppo/README.md | 138 ---- .../aux_recurso_duplicado.sql | 32 - .../aux_recurso_fora_prazo.sql | 31 - .../aux_recurso_incorreto.sql | 54 -- .../aux_recurso_viagem_nao_planejada.sql | 38 - .../aux_recurso_viagem_paga.sql | 45 -- .../aux_recurso_viagem_recalculada.sql | 36 - .../aux_registros_status_trajeto.sql | 78 -- .../aux_viagem_circular.sql | 69 -- .../aux_viagem_inicio_fim.sql | 77 -- .../aux_viagem_registros.sql | 49 -- .../recurso_avaliado.sql | 34 - .../recurso_filtrada.sql | 38 - .../registros_status_viagem.sql | 48 -- .../models/projeto_subsidio_sppo/schema.yml | 715 ------------------ .../subsidio_data_versao_efetiva.sql | 149 ---- .../subsidio_quadro_horario.sql | 13 - .../subsidio_shapes_geom.sql | 98 --- .../subsidio_trips_desaninhada.sql | 17 - .../sumario_subsidio_dia_periodo_recurso.sql | 76 -- .../sumario_subsidio_dia_pos_recurso.sql | 20 - .../sumario_subsidio_dia_recurso.sql | 33 - .../projeto_subsidio_sppo/viagem_completa.sql | 171 ----- .../viagem_completa_recurso.sql | 111 --- .../viagem_conformidade.sql | 74 -- .../viagem_conformidade_recurso.sql | 250 ------ .../viagem_planejada.sql | 159 ---- queries/models/veiculo/README.md | 31 - queries/models/veiculo/schema.yml | 231 ------ queries/models/veiculo/sppo_infracao.sql | 43 -- queries/models/veiculo/sppo_licenciamento.sql | 42 - .../sppo_licenciamento_solicitacao.sql | 40 - .../models/veiculo/sppo_licenciamento_stu.sql | 27 - queries/models/veiculo/sppo_veiculo_dia.sql | 185 ----- 134 files changed, 9544 deletions(-) delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem/dicionario.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem/transacao.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_cliente.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_consorcio.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_conta_bancaria.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_contato_pessoa_juridica.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_grupo.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_grupo_linha.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha_consorcio.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_operadora_transporte.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_ordem_pagamento.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_ordem_ressarcimento.sql delete mode 100644 queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_pessoa_juridica.sql delete mode 100644 queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_filtrada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_flag_trajeto_correto.sql delete mode 100644 queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_parada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_velocidade.sql delete mode 100644 queries/models/br_rj_riodejaneiro_brt_gps/brt_registros.sql delete mode 100644 queries/models/br_rj_riodejaneiro_brt_gps/brt_registros_desaninhada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/agency_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/calendar_dates_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/calendar_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/fare_attributes_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/fare_rules_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/feed_info_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/frequencies_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/ordem_servico_diaria.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/ordem_servico_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/routes_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/schema.yml delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/servicos_sentido.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/shapes_geom_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/shapes_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/stop_times_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/stops_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_gtfs/trips_gtfs.sql delete mode 100644 queries/models/br_rj_riodejaneiro_onibus_gps/schema.yaml delete mode 100644 queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_filtrada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_flag_trajeto_correto.sql delete mode 100644 queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_parada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_realocacao.sql delete mode 100644 queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_velocidade.sql delete mode 100644 queries/models/br_rj_riodejaneiro_onibus_gps/sppo_realocacao.sql delete mode 100644 queries/models/br_rj_riodejaneiro_onibus_gps/sppo_registros.sql delete mode 100644 queries/models/br_rj_riodejaneiro_rdo/rho_registros_sppo.sql delete mode 100644 queries/models/br_rj_riodejaneiro_rdo/rho_registros_sppo_view.sql delete mode 100644 queries/models/br_rj_riodejaneiro_rdo/schema.yaml delete mode 100644 queries/models/br_rj_riodejaneiro_recurso/recurso_sppo_viagens_individuais.sql delete mode 100644 queries/models/br_rj_riodejaneiro_recurso/schema.yml delete mode 100755 queries/models/br_rj_riodejaneiro_sigmob/agency.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/agency_desaninhada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/agg_stops_vistoriadas.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/calendar.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/calendar_desaninhada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/data_versao_efetiva.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/frota_determinada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/frota_determinada_desaninhada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/holidays.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/linhas.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/linhas_desaninhada.sql delete mode 100755 queries/models/br_rj_riodejaneiro_sigmob/routes.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/routes_desaninhada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/schema.yaml delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/shapes.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/shapes_geom.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/stop_details.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/stop_details_desaninhada.sql delete mode 100755 queries/models/br_rj_riodejaneiro_sigmob/stop_times.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/stop_times_desaninhada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/stops.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/stops_desaninhada.sql delete mode 100755 queries/models/br_rj_riodejaneiro_sigmob/trips.sql delete mode 100644 queries/models/br_rj_riodejaneiro_sigmob/trips_desaninhada.sql delete mode 100644 queries/models/br_rj_riodejaneiro_stu/staging_operadora_empresa.sql delete mode 100644 queries/models/br_rj_riodejaneiro_stu/staging_operadora_pessoa_fisica.sql delete mode 100644 queries/models/br_rj_riodejaneiro_veiculos/gps_brt.sql delete mode 100644 queries/models/br_rj_riodejaneiro_veiculos/gps_brt_15_minutos.sql delete mode 100644 queries/models/br_rj_riodejaneiro_veiculos/gps_sppo.sql delete mode 100644 queries/models/cadastro/diretorio_consorcios.sql delete mode 100644 queries/models/cadastro/diretorio_operadoras.sql delete mode 100644 queries/models/cadastro/operadoras_contato.sql delete mode 100644 queries/models/cadastro/schema.yml delete mode 100644 queries/models/dashboard_subsidio_sppo/README.md delete mode 100644 queries/models/dashboard_subsidio_sppo/schema.yml delete mode 100644 queries/models/dashboard_subsidio_sppo/subsidio_parametros.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/sumario_dia.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/sumario_servico_dia.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/sumario_servico_dia_historico.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/sumario_servico_dia_tipo.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/sumario_servico_dia_tipo_sem_glosa.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/sumario_servico_tipo_viagem_dia.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/valor_tipo_penalidade.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/viagens_realizadas.sql delete mode 100644 queries/models/dashboard_subsidio_sppo/viagens_remuneradas.sql delete mode 100644 queries/models/example/my_first_dbt_model.sql delete mode 100644 queries/models/example/my_second_dbt_model.sql delete mode 100644 queries/models/example/schema.yml delete mode 100644 queries/models/projeto_subsidio_sppo/README.md delete mode 100644 queries/models/projeto_subsidio_sppo/aux_recurso_duplicado.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_recurso_fora_prazo.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_recurso_incorreto.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_recurso_viagem_nao_planejada.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_recurso_viagem_paga.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_recurso_viagem_recalculada.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_registros_status_trajeto.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_viagem_circular.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_viagem_inicio_fim.sql delete mode 100644 queries/models/projeto_subsidio_sppo/aux_viagem_registros.sql delete mode 100644 queries/models/projeto_subsidio_sppo/recurso_avaliado.sql delete mode 100644 queries/models/projeto_subsidio_sppo/recurso_filtrada.sql delete mode 100644 queries/models/projeto_subsidio_sppo/registros_status_viagem.sql delete mode 100644 queries/models/projeto_subsidio_sppo/schema.yml delete mode 100644 queries/models/projeto_subsidio_sppo/subsidio_data_versao_efetiva.sql delete mode 100644 queries/models/projeto_subsidio_sppo/subsidio_quadro_horario.sql delete mode 100644 queries/models/projeto_subsidio_sppo/subsidio_shapes_geom.sql delete mode 100644 queries/models/projeto_subsidio_sppo/subsidio_trips_desaninhada.sql delete mode 100644 queries/models/projeto_subsidio_sppo/sumario_subsidio_dia_periodo_recurso.sql delete mode 100644 queries/models/projeto_subsidio_sppo/sumario_subsidio_dia_pos_recurso.sql delete mode 100644 queries/models/projeto_subsidio_sppo/sumario_subsidio_dia_recurso.sql delete mode 100644 queries/models/projeto_subsidio_sppo/viagem_completa.sql delete mode 100644 queries/models/projeto_subsidio_sppo/viagem_completa_recurso.sql delete mode 100644 queries/models/projeto_subsidio_sppo/viagem_conformidade.sql delete mode 100644 queries/models/projeto_subsidio_sppo/viagem_conformidade_recurso.sql delete mode 100644 queries/models/projeto_subsidio_sppo/viagem_planejada.sql delete mode 100644 queries/models/veiculo/README.md delete mode 100644 queries/models/veiculo/schema.yml delete mode 100644 queries/models/veiculo/sppo_infracao.sql delete mode 100644 queries/models/veiculo/sppo_licenciamento.sql delete mode 100644 queries/models/veiculo/sppo_licenciamento_solicitacao.sql delete mode 100644 queries/models/veiculo/sppo_licenciamento_stu.sql delete mode 100644 queries/models/veiculo/sppo_veiculo_dia.sql diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/dicionario.sql b/queries/models/br_rj_riodejaneiro_bilhetagem/dicionario.sql deleted file mode 100644 index 7c303eca..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/dicionario.sql +++ /dev/null @@ -1,13 +0,0 @@ -{{ - config( - materialized="table", - ) -}} -SELECT - SAFE_CAST(chave AS STRING) AS chave, - SAFE_CAST(cobertura_temporal AS STRING) AS cobertura_temporal, - SAFE_CAST(id_tabela AS STRING) AS id_tabela, - SAFE_CAST(coluna AS STRING) AS coluna, - SAFE_CAST(valor AS STRING) AS valor -FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "dicionario") }} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento.sql b/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento.sql deleted file mode 100644 index f330e147..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento.sql +++ /dev/null @@ -1,129 +0,0 @@ -{{ - config( - materialized="incremental", - partition_by={ - "field":"data_ordem", - "data_type":"date", - "granularity": "day" - }, - incremental_strategy="insert_overwrite" - ) -}} - -WITH transacao_agg AS ( - SELECT - data, - DATE_ADD(data, INTERVAL 1 DAY) AS data_ordem, - ANY_VALUE(id_consorcio) AS id_consorcio, - id_operadora, - servico, - COUNT(*) AS quantidade_total_transacao_captura, - ROUND(SUM(valor_transacao), 1) AS valor_total_transacao_captura - FROM - {{ ref("transacao") }} - WHERE - {% if is_incremental() -%} - data BETWEEN DATE_SUB(DATE("{{var('date_range_start')}}"), INTERVAL 1 DAY) AND DATE_SUB(DATE("{{var('date_range_end')}}"), INTERVAL 1 DAY) - {% else %} - data < CURRENT_DATE("America/Sao_Paulo") - {%- endif %} - GROUP BY - data, - id_operadora, - servico -), -ordem_pagamento AS ( - SELECT - r.data_ordem, - p.data_pagamento, - dc.id_consorcio, - do.id_operadora, - l.nr_linha AS servico, - r.id_ordem_pagamento AS id_ordem_pagamento, - r.id_ordem_ressarcimento AS id_ordem_ressarcimento, - r.qtd_debito AS quantidade_transacao_debito, - r.valor_debito, - r.qtd_vendaabordo AS quantidade_transacao_especie, - r.valor_vendaabordo AS valor_especie, - r.qtd_gratuidade AS quantidade_transacao_gratuidade, - r.valor_gratuidade, - r.qtd_integracao AS quantidade_transacao_integracao, - r.valor_integracao, - r.qtd_rateio_credito AS quantidade_transacao_rateio_credito, - r.valor_rateio_credito, - r.qtd_rateio_debito AS quantidade_transacao_rateio_debito, - r.valor_rateio_debito, - r.qtd_debito + r.qtd_vendaabordo + r.qtd_gratuidade + r.qtd_integracao + r.qtd_rateio_credito + r.qtd_rateio_debito AS quantidade_total_transacao, - ROUND(r.valor_bruto, 1) AS valor_total_transacao_bruto, - r.valor_taxa AS valor_desconto_taxa, - r.valor_liquido AS valor_total_transacao_liquido - FROM - {{ ref("staging_ordem_ressarcimento") }} r - LEFT JOIN - {{ ref("staging_ordem_pagamento") }} p - ON - r.id_ordem_pagamento = p.id_ordem_pagamento - LEFT JOIN - {{ ref("staging_consorcio") }} c - ON - r.id_consorcio = c.cd_consorcio - LEFT JOIN - {{ ref("staging_linha") }} AS l - ON - r.id_linha = l.cd_linha - LEFT JOIN - {{ ref("staging_operadora_transporte") }} AS o - ON - r.id_operadora = o.cd_operadora_transporte - LEFT JOIN - {{ ref("diretorio_operadoras") }} AS do - ON - r.id_operadora = do.id_operadora_jae - LEFT JOIN - {{ ref("diretorio_consorcios") }} AS dc - ON - r.id_consorcio = dc.id_consorcio_jae - {% if is_incremental() -%} - WHERE - DATE(r.data) BETWEEN DATE("{{var('date_range_start')}}") AND DATE("{{var('date_range_end')}}") - {%- endif %} -) -SELECT - COALESCE(op.data_ordem, t.data_ordem) AS data_ordem, - op.data_pagamento, - COALESCE(op.id_consorcio, t.id_consorcio) AS id_consorcio, - COALESCE(op.id_operadora, t.id_operadora) AS id_operadora, - COALESCE(op.servico, t.servico) AS servico, - op.id_ordem_pagamento, - op.id_ordem_ressarcimento, - op.quantidade_transacao_debito, - op.valor_debito, - op.quantidade_transacao_especie, - op.valor_especie, - op.quantidade_transacao_gratuidade, - op.valor_gratuidade, - op.quantidade_transacao_integracao, - op.valor_integracao, - op.quantidade_transacao_rateio_credito, - op.valor_rateio_credito, - op.quantidade_transacao_rateio_debito, - op.valor_rateio_debito, - op.quantidade_total_transacao, - op.valor_total_transacao_bruto, - op.valor_desconto_taxa, - op.valor_total_transacao_liquido, - t.quantidade_total_transacao_captura, - t.valor_total_transacao_captura, - COALESCE( - (t.quantidade_total_transacao_captura = op.quantidade_total_transacao AND t.valor_total_transacao_captura = op.valor_total_transacao_bruto), - false - ) AS flag_ordem_valida, - '{{ var("version") }}' AS versao -FROM - ordem_pagamento op -FULL OUTER JOIN - transacao_agg t -ON - t.data_ordem = op.data_ordem - AND t.servico = op.servico - AND t.id_operadora = op.id_operadora diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml b/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml deleted file mode 100644 index cea9ea19..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml +++ /dev/null @@ -1,125 +0,0 @@ -version: 2 - -models: - - name: transacao - description: "Tabela de transações" - columns: - - name: data - description: "Data da transação (partição)" - - name: hora - description: "Hora da transação" - - name: datetime_transacao - description: "Data e hora da transação em GMT-3 (formato YYYY-MM-ddTHH:mm:ss.ssssss)" - - name: datetime_processamento - description: "Data e hora de processamento da transação em GMT-3 (formato YYYY-MM-ddTHH:mm:ss.ssssss)" - - name: datetime_captura - description: "Timestamp de captura em GMT-3 (formato YYYY-MM-dd HH:mm:ssTZD)" - - name: modo - description: "Tipo de transporte (SPPO = ônibus, STPL = van, BRT)" - - name: id_consorcio - description: "Identificador do consórcio na tabela cadastro.consorcios" - - name: id_operadora - description: "Identificador da operadora na tabela cadastro.operadoras" - - name: servico - description: "Nome curto da linha operada pelo veículo com variação de serviço (ex: 010, 011SN, ...)" - - name: sentido - description: "Sentido de operação do serviço (0 = ida, 1 = volta)" - - name: id_veiculo - description: "Identificador único do veículo" - - name: id_cliente - description: "Identificador único do cliente" - - name: id_transacao - description: "Identificador único da transação" - - name: id_tipo_pagamento - description: "Código do tipo de pagamento utilizado" - - name: id_tipo_transacao - description: "Tipo de transação realizada" - - name: id_tipo_integracao - description: "Tipo da integração realizada (identificador relacionado à matriz de integração)" - - name: id_integracao - description: "Identificador único da integração" - - name: latitude - description: "Latitude da transação (WGS84)" - - name: longitude - description: "Longitude da transação (WGS84)" - - name: stop_id - description: "Código identificador do ponto de embarque (GTFS)" - - name: stop_lat - description: "Latitude do ponto de embarque (GTFS)" - - name: stop_lon - description: "Longitude do ponto de embarque (GTFS)" - - name: valor_transacao - description: "Valor debitado na transação atual (R$)" - - name: versao - description: "Código de controle de versão do dado (SHA Github)" - - name: ordem_pagamento - description: "Tabela de ordem de pagamento do banco de dados de dados da Jaé" - columns: - - name: data_ordem - description: "Data da ordem de pagamento (partição)" - - name: data_pagamento - description: "Data de pagamento da ordem" - - name: id_consorcio - description: "Identificador do consórcio na tabela cadastro.consorcios" - - name: id_operadora - description: "Identificador da operadora na tabela cadastro.operadoras" - - name: servico - description: "Nome curto da linha operada com variação de serviço (ex: 010, 011SN, ...)" - - name: id_ordem_pagamento - description: "Identificador da ordem pagamento no banco de dados da Jaé" - - name: id_ordem_ressarcimento - description: "Identificador da ordem ressarcimento no banco de dados da Jaé" - - name: quantidade_transacao_debito - description: "Quantidade de transações feitas na modalidade débito" - - name: valor_debito - description: "Valor total das transações feitas na modalidade débito (R$)" - - name: quantidade_transacao_especie - description: "Quantidade de transações feitas em espécie" - - name: valor_especie - description: "Valor total das transações feitas em espécie (R$)" - - name: quantidade_transacao_gratuidade - description: "Quantidade de transações feitas com gratuidade" - - name: valor_gratuidade - description: "Valor total das transações feitas com gratuidade (R$)" - - name: quantidade_transacao_integracao - description: "Quantidade de transações feitas com integração" - - name: valor_integracao - description: "Valor total das transações feitas com integração (R$)" - - name: quantidade_transacao_rateio_credito - description: "" - - name: valor_rateio_credito - description: "" - - name: quantidade_transacao_rateio_debito - description: "" - - name: valor_rateio_debito - description: "" - - name: quantidade_total_transacao - description: "Quantidade total de transações realizadas" - - name: valor_total_transacao_bruto - description: "Valor total das transações realizadas (R$)" - - name: valor_desconto_taxa - description: "Valor da taxa descontado do valor total (R$)" - - name: valor_total_transacao_liquido - description: "Valor total das transações menos o valor_desconto_taxa (R$)" - - name: quantidade_total_transacao_captura - description: "Quantidade total de transações calculada pela captura de transações" - - name: valor_total_transacao_captura - description: "Valor total das transações realizadas calculada pela captura de transações (R$)" - - name: indicador_ordem_valida - description: "Indicador de validação da ordem de pagamento i.e. se a quantidade e valor total informados são encontrados na captura de transações individuais" - - name: versao - description: "Código de controle de versão do dado (SHA Github)" - - name: dicionario - description: "Dicionário de dados" - columns: - - name: chave - description: "Chave" - - name: cobertura_temporal - description: "Cobertura temporal" - - name: id_tabela - description: "Nome da tabela" - - name: coluna - description: "Nome da coluna" - - name: valor - description: "Valor" - \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/transacao.sql b/queries/models/br_rj_riodejaneiro_bilhetagem/transacao.sql deleted file mode 100644 index 0bda3abe..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/transacao.sql +++ /dev/null @@ -1,134 +0,0 @@ --- depends_on: {{ ref('operadoras_contato') }} -{{ - config( - materialized="incremental", - partition_by={ - "field":"data", - "data_type":"date", - "granularity": "day" - }, - unique_key="id_transacao", - ) -}} -WITH transacao_aberta AS ( - SELECT - data, - hora, - id, - timestamp_captura, - SAFE_CAST(JSON_VALUE(content, '$.assinatura') AS STRING) AS assinatura, - SAFE_CAST(JSON_VALUE(content, '$.cd_aplicacao') AS STRING) AS cd_aplicacao, - SAFE_CAST(JSON_VALUE(content, '$.cd_emissor') AS STRING) AS cd_emissor, - SAFE_CAST(JSON_VALUE(content, '$.cd_linha') AS STRING) AS cd_linha, - SAFE_CAST(JSON_VALUE(content, '$.cd_matriz_integracao') AS STRING) AS cd_matriz_integracao, - SAFE_CAST(JSON_VALUE(content, '$.cd_operadora') AS STRING) AS cd_operadora, - SAFE_CAST(JSON_VALUE(content, '$.cd_secao') AS STRING) AS cd_secao, - SAFE_CAST(JSON_VALUE(content, '$.cd_status_transacao') AS STRING) AS cd_status_transacao, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E6S%Ez', SAFE_CAST(JSON_VALUE(content, '$.data_processamento') AS STRING)), "America/Sao_Paulo") AS data_processamento, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E6S%Ez', SAFE_CAST(JSON_VALUE(content, '$.data_transacao') AS STRING)), "America/Sao_Paulo") AS data_transacao, - SAFE_CAST(JSON_VALUE(content, '$.id_cliente') AS STRING) AS id_cliente, - SAFE_CAST(JSON_VALUE(content, '$.id_produto') AS STRING) AS id_produto, - SAFE_CAST(JSON_VALUE(content, '$.id_servico') AS STRING) AS id_servico, - SAFE_CAST(JSON_VALUE(content, '$.id_tipo_midia') AS STRING) AS id_tipo_midia, - SAFE_CAST(JSON_VALUE(content, '$.is_abt') AS BOOL) AS is_abt, - SAFE_CAST(JSON_VALUE(content, '$.latitude_trx') AS FLOAT64) AS latitude_trx, - SAFE_CAST(JSON_VALUE(content, '$.longitude_trx') AS FLOAT64) AS longitude_trx, - SAFE_CAST(JSON_VALUE(content, '$.nr_logico_midia_operador') AS STRING) AS nr_logico_midia_operador, - SAFE_CAST(JSON_VALUE(content, '$.numero_serie_validador') AS STRING) AS numero_serie_validador, - SAFE_CAST(JSON_VALUE(content, '$.pan_hash') AS STRING) AS pan_hash, - SAFE_CAST(JSON_VALUE(content, '$.posicao_validador') AS STRING) AS posicao_validador, - SAFE_CAST(JSON_VALUE(content, '$.sentido') AS STRING) AS sentido, - SAFE_CAST(JSON_VALUE(content, '$.tipo_integracao') AS STRING) AS tipo_integracao, - SAFE_CAST(JSON_VALUE(content, '$.tipo_transacao') AS STRING) AS tipo_transacao, - SAFE_CAST(JSON_VALUE(content, '$.uid_origem') AS STRING) AS uid_origem, - SAFE_CAST(JSON_VALUE(content, '$.valor_tarifa') AS FLOAT64) AS valor_tarifa, - SAFE_CAST(JSON_VALUE(content, '$.valor_transacao') AS FLOAT64) AS valor_transacao, - SAFE_CAST(JSON_VALUE(content, '$.veiculo_id') AS STRING) AS veiculo_id, - SAFE_CAST(JSON_VALUE(content, '$.vl_saldo') AS FLOAT64) AS vl_saldo - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "transacao") }} - {% if is_incremental() -%} - WHERE - DATE(data) BETWEEN DATE("{{var('date_range_start')}}") AND DATE("{{var('date_range_end')}}") - AND DATETIME(PARSE_TIMESTAMP('%Y-%m-%d %H:%M:%S%Ez', timestamp_captura), "America/Sao_Paulo") BETWEEN DATETIME("{{var('date_range_start')}}") AND DATETIME("{{var('date_range_end')}}") - {%- endif %} -), -transacao_deduplicada AS ( - SELECT - * EXCEPT(rn) - FROM - ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY id ORDER BY timestamp_captura DESC) AS rn - FROM - transacao_aberta - ) - WHERE - rn = 1 -) -SELECT - EXTRACT(DATE FROM data_transacao) AS data, - EXTRACT(HOUR FROM data_transacao) AS hora, - data_transacao AS datetime_transacao, - data_processamento AS datetime_processamento, - t.timestamp_captura AS datetime_captura, - g.ds_grupo AS modo, - dc.id_consorcio AS id_consorcio, - do.id_operadora AS id_operadora, - l.nr_linha AS servico, - sentido, - NULL AS id_veiculo, - COALESCE(id_cliente, pan_hash) AS id_cliente, - id AS id_transacao, - id_tipo_midia AS id_tipo_pagamento, - tipo_transacao AS id_tipo_transacao, - tipo_integracao AS id_tipo_integracao, - NULL AS id_integracao, - latitude_trx AS latitude, - longitude_trx AS longitude, - NULL AS stop_id, - NULL AS stop_lat, - NULL AS stop_lon, - valor_transacao, - '{{ var("version") }}' as versao -FROM - transacao_deduplicada AS t -LEFT JOIN - {{ ref("staging_linha") }} AS l -ON - t.cd_linha = l.cd_linha - AND t.data_transacao >= l.datetime_inclusao -LEFT JOIN - {{ ref("staging_grupo_linha") }} AS gl -ON - t.cd_linha = gl.cd_linha - AND t.data_transacao >= gl.datetime_inicio_validade - AND (t.data_transacao <= gl.datetime_fim_validade OR gl.datetime_fim_validade IS NULL) -LEFT JOIN - {{ ref("staging_grupo") }} AS g -ON - gl.cd_grupo = g.cd_grupo - AND t.data_transacao >= g.datetime_inclusao -LEFT JOIN - {{ ref("staging_linha_consorcio") }} AS lc -ON - t.cd_linha = lc.cd_linha - AND t.data_transacao >= lc.datetime_inicio_validade - AND (t.data_transacao <= lc.datetime_fim_validade OR lc.datetime_fim_validade IS NULL) -LEFT JOIN - {{ ref("staging_consorcio") }} AS c -ON - lc.cd_consorcio = c.cd_consorcio -LEFT JOIN - {{ ref("staging_operadora_transporte") }} AS o -ON - t.cd_operadora = o.cd_operadora_transporte -LEFT JOIN - {{ ref("diretorio_operadoras") }} AS do -ON - t.cd_operadora = do.id_operadora_jae -LEFT JOIN - {{ ref("diretorio_consorcios") }} AS dc -ON - lc.cd_consorcio = dc.id_consorcio_jae diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_cliente.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_cliente.sql deleted file mode 100644 index 3182a75b..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_cliente.sql +++ /dev/null @@ -1,37 +0,0 @@ -{{ - config( - alias='cliente', - ) -}} - -WITH - cliente AS ( - SELECT - data, - SAFE_CAST(CD_CLIENTE AS STRING) AS cd_cliente, - timestamp_captura, - SAFE_CAST(JSON_VALUE(content, '$.CD_TIPO_DOCUMENTO') AS STRING) AS cd_tipo_documento, - SAFE_CAST(JSON_VALUE(content, '$.NM_CLIENTE') AS STRING) AS nm_cliente, - SAFE_CAST(JSON_VALUE(content, '$.NM_CLIENTE_SOCIAL') AS STRING) AS nm_cliente_social, - SAFE_CAST(JSON_VALUE(content, '$.IN_TIPO_PESSOA_FISICA_JURIDICA') AS STRING) AS in_tipo_pessoa_fisica_juridica, - SAFE_CAST(JSON_VALUE(content, '$.NR_DOCUMENTO') AS STRING) AS nr_documento, - SAFE_CAST(JSON_VALUE(content, '$.NR_DOCUMENTO_ALTERNATIVO') AS STRING) AS nr_documento_alternativo, - SAFE_CAST(JSON_VALUE(content, '$.TX_EMAIL') AS STRING) AS tx_email, - SAFE_CAST(JSON_VALUE(content, '$.NR_TELEFONE') AS STRING) AS nr_telefone, - SAFE_CAST(JSON_VALUE(content, '$.DT_CADASTRO') AS STRING) AS dt_cadastro - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "cliente") }} - ), - cliente_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY cd_cliente ORDER BY timestamp_captura DESC) AS rn - FROM - cliente - ) -SELECT - * EXCEPT(rn) -FROM - cliente_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_consorcio.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_consorcio.sql deleted file mode 100644 index 9e2f51d5..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_consorcio.sql +++ /dev/null @@ -1,30 +0,0 @@ -{{ - config( - alias='consorcio', - ) -}} - -WITH - consorcio AS ( - SELECT - data, - SAFE_CAST(CD_CONSORCIO AS STRING) AS cd_consorcio, - timestamp_captura, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INCLUSAO') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - SAFE_CAST(JSON_VALUE(content, '$.NM_CONSORCIO') AS STRING) AS nm_consorcio - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "consorcio") }} - ), - consorcio_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY cd_consorcio ORDER BY timestamp_captura DESC) AS rn - FROM - consorcio - ) -SELECT - * EXCEPT(rn) -FROM - consorcio_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_conta_bancaria.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_conta_bancaria.sql deleted file mode 100644 index 69dff169..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_conta_bancaria.sql +++ /dev/null @@ -1,33 +0,0 @@ -{{ - config( - alias='conta_bancaria', - ) -}} - -WITH - conta_bancaria AS ( - SELECT - data, - SAFE_CAST(CD_CLIENTE AS STRING) AS cd_cliente, - timestamp_captura, - SAFE_CAST(JSON_VALUE(content, '$.CD_AGENCIA') AS STRING) AS cd_agencia, - SAFE_CAST(JSON_VALUE(content, '$.CD_TIPO_CONTA') AS STRING) AS cd_tipo_conta, - SAFE_CAST(JSON_VALUE(content, '$.NM_BANCO') AS STRING) AS nm_banco, - SAFE_CAST(JSON_VALUE(content, '$.NR_BANCO') AS STRING) AS nr_banco, - SAFE_CAST(JSON_VALUE(content, '$.NR_CONTA') AS STRING) AS nr_conta, - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "conta_bancaria") }} - ), - conta_bancaria_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY cd_cliente ORDER BY timestamp_captura DESC) AS rn - FROM - conta_bancaria - ) -SELECT - * EXCEPT(rn) -FROM - conta_bancaria_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_contato_pessoa_juridica.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_contato_pessoa_juridica.sql deleted file mode 100644 index 8e26794a..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_contato_pessoa_juridica.sql +++ /dev/null @@ -1,34 +0,0 @@ -{{ - config( - alias='contato_pessoa_juridica', - ) -}} - -WITH - contato_pessoa_juridica AS ( - SELECT - data, - SAFE_CAST(NR_SEQ_CONTATO AS STRING) AS nr_seq_contato, - SAFE_CAST(CD_CLIENTE AS STRING) AS cd_cliente, - timestamp_captura, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INCLUSAO') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - SAFE_CAST(JSON_VALUE(content, '$.NM_CONTATO') AS STRING) AS nm_contato, - SAFE_CAST(JSON_VALUE(content, '$.NR_RAMAL') AS STRING) AS nr_ramal, - SAFE_CAST(JSON_VALUE(content, '$.NR_TELEFONE') AS STRING) AS nr_telefone, - SAFE_CAST(JSON_VALUE(content, '$.TX_EMAIL') AS STRING) AS tx_email, - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "contato_pessoa_juridica") }} - ), - contato_pessoa_juridica_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY nr_seq_contato, cd_cliente ORDER BY timestamp_captura DESC) AS rn - FROM - contato_pessoa_juridica - ) -SELECT - * EXCEPT(rn) -FROM - contato_pessoa_juridica_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_grupo.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_grupo.sql deleted file mode 100644 index 8360a105..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_grupo.sql +++ /dev/null @@ -1,31 +0,0 @@ -{{ - config( - alias='grupo', - ) -}} - -WITH - grupo AS ( - SELECT - data, - timestamp_captura, - SAFE_CAST(CD_GRUPO AS STRING) AS cd_grupo, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INCLUSAO') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - SAFE_CAST(JSON_VALUE(content, '$.CD_TIPO_GRUPO') AS STRING) AS cd_tipo_grupo, - SAFE_CAST(JSON_VALUE(content, '$.DS_GRUPO') AS STRING) AS ds_grupo, - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "grupo") }} - ), - grupo_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY cd_grupo ORDER BY timestamp_captura DESC) AS rn - FROM - grupo - ) -SELECT - * EXCEPT(rn) -FROM - grupo_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_grupo_linha.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_grupo_linha.sql deleted file mode 100644 index f38c0f4f..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_grupo_linha.sql +++ /dev/null @@ -1,32 +0,0 @@ -{{ - config( - alias='grupo_linha', - ) -}} - -WITH - grupo_linha AS ( - SELECT - data, - timestamp_captura, - SAFE_CAST(CD_GRUPO AS STRING) AS cd_grupo, - SAFE_CAST(CD_LINHA AS STRING) AS cd_linha, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INCLUSAO') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INICIO_VALIDADE') AS STRING)), "America/Sao_Paulo") AS datetime_inicio_validade, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_FIM_VALIDADE') AS STRING)), "America/Sao_Paulo") AS datetime_fim_validade - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "grupo_linha") }} - ), - grupo_linha_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY cd_grupo, cd_linha ORDER BY timestamp_captura DESC) AS rn - FROM - grupo_linha - ) -SELECT - * EXCEPT(rn) -FROM - grupo_linha_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha.sql deleted file mode 100644 index 5bdf0ef9..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha.sql +++ /dev/null @@ -1,43 +0,0 @@ -{{ - config( - alias='linha', - ) -}} - -WITH - linha AS ( - SELECT - data, - timestamp_captura, - SAFE_CAST(CD_LINHA AS STRING) AS cd_linha, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INCLUSAO') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - SAFE_CAST(JSON_VALUE(content, '$.CD_LINHA_OFICIAL') AS STRING) AS cd_linha_oficial, - SAFE_CAST(JSON_VALUE(content, '$.CD_LOCAL_OPERACAO_LINHA') AS STRING) AS cd_local_operacao_linha, - SAFE_CAST(JSON_VALUE(content, '$.CD_TIPO_CATEGORIA_LINHA') AS STRING) AS cd_tipo_categoria_linha, - SAFE_CAST(JSON_VALUE(content, '$.CD_TIPO_LINHA') AS STRING) AS cd_tipo_linha, - SAFE_CAST(JSON_VALUE(content, '$.CD_TIPO_MATRIZ_CALCULO_SUBSIDIO') AS STRING) AS cd_tipo_matriz_calculo_subsidio, - SAFE_CAST(JSON_VALUE(content, '$.IN_SITUACAO_ATIVIDADE') AS STRING) AS in_situacao_atividade, - SAFE_CAST(JSON_VALUE(content, '$.KM_LINHA') AS FLOAT64) AS km_linha, - SAFE_CAST(JSON_VALUE(content, '$.LATITUDE_DESTINO') AS STRING) AS latitude_destino, - SAFE_CAST(JSON_VALUE(content, '$.LATITUDE_ORIGEM') AS STRING) AS latitude_origem, - SAFE_CAST(JSON_VALUE(content, '$.LONGITUDE_DESTINO') AS STRING) AS longitude_destino, - SAFE_CAST(JSON_VALUE(content, '$.LONGITUDE_ORIGEM') AS STRING) AS longitude_origem, - SAFE_CAST(JSON_VALUE(content, '$.NM_LINHA') AS STRING) AS nm_linha, - SAFE_CAST(JSON_VALUE(content, '$.NR_LINHA') AS STRING) AS nr_linha, - SAFE_CAST(JSON_VALUE(content, '$.QUANTIDADE_SECAO') AS STRING) AS quantidade_secao - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "linha") }} - ), - linha_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY cd_linha ORDER BY timestamp_captura DESC) AS rn - FROM - linha - ) -SELECT - * EXCEPT(rn) -FROM - linha_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha_consorcio.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha_consorcio.sql deleted file mode 100644 index a6b2705d..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha_consorcio.sql +++ /dev/null @@ -1,35 +0,0 @@ -{{ - config( - alias='linha_consorcio', - ) -}} - -WITH - linha_consorcio AS ( - SELECT - data, - timestamp_captura, - SAFE_CAST(CD_CONSORCIO AS STRING) AS cd_consorcio, - SAFE_CAST(CD_LINHA AS STRING) AS cd_linha, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INCLUSAO') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%d', SAFE_CAST(JSON_VALUE(content, '$.DT_INICIO_VALIDADE') AS STRING)), "America/Sao_Paulo") AS datetime_inicio_validade, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%d', SAFE_CAST(JSON_VALUE(content, '$.DT_FIM_VALIDADE') AS STRING)), "America/Sao_Paulo") AS datetime_fim_validade - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "linha_consorcio") }} - ), - linha_consorcio_rn AS ( - SELECT - *, - CASE - WHEN datetime_fim_validade IS NULL THEN ROW_NUMBER() OVER (PARTITION BY cd_linha ORDER BY timestamp_captura DESC, datetime_inicio_validade DESC) - ELSE ROW_NUMBER() OVER (PARTITION BY cd_consorcio, cd_linha ORDER BY timestamp_captura DESC) - END AS rn - FROM - linha_consorcio - ) -SELECT - * EXCEPT(rn) -FROM - linha_consorcio_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_operadora_transporte.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_operadora_transporte.sql deleted file mode 100644 index b980933c..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_operadora_transporte.sql +++ /dev/null @@ -1,34 +0,0 @@ -{{ - config( - alias='operadora_transporte', - ) -}} - -WITH - operadora_transporte AS ( - SELECT - data, - SAFE_CAST(CD_OPERADORA_TRANSPORTE AS STRING) AS cd_operadora_transporte, - timestamp_captura, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INCLUSAO') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - SAFE_CAST(JSON_VALUE(content, '$.CD_CLIENTE') AS STRING) AS cd_cliente, - SAFE_CAST(JSON_VALUE(content, '$.CD_TIPO_CLIENTE') AS STRING) AS cd_tipo_cliente, - SAFE_CAST(JSON_VALUE(content, '$.CD_TIPO_MODAL') AS STRING) AS cd_tipo_modal, - SAFE_CAST(JSON_VALUE(content, '$.IN_SITUACAO_ATIVIDADE') AS STRING) AS in_situacao_atividade, - SAFE_CAST(JSON_VALUE(content, '$.DS_TIPO_MODAL') AS STRING) AS ds_tipo_modal - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "operadora_transporte") }} - ), - operadora_transporte_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY cd_operadora_transporte ORDER BY timestamp_captura DESC) AS rn - FROM - operadora_transporte - ) -SELECT - * EXCEPT(rn) -FROM - operadora_transporte_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_ordem_pagamento.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_ordem_pagamento.sql deleted file mode 100644 index c62a1f74..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_ordem_pagamento.sql +++ /dev/null @@ -1,47 +0,0 @@ -{{ - config( - alias='ordem_pagamento', - ) -}} - -WITH - ordem_pagamento AS ( - SELECT - data, - SAFE_CAST(id AS STRING) AS id_ordem_pagamento, - timestamp_captura, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E*S%Ez', SAFE_CAST(JSON_VALUE(content, '$.data_inclusao') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - PARSE_DATE('%Y-%m-%d', SAFE_CAST(JSON_VALUE(content, '$.data_ordem') AS STRING)) AS data_ordem, - PARSE_DATE('%Y-%m-%d', SAFE_CAST(JSON_VALUE(content, '$.data_pagamento') AS STRING)) AS data_pagamento, - SAFE_CAST(JSON_VALUE(content, '$.id_status_ordem') AS STRING) AS id_status_ordem, - SAFE_CAST(JSON_VALUE(content, '$.qtd_debito') AS INTEGER) AS qtd_debito, - SAFE_CAST(JSON_VALUE(content, '$.qtd_gratuidade') AS INTEGER) AS qtd_gratuidade, - SAFE_CAST(JSON_VALUE(content, '$.qtd_integracao') AS INTEGER) AS qtd_integracao, - SAFE_CAST(JSON_VALUE(content, '$.qtd_rateio_credito') AS INTEGER) AS qtd_rateio_credito, - SAFE_CAST(JSON_VALUE(content, '$.qtd_rateio_debito') AS INTEGER) AS qtd_rateio_debito, - SAFE_CAST(JSON_VALUE(content, '$.qtd_vendaabordo') AS INTEGER) AS qtd_vendaabordo, - SAFE_CAST(JSON_VALUE(content, '$.valor_bruto') AS FLOAT64) AS valor_bruto, - SAFE_CAST(JSON_VALUE(content, '$.valor_debito') AS FLOAT64) AS valor_debito, - SAFE_CAST(JSON_VALUE(content, '$.valor_gratuidade') AS FLOAT64) AS valor_gratuidade, - SAFE_CAST(JSON_VALUE(content, '$.valor_integracao') AS FLOAT64) AS valor_integracao, - SAFE_CAST(JSON_VALUE(content, '$.valor_liquido') AS FLOAT64) AS valor_liquido, - SAFE_CAST(JSON_VALUE(content, '$.valor_rateio_credito') AS FLOAT64) AS valor_rateio_credito, - SAFE_CAST(JSON_VALUE(content, '$.valor_rateio_debito') AS FLOAT64) AS valor_rateio_debito, - SAFE_CAST(JSON_VALUE(content, '$.valor_taxa') AS FLOAT64) AS valor_taxa, - SAFE_CAST(JSON_VALUE(content, '$.valor_vendaabordo') AS FLOAT64) AS valor_vendaabordo - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "ordem_pagamento") }} - ), - ordem_pagamento_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY id_ordem_pagamento ORDER BY timestamp_captura DESC) AS rn - FROM - ordem_pagamento - ) -SELECT - * EXCEPT(rn) -FROM - ordem_pagamento_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_ordem_ressarcimento.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_ordem_ressarcimento.sql deleted file mode 100644 index c6366092..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_ordem_ressarcimento.sql +++ /dev/null @@ -1,52 +0,0 @@ -{{ - config( - alias='ordem_ressarcimento', - ) -}} - -WITH - ordem_ressarcimento AS ( - SELECT - data, - SAFE_CAST(id AS STRING) AS id_ordem_ressarcimento, - timestamp_captura, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E*S%Ez', SAFE_CAST(JSON_VALUE(content, '$.data_inclusao') AS STRING)), "America/Sao_Paulo") AS datetime_inclusao, - PARSE_DATE('%Y-%m-%d', SAFE_CAST(JSON_VALUE(content, '$.data_ordem') AS STRING)) AS data_ordem, - SAFE_CAST(JSON_VALUE(content, '$.id_consorcio') AS STRING) AS id_consorcio, - SAFE_CAST(JSON_VALUE(content, '$.id_linha') AS STRING) AS id_linha, - SAFE_CAST(JSON_VALUE(content, '$.id_operadora') AS STRING) AS id_operadora, - SAFE_CAST(JSON_VALUE(content, '$.id_ordem_pagamento') AS STRING) AS id_ordem_pagamento, - SAFE_CAST(JSON_VALUE(content, '$.id_ordem_pagamento_consorcio') AS STRING) AS id_ordem_pagamento_consorcio, - SAFE_CAST(JSON_VALUE(content, '$.id_ordem_pagamento_consorcio_operadora') AS STRING) AS id_ordem_pagamento_consorcio_operadora, - SAFE_CAST(JSON_VALUE(content, '$.id_status_ordem') AS STRING) AS id_status_ordem, - SAFE_CAST(JSON_VALUE(content, '$.qtd_debito') AS INTEGER) AS qtd_debito, - SAFE_CAST(JSON_VALUE(content, '$.qtd_gratuidade') AS INTEGER) AS qtd_gratuidade, - SAFE_CAST(JSON_VALUE(content, '$.qtd_integracao') AS INTEGER) AS qtd_integracao, - SAFE_CAST(JSON_VALUE(content, '$.qtd_rateio_credito') AS INTEGER) AS qtd_rateio_credito, - SAFE_CAST(JSON_VALUE(content, '$.qtd_rateio_debito') AS INTEGER) AS qtd_rateio_debito, - SAFE_CAST(JSON_VALUE(content, '$.qtd_vendaabordo') AS INTEGER) AS qtd_vendaabordo, - SAFE_CAST(JSON_VALUE(content, '$.valor_bruto') AS FLOAT64) AS valor_bruto, - SAFE_CAST(JSON_VALUE(content, '$.valor_debito') AS FLOAT64) AS valor_debito, - SAFE_CAST(JSON_VALUE(content, '$.valor_gratuidade') AS FLOAT64) AS valor_gratuidade, - SAFE_CAST(JSON_VALUE(content, '$.valor_integracao') AS FLOAT64) AS valor_integracao, - SAFE_CAST(JSON_VALUE(content, '$.valor_liquido') AS FLOAT64) AS valor_liquido, - SAFE_CAST(JSON_VALUE(content, '$.valor_rateio_credito') AS FLOAT64) AS valor_rateio_credito, - SAFE_CAST(JSON_VALUE(content, '$.valor_rateio_debito') AS FLOAT64) AS valor_rateio_debito, - SAFE_CAST(JSON_VALUE(content, '$.valor_taxa') AS FLOAT64) AS valor_taxa, - SAFE_CAST(JSON_VALUE(content, '$.valor_vendaabordo') AS FLOAT64) AS valor_vendaabordo - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "ordem_ressarcimento") }} - ), - ordem_ressarcimento_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY id_ordem_ressarcimento ORDER BY timestamp_captura DESC) AS rn - FROM - ordem_ressarcimento - ) -SELECT - * EXCEPT(rn) -FROM - ordem_ressarcimento_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_pessoa_juridica.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_pessoa_juridica.sql deleted file mode 100644 index f875a626..00000000 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_pessoa_juridica.sql +++ /dev/null @@ -1,33 +0,0 @@ -{{ - config( - alias='pessoa_juridica', - ) -}} - -WITH - pessoa_juridica AS ( - SELECT - data, - SAFE_CAST(CD_CLIENTE AS STRING) AS cd_cliente, - timestamp_captura, - SAFE_CAST(JSON_VALUE(content, '$.NM_RAZAO_SOCIAL') AS STRING) AS nm_razao_social, - SAFE_CAST(JSON_VALUE(content, '$.NM_FANTASIA') AS STRING) AS nm_fantasia, - SAFE_CAST(JSON_VALUE(content, '$.NR_INSCRICAO_ESTADUAL_MUNICIPAL') AS STRING) AS nr_inscricao_estadual_municipal, - SAFE_CAST(JSON_VALUE(content, '$.TX_EMAIL_ALTERNATIVO') AS STRING) AS tx_email_alternativo, - SAFE_CAST(JSON_VALUE(content, '$.NR_DOCUMENTO') AS STRING) AS nr_documento, - FROM - {{ source("br_rj_riodejaneiro_bilhetagem_staging", "pessoa_juridica") }} - ), - pessoa_juridica_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY cd_cliente ORDER BY timestamp_captura DESC) AS rn - FROM - pessoa_juridica - ) -SELECT - * EXCEPT(rn) -FROM - pessoa_juridica_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_filtrada.sql b/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_filtrada.sql deleted file mode 100644 index d4fee6f1..00000000 --- a/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_filtrada.sql +++ /dev/null @@ -1,71 +0,0 @@ -{{ - config( - materialized='incremental', - partition_by={ - "field":"data", - "data_type": "date", - "granularity":"day" - } - ) -}} -/* -- Descrição: -Filtragem e tratamento básico de registros de gps. -1. Filtra registros antigos. Remove registros que tem diferença maior - que 1 minuto entre o timestamp_captura e timestamp_gps. -2. Filtra registros que estão fora de uma caixa que contém a área do - município de Rio de Janeiro. -*/ -WITH -box AS ( - /*1. Geometria de caixa que contém a área do município de Rio de Janeiro.*/ - SELECT - * - FROM - {{ var('limites_caixa') }}), -gps AS ( - /* 1. Filtra registros antigos. Remove registros que tem diferença maior - que 1 minuto entre o timestamp_captura e timestamp_gps.*/ - SELECT - *, - ST_GEOGPOINT(longitude, latitude) posicao_veiculo_geo - FROM - {{ ref('brt_registros_desaninhada') }} - {% if is_incremental() -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <= "{{var('date_range_end')}}" - AND DATETIME_DIFF(timestamp_captura, timestamp_gps, MINUTE) BETWEEN 0 AND 1 - {%- endif %} - ), -filtrada AS ( - /* 2. Filtra registros que estão fora de uma caixa que contém a área do - município de Rio de Janeiro.*/ - SELECT - id_veiculo, - latitude, - longitude, - posicao_veiculo_geo, - velocidade, - servico, - timestamp_gps, - timestamp_captura, - data, - hora, - row_number() over (partition by id_veiculo, timestamp_gps, servico) rn - FROM - gps - WHERE - ST_INTERSECTSBOX(posicao_veiculo_geo, - ( SELECT min_longitude FROM box), - ( SELECT min_latitude FROM box), - ( SELECT max_longitude FROM box), - ( SELECT max_latitude FROM box)) - ) -SELECT - * except(rn), - "{{ var("version") }}" as versao -FROM - filtrada -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_flag_trajeto_correto.sql b/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_flag_trajeto_correto.sql deleted file mode 100644 index d85a58ea..00000000 --- a/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_flag_trajeto_correto.sql +++ /dev/null @@ -1,93 +0,0 @@ -{{ - config( - materialized='ephemeral' - ) -}} -/* -Descrição: -Calcula se o veículo está dentro do trajeto correto dado o traçado (shape) cadastrado no SIGMOB em relação à linha que está sendo -transmitida. -1. Calcula as intersecções definindo um 'buffer', utilizado por st_dwithin para identificar se o ponto está à uma -distância menor ou igual ao tamanho do buffer em relação ao traçado definido no SIGMOB. -2. Calcula um histórico de intersecções nos ultimos 10 minutos de registros de cada carro. Definimos que o carro é -considerado fora do trajeto definido se a cada 10 minutos, ele não esteve dentro do traçado planejado pelo menos uma -vez. -3. Identifica se a linha informada no registro capturado existe nas definições presentes no SIGMOB. -4. Definimos em outra tabela uma 'data_versao_efetiva', esse passo serve tanto para definir qual versão do SIGMOB utilizaremos em -caso de falha na captura, quanto para definir qual versão será utilizada para o cálculo retroativo do histórico de registros que temos. -5. Como não conseguimos identificar o itinerário que o carro está realizando, no passo counts, os resultados de -intersecções são dobrados, devido ao fato de cada linha apresentar dois itinerários possíveis (ida/volta). Portanto, -ao final, realizamos uma agregação LOGICAL_OR que é true caso o carro esteja dentro do traçado de algum dos itinerários -possíveis para a linha informada. -*/ -WITH - registros AS ( - SELECT id_veiculo, servico as linha, latitude, longitude, data, posicao_veiculo_geo, timestamp_gps - FROM - {{ ref('brt_aux_registros_filtrada') }} r - {% if not flags.FULL_REFRESH -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - {%- endif %} - ), - intersec AS ( - SELECT - r.*, - s.data_versao, - s.linha_gtfs, - s.route_id, - -- 1. Buffer e intersecções - CASE - WHEN st_dwithin(shape, posicao_veiculo_geo, {{ var('tamanho_buffer_metros') }}) THEN TRUE - ELSE FALSE - END AS flag_trajeto_correto, - -- 2. Histórico de intersecções nos últimos 10 minutos a partir da timestamp_gps atual - CASE - WHEN - COUNT(CASE WHEN st_dwithin(shape, posicao_veiculo_geo, {{ var('tamanho_buffer_metros') }}) THEN 1 END) - OVER (PARTITION BY id_veiculo - ORDER BY UNIX_SECONDS(TIMESTAMP(timestamp_gps)) - RANGE BETWEEN {{ var('intervalo_max_desvio_segundos') }} PRECEDING AND CURRENT ROW) >= 1 - THEN True - ELSE False - END AS flag_trajeto_correto_hist, - -- 3. Identificação de cadastro da linha no SIGMOB - CASE WHEN s.linha_gtfs IS NULL THEN False ELSE True END AS flag_linha_existe_sigmob, - -- 4. Join com data_versao_efetiva para definição de quais shapes serão considerados no cálculo das flags - FROM registros r - LEFT JOIN ( - SELECT * - FROM {{ ref('shapes_geom') }} - WHERE id_modal_smtr in ({{ var('brt_id_modal_smtr')|join(', ') }}) - AND data_versao = "{{var('versao_fixa_sigmob')}}" - ) s - ON - r.linha = s.linha_gtfs - ) - -- 5. Agregação com LOGICAL_OR para evitar duplicação de registros - SELECT - id_veiculo, - linha as servico, - linha_gtfs, - route_id, - data, - timestamp_gps, - LOGICAL_OR(flag_trajeto_correto) AS flag_trajeto_correto, - LOGICAL_OR(flag_trajeto_correto_hist) AS flag_trajeto_correto_hist, - LOGICAL_OR(flag_linha_existe_sigmob) AS flag_linha_existe_sigmob, - -- STRUCT({{ maestro_sha }} AS versao_maestro, - -- {{ maestro_bq_sha }} AS versao_maestro_bq, - -- data_versao AS data_versao_sigmob - -- ) versao - FROM - intersec i - GROUP BY - id_veiculo, - linha, - linha_gtfs, - route_id, - data, - data_versao, - timestamp_gps - \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_parada.sql b/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_parada.sql deleted file mode 100644 index eef00ee3..00000000 --- a/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_parada.sql +++ /dev/null @@ -1,71 +0,0 @@ -{{ - config( - materialized='ephemeral' - ) -}} -/* -Descrição: -Identifica veículos parados em terminais ou garagens conhecidas. -1. Selecionamos os terminais conhecidos e uma geometria do tipo polígono (Polygon) que contém buracos nas -localizações das garagens. -2. Calculamos as distâncias do veículos em relação aos terminais conhecidos. Definimos aqui a coluna 'nrow', -que identifica qual o terminal que está mais próximo do ponto informado. No passo final, recuperamos apenas -os dados com nrow = 1 (menor distância em relação à posição do veículo) -3. Definimos uma distancia_limiar_parada. Caso o veículo esteja a uma distância menor que este valor de uma -parada, será considerado como parado no terminal com menor distancia. -4. Caso o veiculo não esteja intersectando o polígono das garagens, ele será considerado como parado dentro -de uma garagem (o polígono é vazado nas garagens, a não intersecção implica em estar dentro de um dos 'buracos'). -*/ -WITH - terminais as ( - -- 1. Selecionamos terminais, criando uma geometria de ponto para cada. - select - ST_GEOGPOINT(longitude, latitude) ponto_parada, nome_estacao nome_parada, 'terminal' tipo_parada - from {{ var('brt_terminais') }} - ), - garagem_polygon AS ( - -- 1. Selecionamos o polígono das garagens. - SELECT ST_GEOGFROMTEXT(WKT,make_valid => true) AS poly - FROM {{ var('polygon_garagem') }} - ), - distancia AS ( - --2. Calculamos as distâncias e definimos nrow - SELECT - id_veiculo, - timestamp_gps, - data, - servico, - posicao_veiculo_geo, - nome_parada, - tipo_parada, - ROUND(ST_DISTANCE(posicao_veiculo_geo, ponto_parada), 1) distancia_parada, - ROW_NUMBER() OVER (PARTITION BY timestamp_gps, id_veiculo, servico ORDER BY ST_DISTANCE(posicao_veiculo_geo, ponto_parada)) nrow - FROM terminais p - JOIN ( - SELECT * - FROM - {{ ref('brt_aux_registros_filtrada') }} - {% if not flags.FULL_REFRESH -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - {% endif %} - ) r - on 1=1 - ) -SELECT - data, - id_veiculo, - timestamp_gps, - servico, - /* - 3. e 4. Identificamos o status do veículo como 'terminal', 'garagem' (para os veículos parados) ou - 'nao_identificado' (para os veículos mais distantes de uma parada que o limiar definido) - */ - case - when distancia_parada < {{ var('distancia_limiar_parada') }} then tipo_parada - when not ST_INTERSECTS(posicao_veiculo_geo, (SELECT poly FROM garagem_polygon)) then 'garagem' - else null - end tipo_parada, -FROM distancia -WHERE nrow = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_velocidade.sql b/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_velocidade.sql deleted file mode 100644 index 3fed5312..00000000 --- a/queries/models/br_rj_riodejaneiro_brt_gps/brt_aux_registros_velocidade.sql +++ /dev/null @@ -1,92 +0,0 @@ -{{ - config( - materialized='ephemeral' - ) -}} -/* -Descrição: -Estimativa das velocidades dos veículos nos últimos 10 minutos contados a partir da timestamp_gps atual. -Essa metodologia serve para determinar quais carros estão em movimento e quais estão parados. -1. Calculamos a velocidade do veículo no último trecho de 10 minutos de operação. -A implementação utiliza a função 'first_value' com uma janela (cláusula 'over') de até 10 minutos anteriores à -timestamp_gps atual e calcula a distância do ponto mais antigo (o first_value na janela) ao ponto atual (posicao_veiculo_geo). -Dividimos essa distância pela diferença de tempo entre a timestamp_gps atual e a timestamp_gps do ponto mais -antigo da janela (o qual recuperamos novamente com o uso de first_value). -Esta diferença de tempo (datetime_diff) é calculada em segundos, portanto multiplicamos o resultado da divisão por um fator -3.6 para que a velocidade esteja em quilômetros por hora. O resultado final é arrendondado sem casas decimais. -Por fim, cobrimos esse cálculo com a função 'if_null' e retornamos zero para a velocidade em casos onde a divisão retornaria -um valor nulo. -2. Após o calculo da velocidade, definimos a coluna 'status_movimento'. Veículos abaixo da 'velocidade_limiar_parado', são -considerados como 'parado'. Caso contrário, são considerados 'andando' -*/ -with - t_velocidade as ( - select - data, - id_veiculo, - timestamp_gps, - servico, - ST_DISTANCE( - posicao_veiculo_geo, - lag(posicao_veiculo_geo) over ( - partition by id_veiculo, servico - order by timestamp_gps) - ) distancia, - IFNULL( - SAFE_DIVIDE( - ST_DISTANCE( - posicao_veiculo_geo, - lag(posicao_veiculo_geo) over ( - partition by id_veiculo, servico - order by timestamp_gps) - ), - DATETIME_DIFF( - timestamp_gps, - lag(timestamp_gps) over ( - partition by id_veiculo, servico - order by timestamp_gps), - SECOND - )), - 0 - ) * 3.6 velocidade - FROM {{ ref('brt_aux_registros_filtrada') }} - {% if not flags.FULL_REFRESH -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - {% endif %} - ), - medias as ( - select - data, - id_veiculo, - timestamp_gps, - servico, - distancia, - velocidade, # velocidade do pontual - AVG(velocidade) OVER ( - PARTITION BY id_veiculo, servico - ORDER BY unix_seconds(timestamp(timestamp_gps)) - RANGE BETWEEN {{ var('janela_movel_velocidade') }} PRECEDING AND CURRENT ROW - ) velocidade_media # velocidade com média móvel - from t_velocidade - ) -SELECT - timestamp_gps, - data, - id_veiculo, - servico, - distancia, - ROUND( - CASE WHEN velocidade_media > {{ var('velocidade_maxima') }} - THEN {{ var('velocidade_maxima') }} - ELSE velocidade_media - END, - 1) as velocidade, - -- 2. Determinação do estado de movimento do veículo. - case - when velocidade_media < {{ var('velocidade_limiar_parado') }} then false - else true - end flag_em_movimento, - -- STRUCT({{ maestro_sha }} AS versao_maestro, {{ maestro_bq_sha }} AS versao_maestro_bq) versao -FROM medias \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_brt_gps/brt_registros.sql b/queries/models/br_rj_riodejaneiro_brt_gps/brt_registros.sql deleted file mode 100644 index 5758fc61..00000000 --- a/queries/models/br_rj_riodejaneiro_brt_gps/brt_registros.sql +++ /dev/null @@ -1,9 +0,0 @@ -SELECT - SAFE_CAST(id_veiculo AS STRING) id_veiculo, - SAFE_CAST(DATETIME(TIMESTAMP(timestamp_gps), "America/Sao_Paulo" ) AS DATETIME) timestamp_gps, - SAFE_CAST(DATETIME(TIMESTAMP_TRUNC(TIMESTAMP(timestamp_captura), SECOND), "America/Sao_Paulo" ) AS DATETIME) timestamp_captura, - REPLACE(content,"None","") content, - data, - hora -from - {{var('brt_registros_staging')}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_brt_gps/brt_registros_desaninhada.sql b/queries/models/br_rj_riodejaneiro_brt_gps/brt_registros_desaninhada.sql deleted file mode 100644 index b9773e34..00000000 --- a/queries/models/br_rj_riodejaneiro_brt_gps/brt_registros_desaninhada.sql +++ /dev/null @@ -1,12 +0,0 @@ -SELECT -data, -hora, -id_veiculo, -timestamp_gps, -timestamp_captura, -SAFE_CAST(json_value(content,"$.latitude") AS FLOAT64) latitude, -SAFE_CAST(json_value(content,"$.longitude") AS FLOAT64) longitude, -json_value(content,"$.servico") servico, -json_value(content,"$.sentido") sentido, -SAFE_CAST(json_value(content,"$.velocidade") AS INT64) velocidade, -from {{ ref('brt_registros') }} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_gtfs/agency_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/agency_gtfs.sql deleted file mode 100644 index 7e40699b..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/agency_gtfs.sql +++ /dev/null @@ -1,18 +0,0 @@ -{{ config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['agency_id', 'data_versao'], - alias = 'agency', -) }} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(agency_id AS STRING) agency_id, - SAFE_CAST(JSON_VALUE(content, '$.agency_name') AS STRING) agency_name, - SAFE_CAST(JSON_VALUE(content, '$.agency_url') AS STRING) agency_url, - SAFE_CAST(JSON_VALUE(content, '$.agency_timezone') AS STRING) agency_timezone, - SAFE_CAST(JSON_VALUE(content, '$.agency_lang') AS STRING) agency_lang, - '{{ var("version") }}' as versao_modelo - FROM {{ source('br_rj_riodejaneiro_gtfs_staging', 'agency') }} - WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/calendar_dates_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/calendar_dates_gtfs.sql deleted file mode 100644 index 98612dd1..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/calendar_dates_gtfs.sql +++ /dev/null @@ -1,19 +0,0 @@ -{{ config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['service_id', 'date', 'data_versao'], - alias = 'calendar_dates' -) }} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(service_id AS STRING) service_id, - PARSE_DATE('%Y%m%d', SAFE_CAST(date AS STRING)) date, - SAFE_CAST(JSON_VALUE(content, '$.exception_type') AS STRING) exception_type, - '{{ var("version") }}' as versao_modelo -FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'calendar_dates' - ) }} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/calendar_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/calendar_gtfs.sql deleted file mode 100644 index 81f7b2b4..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/calendar_gtfs.sql +++ /dev/null @@ -1,26 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['service_id', 'data_versao'], - alias = 'calendar' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(service_id AS STRING) service_id, - SAFE_CAST(JSON_VALUE(content, '$.monday') AS STRING) monday, - SAFE_CAST(JSON_VALUE(content, '$.tuesday') AS STRING) tuesday, - SAFE_CAST(JSON_VALUE(content, '$.wednesday') AS STRING) wednesday, - SAFE_CAST(JSON_VALUE(content, '$.thursday') AS STRING) thursday, - SAFE_CAST(JSON_VALUE(content, '$.friday') AS STRING) friday, - SAFE_CAST(JSON_VALUE(content, '$.saturday') AS STRING) saturday, - SAFE_CAST(JSON_VALUE(content, '$.sunday') AS STRING) sunday, - PARSE_DATE('%Y%m%d', SAFE_CAST(JSON_VALUE(content, '$.start_date') AS STRING)) start_date, - PARSE_DATE('%Y%m%d', SAFE_CAST(JSON_VALUE(content, '$.end_date') AS STRING)) end_date, - '{{ var("version") }}' as versao_modelo - FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'calendar' - ) }} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/fare_attributes_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/fare_attributes_gtfs.sql deleted file mode 100644 index 9aa93e40..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/fare_attributes_gtfs.sql +++ /dev/null @@ -1,23 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['fare_id', 'data_versao'], - alias = 'fare_attributes' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(fare_id AS STRING) fare_id, - SAFE_CAST(JSON_VALUE(content, '$.price') AS FLOAT64) price, - SAFE_CAST(JSON_VALUE(content, '$.currency_type') AS STRING) currency_type, - SAFE_CAST(JSON_VALUE(content, '$.payment_method') AS STRING) payment_method, - SAFE_CAST(JSON_VALUE(content, '$.transfers') AS STRING) transfers, - SAFE_CAST(JSON_VALUE(content, '$.agency_id') AS STRING) agency_id, - SAFE_CAST(JSON_VALUE(content, '$.transfer_duration') AS INT64) transfer_duration, - '{{ var("version") }}' as versao_modelo -FROM {{source( - 'br_rj_riodejaneiro_gtfs_staging', - 'fare_attributes' - )}} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/fare_rules_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/fare_rules_gtfs.sql deleted file mode 100644 index 27d72b8d..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/fare_rules_gtfs.sql +++ /dev/null @@ -1,22 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['fare_id', 'data_versao'], - alias = 'fare_rules' -)}} - - -SELECT - SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(JSON_VALUE(content, '$.fare_id') AS STRING) fare_id, - SAFE_CAST(JSON_VALUE(content, '$.route_id') AS STRING) route_id, - SAFE_CAST(JSON_VALUE(content, '$.origin_id') AS STRING) origin_id, - SAFE_CAST(JSON_VALUE(content, '$.destination_id') AS STRING) destination_id, - SAFE_CAST(JSON_VALUE(content, '$.contains_id') AS STRING) contains_id, - '{{ var("version") }}' as versao_modelo - FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'fare_rules' - ) }} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/feed_info_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/feed_info_gtfs.sql deleted file mode 100644 index c2620a06..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/feed_info_gtfs.sql +++ /dev/null @@ -1,25 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['feed_publisher_name', 'data_versao'], - alias = 'feed_info' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(feed_publisher_name AS STRING) feed_publisher_name, - SAFE_CAST(JSON_VALUE(content, '$.feed_publisher_url') AS STRING) feed_publisher_url, - SAFE_CAST(JSON_VALUE(content, '$.feed_lang') AS STRING) feed_lang, - SAFE_CAST(JSON_VALUE(content, '$.default_lang') AS STRING) default_lang, - PARSE_DATE('%Y%m%d', SAFE_CAST(JSON_VALUE(content, '$.feed_start_date') AS STRING)) feed_start_date, - PARSE_DATE('%Y%m%d', SAFE_CAST(JSON_VALUE(content, '$.feed_end_date') AS STRING)) feed_end_date, - SAFE_CAST(JSON_VALUE(content, '$.feed_version') AS STRING) feed_version, - SAFE_CAST(JSON_VALUE(content, '$.feed_contact_email') AS STRING) feed_contact_email, - SAFE_CAST(JSON_VALUE(content, '$.feed_contact_url') AS STRING) feed_contact_url, - '{{ var("version") }}' as versao_modelo - FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'feed_info' - ) }} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/frequencies_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/frequencies_gtfs.sql deleted file mode 100644 index 4573ebaa..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/frequencies_gtfs.sql +++ /dev/null @@ -1,18 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['trip_id', 'start_time', 'data_versao'], - alias = 'frequencies' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(trip_id AS STRING) trip_id, - SAFE_CAST(start_time AS STRING) start_time, - SAFE_CAST(JSON_VALUE(content, '$.end_time') AS STRING) end_time, - SAFE_CAST(JSON_VALUE(content, '$.headway_secs') AS INT64) headway_secs, - SAFE_CAST(JSON_VALUE(content, '$.exact_times') AS STRING) exact_times, - '{{ var("version") }}' as versao_modelo - FROM {{source('br_rj_riodejaneiro_gtfs_staging', 'frequencies')}} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/ordem_servico_diaria.sql b/queries/models/br_rj_riodejaneiro_gtfs/ordem_servico_diaria.sql deleted file mode 100644 index 12651e2e..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/ordem_servico_diaria.sql +++ /dev/null @@ -1,68 +0,0 @@ -{{ config( - materialized="view" -) }} - -WITH - data_versao AS ( - SELECT - data_versao, - data_versao AS data_inicio, - COALESCE(DATE_SUB(LEAD(data_versao) OVER (ORDER BY data_versao), INTERVAL 1 DAY), LAST_DAY(data_versao, MONTH)) AS data_fim - FROM ( - SELECT - DISTINCT data_versao, - FROM - {{ ref("ordem_servico_gtfs") }} )), - ordem_servico_pivot AS ( - SELECT - * - FROM - {{ ref("ordem_servico_gtfs") }} - PIVOT( MAX(partidas_ida) AS partidas_ida, - MAX(partidas_volta) AS partidas_volta, - MAX(viagens_planejadas) AS viagens_planejadas, - MAX(distancia_total_planejada) AS km FOR - tipo_dia IN ( - 'Dia Útil' AS du, - 'Ponto Facultativo' AS pf, - 'Sabado' AS sab, - 'Domingo' AS dom ))) -SELECT - DATA, - tipo_dia, - servico, - vista, - consorcio, - sentido, - CASE - {% set tipo_dia = {"Dia Útil": "du", "Ponto Facultativo": "pf", "Sabado": "sab", "Domingo": "dom"} %} - {% set sentido = {"ida": ("I", "C"), "volta": "V"} %} - {%- for key_s, value_s in sentido.items() %} - {%- for key_td, value_td in tipo_dia.items() %} - WHEN sentido {% if key_s == "ida" %} IN {{ value_s }} {% else %} = "{{ value_s }}" {% endif %} AND tipo_dia = "{{ key_td }}" THEN {% if key_td in ["Sabado", "Domingo"] %} ROUND(SAFE_DIVIDE((partidas_{{ key_s }}_du * km_{{ value_td }}), km_du)) {% else %} partidas_{{ key_s }}_{{ value_td }} {% endif %} - {% endfor -%} - {% endfor -%} -END - AS viagens_planejadas, - horario_inicio AS inicio_periodo, - horario_fim AS fim_periodo -FROM - UNNEST(GENERATE_DATE_ARRAY((SELECT MIN(data_inicio) FROM data_versao), (SELECT MAX(data_fim) FROM data_versao))) AS DATA -LEFT JOIN - data_versao AS d -ON - DATA BETWEEN d.data_inicio - AND d.data_fim -LEFT JOIN - {{ ref("subsidio_data_versao_efetiva") }} AS sd -USING - (DATA) -LEFT JOIN - ordem_servico_pivot AS o -USING - (data_versao) -LEFT JOIN - {{ ref("servicos_sentido") }} -USING - (data_versao, - servico) diff --git a/queries/models/br_rj_riodejaneiro_gtfs/ordem_servico_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/ordem_servico_gtfs.sql deleted file mode 100644 index 3aaf19ce..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/ordem_servico_gtfs.sql +++ /dev/null @@ -1,73 +0,0 @@ -{{ config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['servico', 'data_versao'], - alias = 'ordem_servico' -) }} - -WITH ordem_servico AS ( - SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(servico AS STRING) servico, - SAFE_CAST(JSON_VALUE(content, '$.vista') AS STRING) vista, - SAFE_CAST(JSON_VALUE(content, '$.consorcio') AS STRING) consorcio, - SAFE_CAST(JSON_VALUE(content, '$.horario_inicio') AS STRING) horario_inicio, - SAFE_CAST(JSON_VALUE(content, '$.horario_fim') AS STRING) horario_fim, - SAFE_CAST(JSON_VALUE(content, '$.extensao_ida') AS FLOAT64) extensao_ida, - SAFE_CAST(JSON_VALUE(content, '$.extensao_volta') AS FLOAT64) extensao_volta, - SAFE_CAST(JSON_VALUE(content, '$.partidas_ida_du') AS INT64) partidas_ida_du, - SAFE_CAST(JSON_VALUE(content, '$.partidas_volta_du') AS INT64) partidas_volta_du, - SAFE_CAST(JSON_VALUE(content, '$.viagens_du') AS FLOAT64) viagens_du, - SAFE_CAST(JSON_VALUE(content, '$.km_dia_util') AS FLOAT64) km_du, - SAFE_CAST(JSON_VALUE(content, '$.partidas_ida_pf') AS INT64) partidas_ida_pf, - SAFE_CAST(JSON_VALUE(content, '$.partidas_volta_pf') AS INT64) partidas_volta_pf, - SAFE_CAST(JSON_VALUE(content, '$.viagens_pf') AS FLOAT64) viagens_pf, - SAFE_CAST(JSON_VALUE(content, '$.km_pf') AS FLOAT64) km_pf, - NULL partidas_ida_sabado, - NULL partidas_volta_sabado, - SAFE_CAST(NULL AS FLOAT64) viagens_sabado, - SAFE_CAST(JSON_VALUE(content, '$.km_sabado') AS FLOAT64) km_sabado, - NULL partidas_ida_domingo, - NULL partidas_volta_domingo, - SAFE_CAST(NULL AS FLOAT64) viagens_domingo, - SAFE_CAST(JSON_VALUE(content, '$.km_domingo') AS FLOAT64) km_domingo, - '{{ var("version") }}' as versao_modelo - FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'ordem_servico' - ) }} - WHERE data_versao = '{{ var("data_versao_gtfs") }}') -SELECT * -FROM ordem_servico UNPIVOT ( - ( - partidas_ida, - partidas_volta, - viagens_planejadas, - distancia_total_planejada - ) FOR tipo_dia IN ( - ( - partidas_ida_du, - partidas_volta_du, - viagens_du, - km_du - ) AS 'Dia Útil', - ( - partidas_ida_pf, - partidas_volta_pf, - viagens_pf, - km_pf - ) AS 'Ponto Facultativo', - ( - partidas_ida_sabado, - partidas_volta_sabado, - viagens_sabado, - km_sabado - ) AS 'Sabado', - ( - partidas_ida_domingo, - partidas_volta_domingo, - viagens_domingo, - km_domingo - ) AS 'Domingo' - ) - ) diff --git a/queries/models/br_rj_riodejaneiro_gtfs/routes_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/routes_gtfs.sql deleted file mode 100644 index a3da2df7..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/routes_gtfs.sql +++ /dev/null @@ -1,29 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['route_id', 'data_versao'], - alias = 'routes' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(route_id AS STRING) route_id, - SAFE_CAST(JSON_VALUE(content, '$.agency_id') AS STRING) agency_id, - SAFE_CAST(JSON_VALUE(content, '$.route_short_name') AS STRING) route_short_name, - SAFE_CAST(JSON_VALUE(content, '$.route_long_name') AS STRING) route_long_name, - SAFE_CAST(JSON_VALUE(content, '$.route_desc') AS STRING) route_desc, - SAFE_CAST(JSON_VALUE(content, '$.route_type') AS STRING) route_type, - SAFE_CAST(JSON_VALUE(content, '$.route_url') AS STRING) route_url, - SAFE_CAST(JSON_VALUE(content, '$.route_color') AS STRING) route_color, - SAFE_CAST(JSON_VALUE(content, '$.route_text_color') AS STRING) route_text_color, - SAFE_CAST(JSON_VALUE(content, '$.route_sort_order') AS INT64) route_sort_order, - SAFE_CAST(JSON_VALUE(content, '$.continuous_pickup') AS STRING) continuous_pickup, - SAFE_CAST(JSON_VALUE(content, '$.continuous_drop_off') AS STRING) continuous_drop_off, - SAFE_CAST(JSON_VALUE(content, '$.network_id') AS STRING) network_id, - '{{ var("version") }}' as versao_modelo - FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'routes' - ) }} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/schema.yml b/queries/models/br_rj_riodejaneiro_gtfs/schema.yml deleted file mode 100644 index 25594898..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/schema.yml +++ /dev/null @@ -1,342 +0,0 @@ -version: 2 -sources: - - name: "br_rj_riodejaneiro_gtfs" - -models: - - name: agency_gtfs - description: "Agência de transporte público com serviços representados neste conjunto de dados." - columns: - - name: agency_id - description: "Identifica uma marca de transporte público que geralmente é sinônimo de agência de transporte público." - - name: agency_name - description: "Nome completo da agência de transporte público." - - name: agency_url - description: "URL da agência de transporte público." - - name: agency_timezone - description: "Fuso horário onde a agência de transporte público está localizada" - - name: agency_lang - description: "Idioma principal usado por esta agência de transporte público." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: calendar_gtfs - description: "Datas de serviço especificadas usando uma programação semanal com datas de início e término." - columns: - - name: service_id - description: "Identifica um conjunto de datas em que o serviço está disponível para uma ou mais rotas." - - name: monday - description: "Indica se o serviço funciona todas as segundas-feiras no intervalo de datas especificado pelos campos start_date e end_date" - - name: tuesday - description: "Funciona da mesma forma que segunda-feira, exceto se aplica às terças-feiras." - - name: wednesday - description: "Funciona da mesma forma que segunda-feira, exceto se aplica às quartas-feiras." - - name: thursday - description: "Funciona da mesma forma que segunda-feira, exceto se aplica às quintas-feiras." - - name: friday - description: "Funciona da mesma forma que segunda-feira, exceto se aplica às sextas-feiras." - - name: saturday - description: "Funciona da mesma forma que segunda-feira, exceto se aplica aos sábados." - - name: sunday - description: "Funciona da mesma forma que segunda-feira, exceto se aplica aos domingos." - - name: start_date - description: "Inicie o dia de serviço para o intervalo de serviço." - - name: end_date - description: "Finalize o dia de serviço para o intervalo de serviço." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: calendar_dates_gtfs - description: "Exceções para os serviços definidos no calendar.txt." - columns: - - name: service_id - description: "Identifica um conjunto de datas quando ocorre uma exceção de serviço para uma ou mais rotas" - - name: date - description: "Data em que ocorre a exceção de serviço." - - name: exception_type - description: "Indica se o serviço está disponível na data especificada no campo de data." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: fare_attributes_gtfs - description: "Informações sobre tarifas para rotas de uma agência de transporte público." - columns: - - name: fare_id - description: "Identifica uma classe de tarifa." - - name: price - description: "Preço da tarifa, na unidade especificada por currency_type." - - name: currency_type - description: "Moeda usada para pagar a tarifa." - - name: payment_method - description: "Indica quando a tarifa deve ser paga." - - name: transfers - description: "Indica o número de transferências permitidas nesta tarifa" - - name: agency_id - description: "Identifica a agência relevante para uma tarifa." - - name: transfer_duration - description: "Período de tempo em segundos antes que uma transferência expire." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: fare_rules_gtfs - description: "Regras para aplicação de tarifas de itinerários." - columns: - - name: fare_id - description: "Identifica uma classe de tarifa." - - name: route_id - description: "Identifica uma rota associada à classe de tarifa." - - name: origin_id - description: "Identifica uma zona de origem." - - name: destination_id - description: "Identifica uma zona de destino." - - name: contains_id - description: "Identifica as zonas nas quais um passageiro entrará ao usar uma determinada classe de tarifa." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: feed_info_gtfs - description: "Metadados do conjunto de dados, incluindo informações sobre editor, versão e expiração." - columns: - - name: feed_publisher_name - description: "Nome completo da organização que publica o conjunto de dados." - - name: feed_publisher_url - description: "URL do site da organização que publica o conjunto de dados." - - name: feed_lang - description: "Idioma padrão usado para o texto neste conjunto de dados." - - name: default_lang - description: "Define o idioma que deve ser usado quando o consumidor de dados não conhece o idioma do passageiro." - - name: feed_start_date - description: "O conjunto de dados fornece informações de programação completas e confiáveis para serviço no período que vai do início do dia feed_start_date até o final do dia feed_end_date." - - name: feed_end_date - description: "O conjunto de dados fornece informações de programação completas e confiáveis para serviço no período que vai do início do dia feed_start_date até o final do dia feed_end_date." - - name: feed_version - description: "String que indica a versão atual do conjunto de dados GTFS." - - name: feed_contact_email - description: "Endereço de e-mail para comunicação sobre o conjunto de dados GTFS e práticas de publicação de dados." - - name: feed_contact_url - description: "n, um formulário web, suporte técnico ou outras ferramentas para comunicação sobre o conjunto de dados GTFS e práticas de publicação de dados." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: frequencies_gtfs - description: "Intervalo (tempo entre viagens) para serviço baseado em intervalo ou uma representação compactada de serviço com horário fixo." - columns: - - name: trip_id - description: "Identifica uma viagem à qual se aplica o intervalo de serviço especificado." - - name: start_time - description: "Hora em que o primeiro veículo sai da primeira parada da viagem com o intervalo especificado." - - name: end_time - description: "Hora em que o serviço muda para um intervalo diferente (ou cessa) na primeira parada da viagem." - - name: headway_secs - description: "Tempo, em segundos, entre partidas da mesma parada (intervalo) da viagem, durante o intervalo de tempo especificado por start_time e end_time." - - name: exact_times - description: "Indica o tipo de serviço para uma viagem." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: routes_gtfs - description: "Rotas de trânsito. Uma rota é um grupo de viagens exibidas aos passageiros como um único serviço." - columns: - - name: route_id - description: "Identifica uma rota." - - name: agency_id - description: "Agência para a rota especificada." - - name: route_short_name - description: "Nome abreviado de uma rota." - - name: route_long_name - description: "Nome completo de uma rota." - - name: route_desc - description: "Descrição de uma rota que fornece informações úteis e de qualidade." - - name: route_type - description: "Indica o tipo de transporte utilizado em uma rota." - - name: route_url - description: "URL de uma página da web sobre uma rota específica." - - name: route_color - description: "Designação de cores da rota que corresponda ao material voltado para o público." - - name: route_text_color - description: "Cor legível a ser usada para texto desenhado contra um fundo de route_color." - - name: route_sort_order - description: "Ordena as rotas de forma ideal para apresentação aos clientes." - - name: continuous_pickup - description: "Indica que o passageiro pode embarcar no veículo de transporte público em qualquer ponto ao longo do trajeto de viagem do veículo, conforme descrito em shape.txt, em cada viagem do trajeto." - - name: continuous_drop_off - description: "Indica que o passageiro pode descer do veículo de transporte público em qualquer ponto ao longo do trajeto de viagem do veículo, conforme descrito em shape.txt, em cada viagem da rota." - - name: network_id - description: "Identifica um grupo de rotas. Várias linhas em rotas.txt podem ter o mesmo network_id." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: shapes_geom_gtfs - description: "Tabela com os shapes dos serviços." - columns: - - name: shape_id - description: "Identifica uma forma." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: shape - description: "Dado geográfico construído com a query." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: shapes_gtfs - description: "Regras para mapear caminhos de deslocamento de veículos, às vezes chamados de alinhamentos de rotas." - columns: - - name: shape_id - description: "Identifica uma forma." - - name: shape_pt_sequence - description: "Sequência na qual os pontos da forma se conectam para formar a forma." - - name: shape_pt_lat - description: "Latitude de um ponto de forma." - - name: shape_pt_lon - description: "Longitude de um ponto de forma." - - name: shape_dist_traveled - description: "Distância real percorrida ao longo da forma desde o primeiro ponto da forma até o ponto especificado neste registro." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: stops_gtfs - description: "Paradas onde os veículos pegam ou deixam os passageiros. Também define estações e entradas de estação." - columns: - - name: stop_id - description: "Identifica uma localização: paragem/plataforma, estação, entrada/saída, nó genérico ou área de embarque" - - name: stop_code - description: "Texto curto ou um número que identifica a localização dos passageiros." - - name: stop_name - description: "Nome do local." - - name: tts_stop_name - description: "Versão legível do stop_name." - - name: stop_desc - description: "Descrição do local que fornece informações úteis e de qualidade." - - name: stop_lat - description: "Latitude do local." - - name: stop_lon - description: "Longitude do local." - - name: zone_id - description: "Identifica a zona tarifária para uma parada." - - name: stop_url - description: "URL de uma página da web sobre o local." - - name: location_type - description: "Tipo de localização." - - name: parent_station - description: "Define a hierarquia entre os diferentes locais definidos em stops.txt." - - name: stop_timezone - description: "Fuso horário do local." - - name: wheelchair_boarding - description: "Indica se o embarque para cadeiras de rodas é possível no local." - - name: level_id - description: "Nível do local." - - name: platform_code - description: "Identificador de plataforma para uma parada de plataforma (uma parada pertencente a uma estação)." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: stop_times_gtfs - description: "Horários em que um veículo chega e sai das paradas de cada viagem." - columns: - - name: trip_id - description: "Identifica uma viagem." - - name: stop_sequence - description: "Ordem das paradas para uma viagem específica." - - name: stop_id - description: "Identifica a parada atendida." - - name: arrival_time - description: "Hora de chegada na parada (definida por stop_times.stop_id) para uma viagem específica (definida por stop_times.trip_id) no fuso horário especificado por agency.agency_timezone, não por stops.stop_timezone." - - name: departure_time - description: "Hora de partida da parada (definida por stop_times.stop_id) para uma viagem específica (definida por stop_times.trip_id) no fuso horário especificado por agency.agency_timezone, não por stops.stop_timezone." - - name: stop_headsign - description: "Texto que aparece na sinalização identificando o destino da viagem aos passageiros." - - name: pickup_type - description: "Indica o método de coleta." - - name: drop_off_type - description: " Indica o método de entrega." - - name: continuous_pickup - description: "Indica que o passageiro pode embarcar no veículo de transporte público em qualquer ponto ao longo do trajeto de viagem do veículo, conforme descrito em shape.txt, deste stop_time até o próximo stop_time na stop_sequence da viagem." - - name: continuous_drop_off - description: "Indica que o passageiro pode descer do veículo de transporte público em qualquer ponto ao longo do caminho de viagem do veículo, conforme descrito por shape.txt, deste stop_time até o próximo stop_time na stop_sequence da viagem." - - name: shape_dist_traveled - description: "Distância real percorrida ao longo do formato associado, desde a primeira parada até a parada especificada neste registro." - - name: timepoint - description: "Indica se os horários de chegada e saída de uma parada são rigorosamente respeitados pelo veículo ou se são horários aproximados e/ou interpolados." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: trips_gtfs - description: "Viagens para cada rota." - columns: - - name: trip_id - description: "Identifica uma viagem." - - name: route_id - description: "Identifica uma rota." - - name: service_id - description: "Identifica um conjunto de datas em que o serviço está disponível para uma ou mais rotas." - - name: trip_headsign - description: "Texto que aparece na sinalização identificando o destino da viagem aos passageiros." - - name: trip_short_name - description: "Texto voltado ao público usado para identificar a viagem aos passageiros, por exemplo, para identificar os números dos trens para viagens de trens suburbanos." - - name: direction_id - description: "Indica a direção de deslocamento de uma viagem." - - name: block_id - description: "Identifica o bloco ao qual pertence a viagem." - - name: shape_id - description: "Identifica uma forma geoespacial que descreve o caminho de deslocamento do veículo para uma viagem." - - name: wheelchair_accessible - description: "Indica acessibilidade para cadeiras de rodas." - - name: bikes_allowed - description: "Indica se bicicletas são permitidas." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." - - - name: ordem_servico_gtfs - description: "Dados das linhas presentes no município." - columns: - - name: servico - description: "Número da linha de ônibus." - - name: vista - description: "Letreiro do ônibus." - - name: consorcio - description: "Nome do consórcio responsável pela linha." - - name: horario_inicio - description: "Horário inicial de funcionamento." - - name: horario_fim - description: "Horário da última viagem." - - name: extensao_ida - description: "Distância percorrida na ida." - - name: extensao_volta - description: "Distância percorrida na volta." - - name: partidas_ida - description: "Quantidade de partidas no sentido ida." - - name: partidas_volta - description: "Quantidade de partidas no sentido volta." - - name: viagens_planejadas - description: "Quantidade de viagens realizadas." - - name: distancia_total_planejada - description: "Distância total planejada diária para o serviço. " - - name: tipo_dia - description: "Tipo de dia, se dia útil, sábado, domingo ou ponto facultativo." - - name: data_versao - description: "Data de referência do feed (versão)." - - name: versao_modelo - description: "Código de controle de versão (SHA do GitHub)." diff --git a/queries/models/br_rj_riodejaneiro_gtfs/servicos_sentido.sql b/queries/models/br_rj_riodejaneiro_gtfs/servicos_sentido.sql deleted file mode 100644 index 5e0bbfdb..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/servicos_sentido.sql +++ /dev/null @@ -1,79 +0,0 @@ -{{ config( - materialized="view" -) }} - -WITH - servicos_exclusivos_sabado AS ( - SELECT - DISTINCT servico - FROM - {{ ref("ordem_servico_gtfs") }} - WHERE - tipo_dia = "Dia Útil" - AND viagens_planejadas = 0), - servicos AS ( - SELECT - * EXCEPT(versao_modelo, - shape) - FROM - {{ ref("trips_gtfs") }} AS t - LEFT JOIN - {{ ref("shapes_geom_gtfs") }} AS s - USING - (data_versao, - shape_id) - WHERE - (data_versao >= "2023-06-01" AND - ( trip_short_name NOT IN (SELECT * FROM servicos_exclusivos_sabado) - AND (service_id LIKE "U_R%" - OR service_id LIKE "U_O%") ) - OR ( trip_short_name IN (SELECT * FROM servicos_exclusivos_sabado) - AND (service_id LIKE "S_R%" - OR service_id LIKE "S_O%"))) - OR - (data_versao < "2023-06-01" AND - ( trip_short_name NOT IN (SELECT * FROM servicos_exclusivos_sabado) - OR ( trip_short_name IN (SELECT * FROM servicos_exclusivos_sabado) - AND service_id = "S"))) - AND shape_distance IS NOT NULL), - servicos_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY data_versao, trip_short_name, direction_id ORDER BY trip_short_name, service_id, shape_id, direction_id) AS rn - FROM - servicos ), - servicos_filtrada AS ( - SELECT - * EXCEPT(rn) - FROM - servicos_rn - WHERE - rn = 1), - servicos_potencialmente_circulares AS ( - SELECT - data_versao, - trip_short_name, - COUNT(DISTINCT direction_id) AS q_direcoes - FROM - servicos_filtrada - GROUP BY - 1, - 2 - HAVING - COUNT(DISTINCT direction_id) = 1 ) -SELECT - data_versao, - trip_short_name AS servico, - CASE - WHEN q_direcoes = 1 AND ST_DISTANCE(start_pt, end_pt) <= 50 THEN "C" - WHEN direction_id = "0" THEN "I" - WHEN direction_id = "1" THEN "V" -END - AS sentido -FROM - servicos_filtrada AS sf -LEFT JOIN - servicos_potencialmente_circulares AS spc -USING - (data_versao, - trip_short_name) \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_gtfs/shapes_geom_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/shapes_geom_gtfs.sql deleted file mode 100644 index 4ec84c74..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/shapes_geom_gtfs.sql +++ /dev/null @@ -1,77 +0,0 @@ -{{ config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['shape_id', 'data_versao'], - alias = 'shapes_geom' -) }} - - -WITH contents AS ( - SELECT shape_id, - ST_GEOGPOINT(shape_pt_lon, shape_pt_lat) AS ponto_shape, - shape_pt_sequence, - data_versao, - FROM {{ref('shapes_gtfs')}} s - WHERE data_versao = '{{ var("data_versao_gtfs") }}' -), -pts AS ( - SELECT *, - MAX(shape_pt_sequence) OVER(PARTITION BY data_versao, shape_id) final_pt_sequence - FROM contents c - ORDER BY data_versao, - shape_id, - shape_pt_sequence -), -shapes AS ( - -- BUILD LINESTRINGS OVER SHAPE POINTS - SELECT shape_id, - data_versao, - ST_MAKELINE(ARRAY_AGG(ponto_shape)) AS shape - FROM pts - GROUP BY 1, - 2 -), -boundary AS ( - -- EXTRACT START AND END POINTS FROM SHAPES - SELECT c1.shape_id, - c1.ponto_shape start_pt, - c2.ponto_shape end_pt, - c1.data_versao - FROM ( - SELECT * - FROM pts - WHERE shape_pt_sequence = 1 - ) c1 - JOIN ( - SELECT * - FROM pts - WHERE shape_pt_sequence = final_pt_sequence - ) c2 ON c1.shape_id = c2.shape_id - AND c1.data_versao = c2.data_versao -), -merged AS ( - -- JOIN SHAPES AND BOUNDARY POINTS - SELECT s.*, - b.* - EXCEPT(data_versao, shape_id), - ROUND(ST_LENGTH(shape), 1) shape_distance, - FROM shapes s - JOIN boundary b ON s.shape_id = b.shape_id - AND s.data_versao = b.data_versao -), -ids AS ( - SELECT data_versao, - shape_id, - shape, - shape_distance, - start_pt, - end_pt, - ROW_NUMBER() OVER(PARTITION BY data_versao, shape_id) rn - FROM merged m -) -SELECT - * EXCEPT(rn), - '{{ var("version") }}' as versao_modelo -FROM ids -WHERE rn = 1 diff --git a/queries/models/br_rj_riodejaneiro_gtfs/shapes_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/shapes_gtfs.sql deleted file mode 100644 index 59b42843..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/shapes_gtfs.sql +++ /dev/null @@ -1,19 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['shape_id', 'shape_pt_sequence', 'data_versao'], - alias = 'shapes' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(shape_id AS STRING) shape_id, - SAFE_CAST(JSON_VALUE(content, '$.shape_pt_lat') AS FLOAT64) shape_pt_lat, - SAFE_CAST(JSON_VALUE(content, '$.shape_pt_lon') AS FLOAT64) shape_pt_lon, - SAFE_CAST(shape_pt_sequence AS INT64) shape_pt_sequence, - SAFE_CAST(JSON_VALUE(content, '$.shape_dist_traveled') AS FLOAT64) shape_dist_traveled, - '{{ var("version") }}' as versao_modelo -FROM - {{source('br_rj_riodejaneiro_gtfs_staging', 'shapes')}} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/stop_times_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/stop_times_gtfs.sql deleted file mode 100644 index 32b59921..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/stop_times_gtfs.sql +++ /dev/null @@ -1,28 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['trip_id', 'data_versao'], - alias = 'stop_times' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(trip_id AS STRING) trip_id, - SAFE_CAST(JSON_VALUE(content, '$.arrival_time') AS STRING) arrival_time, - SAFE_CAST(JSON_VALUE(content, '$.departure_time') AS DATETIME) departure_time, - SAFE_CAST(JSON_VALUE(content, '$.stop_id') AS STRING) stop_id, - SAFE_CAST(stop_sequence AS INT64) stop_sequence, - SAFE_CAST(JSON_VALUE(content, '$.stop_headsign') AS STRING) stop_headsign, - SAFE_CAST(JSON_VALUE(content, '$.pickup_type') AS STRING) pickup_type, - SAFE_CAST(JSON_VALUE(content, '$.drop_off_type') AS STRING) drop_off_type, - SAFE_CAST(JSON_VALUE(content, '$.continuous_pickup') AS STRING) continuous_pickup, - SAFE_CAST(JSON_VALUE(content, '$.continuous_drop_off') AS STRING) continuous_drop_off, - SAFE_CAST(JSON_VALUE(content, '$.shape_dist_traveled') AS FLOAT64) shape_dist_traveled, - SAFE_CAST(JSON_VALUE(content, '$.timepoint') AS STRING) timepoint, - '{{ var("version") }}' as versao_modelo -FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'stop_times' - ) }} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/stops_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/stops_gtfs.sql deleted file mode 100644 index 4000571f..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/stops_gtfs.sql +++ /dev/null @@ -1,31 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['stop_id', 'data_versao'], - alias = 'stops' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(stop_id AS STRING) stop_id, - SAFE_CAST(JSON_VALUE(content, '$.stop_code') AS STRING) stop_code, - SAFE_CAST(JSON_VALUE(content, '$.stop_name') AS STRING) stop_name, - SAFE_CAST(JSON_VALUE(content, '$.tts_stop_name') AS STRING) tts_stop_name, - SAFE_CAST(JSON_VALUE(content, '$.stop_desc') AS STRING) stop_desc, - SAFE_CAST(JSON_VALUE(content, '$.stop_lat') AS FLOAT64) stop_lat, - SAFE_CAST(JSON_VALUE(content, '$.stop_lon') AS FLOAT64) stop_lon, - SAFE_CAST(JSON_VALUE(content, '$.zone_id') AS STRING) zone_id, - SAFE_CAST(JSON_VALUE(content, '$.stop_url') AS STRING) stop_url, - SAFE_CAST(JSON_VALUE(content, '$.location_type') AS STRING) location_type, - SAFE_CAST(JSON_VALUE(content, '$.parent_station') AS STRING) parent_station, - SAFE_CAST(JSON_VALUE(content, '$.stop_timezone') AS STRING) stop_timezone, - SAFE_CAST(JSON_VALUE(content, '$.wheelchair_boarding') AS STRING) wheelchair_boarding, - SAFE_CAST(JSON_VALUE(content, '$.level_id') AS STRING) level_id, - SAFE_CAST(JSON_VALUE(content, '$.platform_code') AS STRING) platform_code, - '{{ var("version") }}' as versao_modelo -FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'stops' - ) }} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_gtfs/trips_gtfs.sql b/queries/models/br_rj_riodejaneiro_gtfs/trips_gtfs.sql deleted file mode 100644 index ee593466..00000000 --- a/queries/models/br_rj_riodejaneiro_gtfs/trips_gtfs.sql +++ /dev/null @@ -1,26 +0,0 @@ -{{config( - partition_by = { 'field' :'data_versao', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = ['trip_id','data_versao'], - alias = 'trips' -)}} - - -SELECT SAFE_CAST(data_versao AS DATE) data_versao, - SAFE_CAST(JSON_VALUE(content, '$.route_id') AS STRING) route_id, - SAFE_CAST(JSON_VALUE(content, '$.service_id') AS STRING) service_id, - SAFE_CAST(trip_id AS STRING) trip_id, - SAFE_CAST(JSON_VALUE(content, '$.trip_headsign') AS STRING) trip_headsign, - SAFE_CAST(JSON_VALUE(content, '$.trip_short_name') AS STRING) trip_short_name, - SAFE_CAST(JSON_VALUE(content, '$.direction_id') AS STRING) direction_id, - SAFE_CAST(JSON_VALUE(content, '$.block_id') AS STRING) block_id, - SAFE_CAST(JSON_VALUE(content, '$.shape_id') AS STRING) shape_id, - SAFE_CAST(JSON_VALUE(content, '$.wheelchair_accessible') AS STRING) wheelchair_accessible, - SAFE_CAST(JSON_VALUE(content, '$.bikes_allowed') AS STRING) bikes_allowed, - '{{ var("version") }}' as versao_modelo -FROM {{ source( - 'br_rj_riodejaneiro_gtfs_staging', - 'trips' - ) }} -WHERE data_versao = '{{ var("data_versao_gtfs") }}' diff --git a/queries/models/br_rj_riodejaneiro_onibus_gps/schema.yaml b/queries/models/br_rj_riodejaneiro_onibus_gps/schema.yaml deleted file mode 100644 index 99b6cedc..00000000 --- a/queries/models/br_rj_riodejaneiro_onibus_gps/schema.yaml +++ /dev/null @@ -1,332 +0,0 @@ -version: 2 - -models: - - name: sppo_aux_registros_filtrada - description: "Tabela com filtragem e tratamento básico de registros de GPS" - columns: - - name: id_veiculo - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - name: latitude - description: "Parte da coordenada geográfica (eixo y) em graus decimais (EPSG:4326 - WGS84)" - # tests: - # - not_null: - # partition_column: data - - name: longitude - description: "Parte da coordenada geográfica (eixo x) em graus decimais (EPSG:4326 - WGS84)" - # tests: - # - not_null: - # partition_column: data - - name: posicao_veiculo_geo - description: "Coordenada geográfica (POINT) com a posição que o veículo se encontra, conforme 'longitude' e 'latitude' informadas pelo GPS (EPSG:4326 - WGS84)" - # tests: - # - not_null: - # partition_column: data - - name: velocidade - description: "Velocidade instantânea do veículo, conforme informado pelo GPS (km/h)" - # tests: - # - not_null: - # partition_column: data - # - not_negative: - # partition_column: data - - name: linha - description: "Linha de ônibus (serviço) ou, se realocada, informada pela empresa operadora" - # tests: - # - not_null: - # partition_column: data - # - no_space: - # partition_column: data - - name: timestamp_gps - description: "Timestamp de emissão do sinal de GPS" - # tests: - # - not_null: - # partition_column: data - - name: timestamp_captura - description: "Timestamp de captura, pela SMTR, do sinal de GPS" - # tests: - # - not_null: - # partition_column: data - - name: data - description: "Data do 'timestamp_captura'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) - - name: hora - description: "Hora do 'timestamp_captura'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) - - name: versao - description: "SHA da branch no Github" - # tests: - # - not_null: - # partition_column: data - - - name: sppo_aux_registros_flag_trajeto_correto - description: "Tabela para verificação se o veículo está dentro do trajeto correto" - columns: - - name: id_veiculo - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - name: linha - description: "Linha de ônibus (serviço)" - # tests: - # - not_null: - # partition_column: data - # - no_space: - # partition_column: data - - name: linha_gtfs - description: "Linha de ônibus (serviço) da tabela 'shapes_geom'" - # tests: - # - not_null: - # partition_column: data - # - no_space: - # partition_column: data - - name: route_id - description: "Código identificador na rota da tabela 'shapes_geom'" - # tests: - # - not_null: - # partition_column: data - - name: data - description: "Data de partição, conforme 'timestamp_captura' da tabela 'sppo_registros'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) / Tabela ephemeral - - name: timestamp_gps - description: "Timestamp de emissão do sinal de GPS" - # tests: - # - not_null: - # partition_column: data - - name: flag_trajeto_correto - description: "Flag de verificação se o ponto de GPS encontra-se até o limite de 'tamanho_buffer_metros' do shape da linha (true). Se não estiver, retorna false." - # tests: - # - not_null: - # partition_column: data - # - accepted_values: - # values: [true, false] - # quote: false - - name: flag_trajeto_correto_hist - description: "Flag de verificação se, nos últimos 'intervalo_max_desvio_segundos', ao menos algum ponto de GPS encontra-se até o limite de 'tamanho_buffer_metros' do shape da linha (true). Se não estiver, retorna false." - # tests: - # - not_null: - # partition_column: data - # - accepted_values: - # values: [true, false] - # quote: false - - name: flag_linha_existe_sigmob - description: "Flag de verificação se a linha informada existe no SIGMOB" - # tests: - # - not_null: - # partition_column: data - # - accepted_values: - # values: [true, false] - # quote: false - - - name: sppo_aux_registros_parada - description: "Tabela para identificação de veículos parados em terminais ou garagens conhecidas." - columns: - - name: data - description: "Data de partição, conforme 'timestamp_captura' da tabela 'sppo_registros'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) / Tabela ephemeral - - name: id_veiculo - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - name: timestamp_gps - description: "Timestamp de emissão do sinal de GPS" - # tests: - # - not_null: - # partition_column: data - - name: linha - description: "Linha de ônibus (serviço)" - # tests: - # - not_null: - # partition_column: data - # - no_space: - # partition_column: data - - name: tipo_parada - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - name: id_veiculo - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - - name: sppo_aux_registros_realocacao - description: "Tabela com realocações de linha válidas." - columns: - - name: id_veiculo - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - name: timestamp_gps - description: "Timestamp de emissão do sinal de GPS" - # tests: - # - not_null: - # partition_column: data - - name: servico_gps - description: "Linha de ônibus (serviço) informado pelo GPS" - # tests: - # - not_null: - # partition_column: data - # - no_space: - # partition_column: data - - name: servico_realocado - description: "Linha de ônibus (serviço) realocada informada pela empresa operadora" - # tests: - # - not_null: - # partition_column: data - # - no_space: - # partition_column: data - - name: datetime_realocacao - description: "Datetime_realocacao que o registro da realocação foi informado pela empresa operadora" - # tests: - # - not_null: - # partition_column: data - - name: data - description: "Data de partição, conforme 'timestamp_captura' da tabela 'sppo_registros'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) - - name: hora - description: "Hora de partição, conforme 'timestamp_captura' da tabela 'sppo_registros'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) - - - name: sppo_aux_registros_velocidade - description: "Tabela com estimativa das velocidades dos veículos nos últimos 10 minutos" - columns: - - name: timestamp_gps - description: "Timestamp de emissão do sinal de GPS" - # tests: - # - not_null: - # partition_column: data - - name: data - description: "Data de partição, conforme 'timestamp_captura' da tabela 'sppo_registros'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) / Tabela ephemeral - - name: id_veiculo - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - name: linha - description: "Linha de ônibus (serviço)" - # tests: - # - not_null: - # partition_column: data - - name: distancia - description: "Distância da última posição do GPS em relação à posição atual (m)" - # tests: - # - not_negative: - # partition_column: data - - name: velocidade - description: "Velocidade média nos últimos 10 minutos de operação (km/h)" - # tests: - # - not_null: - # partition_column: data - # - not_negative: - # partition_column: data - - name: flag_em_movimento - description: "Veículos com 'velocidade' abaixo da 'velocidade_limiar_parado', são considerados como parado (false). Caso contrário, são considerados andando (true)" - # tests: - # - not_null: - # partition_column: data - # - accepted_values: - # values: [true, false] - # quote: false - - - name: sppo_realocacao - description: "Tabela com todas as realocações de linha informadas." - columns: - - name: id_veiculo - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - name: datetime_operacao - description: "Datetime que o registro da realocação foi informado pela empresa operadora" - # tests: - # - not_null: - # partition_column: data - - name: servico - description: "Linha de ônibus (serviço) realocada informada pela empresa operadora" - # tests: - # - not_null: - # partition_column: data - # - no_space: - # partition_column: data - - name: datetime_entrada - description: "Datetime de entrada do veículo na linha realocada" - # tests: - # - not_null: - # partition_column: data - - name: datetime_saida - description: "Datetime de saída do veículo na linha realocada" - # tests: - # - not_null: - # partition_column: data - - name: timestamp_processamento - description: "Timestamp de processamento da realocação pela empresa operadora" - # tests: - # - not_null: - # partition_column: data - - name: timestamp_captura - description: "Timestamp de captura, pela SMTR, do registro de realocação" - # tests: - # - not_null: - # partition_column: data - - name: data - description: "Data do 'timestamp_captura'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) - - name: hora - description: "Hora do 'timestamp_captura'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) - - - name: sppo_registros - description: "Tabela com todos os registros de GPS." - columns: - - name: ordem - description: "Código identificador do veículo (número de ordem)" - # tests: - # - not_null: - # partition_column: data - - name: latitude - description: "Parte da coordenada geográfica (eixo y) em graus decimais (EPSG:4326 - WGS84)" - # tests: - # - not_null: - # partition_column: data - - name: longitude - description: "Parte da coordenada geográfica (eixo x) em graus decimais (EPSG:4326 - WGS84)" - # tests: - # - not_null: - # partition_column: data - - name: timestamp_gps - description: "Timestamp de emissão do sinal de GPS" - # tests: - # - not_null: - # partition_column: data - - name: velocidade - description: "Velocidade instantânea do veículo, conforme informado pelo GPS (km/h)" - # tests: - # - not_null: - # partition_column: data - # - not_negative: - # partition_column: data - - name: linha - description: "Linha de ônibus (serviço)" - # tests: - # - not_null: - # partition_column: data - # - no_space: - # partition_column: data - - name: timestamp_captura - description: "Timestamp de captura, pela SMTR, do sinal de GPS" - # tests: - # - not_null: - # partition_column: data - - name: data - description: "Data do 'timestamp_captura'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) - - name: hora - description: "Hora do 'timestamp_captura'" - # Sem testes em razão de ser coluna de particionamento (seria necessário consultar toda a tabela) \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_filtrada.sql b/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_filtrada.sql deleted file mode 100644 index 0573c6fd..00000000 --- a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_filtrada.sql +++ /dev/null @@ -1,81 +0,0 @@ -{{ - config( - materialized='incremental', - partition_by={ - "field":"data", - "data_type": "date", - "granularity":"day" - } - ) -}} - /* -Descrição: -Filtragem e tratamento básico de registros de gps. -1. Filtra registros que estão fora de uma caixa que contém a área do município de Rio de Janeiro. -2. Filtra registros antigos. Remove registros que tem diferença maior que 1 minuto entre o timestamp_captura e timestamp_gps. -3. Muda o nome de variáveis para o padrão do projeto. - - id_veiculo --> ordem -*/ -WITH -box AS ( - /*1. Geometria de caixa que contém a área do município de Rio de Janeiro.*/ - SELECT - * - FROM - {{ var('limites_caixa') }} -), -gps AS ( - /*2. Filtra registros antigos. Remove registros que tem diferença maior que 1 minuto entre o timestamp_captura e timestamp_gps.*/ - SELECT - *, - ST_GEOGPOINT(longitude, latitude) posicao_veiculo_geo - FROM - {{ ref('sppo_registros') }} - {% if is_incremental() -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - {%- endif -%} -), -realocacao as ( - SELECT - g.* except(linha), - coalesce(r.servico_realocado, g.linha) as linha - FROM - gps g - LEFT JOIN - {{ ref('sppo_aux_registros_realocacao') }} r - ON - g.ordem = r.id_veiculo - and g.timestamp_gps = r.timestamp_gps -), -filtrada AS ( - /*1,2, e 3. Muda o nome de variáveis para o padrão do projeto.*/ - SELECT - ordem AS id_veiculo, - latitude, - longitude, - posicao_veiculo_geo, - velocidade, - linha, - timestamp_gps, - timestamp_captura, - data, - hora, - row_number() over (partition by ordem, timestamp_gps, linha) rn - FROM - realocacao - WHERE - ST_INTERSECTSBOX(posicao_veiculo_geo, - ( SELECT min_longitude FROM box), - ( SELECT min_latitude FROM box), - ( SELECT max_longitude FROM box), - ( SELECT max_latitude FROM box)) - ) -SELECT - * except(rn), - "{{ var("version") }}" as versao -FROM - filtrada -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_flag_trajeto_correto.sql b/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_flag_trajeto_correto.sql deleted file mode 100644 index 3c75a055..00000000 --- a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_flag_trajeto_correto.sql +++ /dev/null @@ -1,96 +0,0 @@ -{{ - config( - materialized='ephemeral' - ) -}} - -/* -Descrição: -Calcula se o veículo está dentro do trajeto correto dado o traçado (shape) cadastrado no SIGMOB em relação à linha que está sendo -transmitida. -1. Calcula as intersecções definindo um 'buffer', utilizado por st_dwithin para identificar se o ponto está à uma -distância menor ou igual ao tamanho do buffer em relação ao traçado definido no SIGMOB. -2. Calcula um histórico de intersecções nos ultimos 10 minutos de registros de cada carro. Definimos que o carro é -considerado fora do trajeto definido se a cada 10 minutos, ele não esteve dentro do traçado planejado pelo menos uma -vez. -3. Identifica se a linha informada no registro capturado existe nas definições presentes no SIGMOB. -4. Definimos em outra tabela uma 'data_versao_efetiva', esse passo serve tanto para definir qual versão do SIGMOB utilizaremos em -caso de falha na captura, quanto para definir qual versão será utilizada para o cálculo retroativo do histórico de registros que temos. -5. Como não conseguimos identificar o itinerário que o carro está realizando, no passo counts, os resultados de -intersecções são dobrados, devido ao fato de cada linha apresentar dois itinerários possíveis (ida/volta). Portanto, -ao final, realizamos uma agregação LOGICAL_OR que é true caso o carro esteja dentro do traçado de algum dos itinerários -possíveis para a linha informada. -*/ -WITH - registros AS ( - SELECT - id_veiculo, - linha, - latitude, - longitude, - data, - posicao_veiculo_geo, - timestamp_gps - FROM - {{ ref('sppo_aux_registros_filtrada') }} r - {% if not flags.FULL_REFRESH -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - {%- endif -%} - ), - intersec AS ( - SELECT - r.*, - s.data_versao, - s.linha_gtfs, - s.route_id, - -- 1. Buffer e intersecções - CASE - WHEN st_dwithin(shape, posicao_veiculo_geo, {{ var('tamanho_buffer_metros') }}) THEN TRUE - ELSE FALSE - END AS flag_trajeto_correto, - -- 2. Histórico de intersecções nos últimos 10 minutos a partir da timestamp_gps atual - CASE - WHEN - COUNT(CASE WHEN st_dwithin(shape, posicao_veiculo_geo, {{ var('tamanho_buffer_metros') }}) THEN 1 END) - OVER (PARTITION BY id_veiculo - ORDER BY UNIX_SECONDS(TIMESTAMP(timestamp_gps)) - RANGE BETWEEN {{ var('intervalo_max_desvio_segundos') }} PRECEDING AND CURRENT ROW) >= 1 - THEN True - ELSE False - END AS flag_trajeto_correto_hist, - -- 3. Identificação de cadastro da linha no SIGMOB - CASE WHEN s.linha_gtfs IS NULL THEN False ELSE True END AS flag_linha_existe_sigmob, - -- 4. Join com data_versao_efetiva para definição de quais shapes serão considerados no cálculo das flags - FROM registros r - LEFT JOIN ( - SELECT * - FROM {{ ref('shapes_geom') }} - WHERE id_modal_smtr in ({{ var('sppo_id_modal_smtr')|join(', ') }}) - AND data_versao = "{{ var('versao_fixa_sigmob')}}" - ) s - ON - r.linha = s.linha_gtfs - ) - -- 5. Agregação com LOGICAL_OR para evitar duplicação de registros - SELECT - id_veiculo, - linha, - linha_gtfs, - route_id, - data, - timestamp_gps, - LOGICAL_OR(flag_trajeto_correto) AS flag_trajeto_correto, - LOGICAL_OR(flag_trajeto_correto_hist) AS flag_trajeto_correto_hist, - LOGICAL_OR(flag_linha_existe_sigmob) AS flag_linha_existe_sigmob, - FROM intersec i - GROUP BY - id_veiculo, - linha, - linha_gtfs, - route_id, - data, - data_versao, - timestamp_gps - \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_parada.sql b/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_parada.sql deleted file mode 100644 index 49da8094..00000000 --- a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_parada.sql +++ /dev/null @@ -1,77 +0,0 @@ -{{ - config( - materialized='ephemeral' - ) -}} - -/* -Descrição: -Identifica veículos parados em terminais ou garagens conhecidas. -1. Selecionamos os terminais conhecidos e uma geometria do tipo polígono (Polygon) que contém buracos nas -localizações das garagens. -2. Calculamos as distâncias do veículos em relação aos terminais conhecidos. Definimos aqui a coluna 'nrow', -que identifica qual o terminal que está mais próximo do ponto informado. No passo final, recuperamos apenas -os dados com nrow = 1 (menor distância em relação à posição do veículo) -3. Definimos uma distancia_limiar_parada. Caso o veículo esteja a uma distância menor que este valor de uma -parada, será considerado como parado no terminal com menor distancia. -4. Caso o veiculo não esteja intersectando o polígono das garagens, ele será considerado como parado dentro -de uma garagem (o polígono é vazado nas garagens, a não intersecção implica em estar dentro de um dos 'buracos'). -*/ -WITH - terminais as ( - -- 1. Selecionamos terminais, criando uma geometria de ponto para cada. - select - ST_GEOGPOINT(longitude, latitude) ponto_parada, nome_terminal nome_parada, 'terminal' tipo_parada - from {{ var('sppo_terminais') }} - ), - garagem_polygon AS ( - -- 1. Selecionamos o polígono das garagens. - SELECT ST_GEOGFROMTEXT(WKT,make_valid => true) AS poly - FROM {{ var('polygon_garagem') }} - ), - distancia AS ( - --2. Calculamos as distâncias e definimos nrow - SELECT - id_veiculo, - timestamp_gps, - data, - linha, - posicao_veiculo_geo, - nome_parada, - tipo_parada, - ROUND(ST_DISTANCE(posicao_veiculo_geo, ponto_parada), 1) distancia_parada, - ROW_NUMBER() OVER (PARTITION BY timestamp_gps, id_veiculo, linha ORDER BY ST_DISTANCE(posicao_veiculo_geo, ponto_parada)) nrow - FROM terminais p - JOIN ( - SELECT - id_veiculo, - timestamp_gps, - data, - linha, - posicao_veiculo_geo - FROM - {{ ref('sppo_aux_registros_filtrada') }} - {%if not flags.FULL_REFRESH %} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - {% endif %} - ) r - on 1=1 - ) -SELECT - data, - id_veiculo, - timestamp_gps, - linha, - /* - 3. e 4. Identificamos o status do veículo como 'terminal', 'garagem' (para os veículos parados) ou - null (para os veículos mais distantes de uma parada que o limiar definido) - */ - case - when distancia_parada < {{ var('distancia_limiar_parada') }} then tipo_parada - when not ST_INTERSECTS(posicao_veiculo_geo, (SELECT poly FROM garagem_polygon)) then 'garagem' - else null - end tipo_parada, -FROM distancia -WHERE nrow = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_realocacao.sql b/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_realocacao.sql deleted file mode 100644 index b6f53b1b..00000000 --- a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_realocacao.sql +++ /dev/null @@ -1,73 +0,0 @@ -{{ - config( - materialized='incremental', - partition_by={ - "field":"data", - "data_type": "date", - "granularity":"day" - } - ) -}} - --- 1. Filtra realocações válidas dentro do intervalo de GPS avaliado -with realocacao as ( - select - * except(datetime_saida), - case - when datetime_saida is null then datetime_operacao - else datetime_saida - end as datetime_saida, - from - {{ ref('sppo_realocacao') }} - where - -- Realocação deve acontecer após o registro de GPS e até 1 hora depois - datetime_diff(datetime_operacao, datetime_entrada, minute) between 0 and 60 - {% if is_incremental() -%} - and - data between DATE("{{var('date_range_start')}}") - and DATE(datetime_add("{{var('date_range_end')}}", interval 1 - hour)) - and - datetime_operacao between datetime("{{var('date_range_start')}}") - and datetime_add("{{var('date_range_end')}}", interval 1 hour) - {%- endif -%} -), --- 2. Altera registros de GPS com servicos realocados -gps as ( - select - ordem, - timestamp_gps, - linha, - data, - hora - from {{ ref('sppo_registros') }} - where - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - and timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <= "{{var('date_range_end')}}" -), -combinacao as ( - select - r.id_veiculo, - g.timestamp_gps, - g.linha as servico_gps, - r.servico as servico_realocado, - r.datetime_operacao as datetime_realocacao, - g.data, - g.hora - from gps g - inner join realocacao r - on - g.ordem = r.id_veiculo - and g.linha != r.servico - and g.timestamp_gps between r.datetime_entrada and r.datetime_saida -) --- Filtra realocacao mais recente para cada timestamp -select - * except(rn) -from ( - select - *, - row_number() over (partition by id_veiculo, timestamp_gps order by datetime_realocacao desc) as rn - from combinacao -) -where rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_velocidade.sql b/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_velocidade.sql deleted file mode 100644 index aadaea0f..00000000 --- a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_aux_registros_velocidade.sql +++ /dev/null @@ -1,91 +0,0 @@ -{{ - config( - materialized='ephemeral' - ) -}} -/* -Descrição: -Estimativa das velocidades dos veículos nos últimos 10 minutos contados a partir da timestamp_gps atual. -Essa metodologia serve para determinar quais carros estão em movimento e quais estão parados. -1. Calculamos a velocidade do veículo no último trecho de 10 minutos de operação. -A implementação utiliza a função 'first_value' com uma janela (cláusula 'over') de até 10 minutos anteriores à -timestamp_gps atual e calcula a distância do ponto mais antigo (o first_value na janela) ao ponto atual (posicao_veiculo_geo). -Dividimos essa distância pela diferença de tempo entre a timestamp_gps atual e a timestamp_gps do ponto mais -antigo da janela (o qual recuperamos novamente com o uso de first_value). -Esta diferença de tempo (datetime_diff) é calculada em segundos, portanto multiplicamos o resultado da divisão por um fator -3.6 para que a velocidade esteja em quilômetros por hora. O resultado final é arrendondado sem casas decimais. -Por fim, cobrimos esse cálculo com a função 'if_null' e retornamos zero para a velocidade em casos onde a divisão retornaria -um valor nulo. -2. Após o calculo da velocidade, definimos a coluna 'status_movimento'. Veículos abaixo da 'velocidade_limiar_parado', são -considerados como 'parado'. Caso contrário, são considerados 'andando' -*/ -with - t_velocidade as ( - select - data, - id_veiculo, - timestamp_gps, - linha, - ST_DISTANCE( - posicao_veiculo_geo, - lag(posicao_veiculo_geo) over ( - partition by id_veiculo, linha - order by timestamp_gps) - ) distancia, - IFNULL( - SAFE_DIVIDE( - ST_DISTANCE( - posicao_veiculo_geo, - lag(posicao_veiculo_geo) over ( - partition by id_veiculo, linha - order by timestamp_gps) - ), - DATETIME_DIFF( - timestamp_gps, - lag(timestamp_gps) over ( - partition by id_veiculo, linha - order by timestamp_gps), - SECOND - )), - 0 - ) * 3.6 velocidade - FROM {{ ref("sppo_aux_registros_filtrada") }} - {%if not flags.FULL_REFRESH -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - {%- endif -%} - ), - medias as ( - select - data, - id_veiculo, - timestamp_gps, - linha, - distancia, - velocidade, # velocidade do pontual - AVG(velocidade) OVER ( - PARTITION BY id_veiculo, linha - ORDER BY unix_seconds(timestamp(timestamp_gps)) - RANGE BETWEEN {{ var('janela_movel_velocidade') }} PRECEDING AND CURRENT ROW - ) velocidade_media # velocidade com média móvel - from t_velocidade - ) -SELECT - timestamp_gps, - data, - id_veiculo, - linha, - distancia, - ROUND( - CASE WHEN velocidade_media > {{ var('velocidade_maxima') }} - THEN {{ var('velocidade_maxima') }} - ELSE velocidade_media - END, - 1) as velocidade, - -- 2. Determinação do estado de movimento do veículo. - case - when velocidade_media < {{ var('velocidade_limiar_parado') }} then false - else true - end flag_em_movimento, -FROM medias \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_realocacao.sql b/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_realocacao.sql deleted file mode 100644 index 174ce3b1..00000000 --- a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_realocacao.sql +++ /dev/null @@ -1,15 +0,0 @@ -SELECT - SAFE_CAST(id_veiculo AS STRING) id_veiculo, - SAFE_CAST(DATETIME(TIMESTAMP(datetime_operacao), "America/Sao_Paulo") AS DATETIME) datetime_operacao, - concat( - ifnull(REGEXP_EXTRACT(servico, r'[A-Z]+'), ""), - ifnull(REGEXP_EXTRACT(servico, r'[0-9]+'), "") - ) as servico, - SAFE_CAST(DATETIME(TIMESTAMP(datetime_entrada), "America/Sao_Paulo") AS DATETIME) as datetime_entrada, - SAFE_CAST(DATETIME(TIMESTAMP(datetime_saida), "America/Sao_Paulo") AS DATETIME) as datetime_saida, - SAFE_CAST(DATETIME(TIMESTAMP(timestamp_processamento), "America/Sao_Paulo") AS DATETIME) as timestamp_processamento, - SAFE_CAST(DATETIME(TIMESTAMP(timestamp_captura), "America/Sao_Paulo") AS DATETIME) as timestamp_captura, - data, - hora -FROM - {{var('sppo_realocacao_staging')}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_registros.sql b/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_registros.sql deleted file mode 100644 index 1e41af40..00000000 --- a/queries/models/br_rj_riodejaneiro_onibus_gps/sppo_registros.sql +++ /dev/null @@ -1,15 +0,0 @@ -SELECT - SAFE_CAST(ordem AS STRING) ordem, - SAFE_CAST(REPLACE(latitude, ',', '.') AS FLOAT64) latitude, - SAFE_CAST(REPLACE(longitude, ',', '.') AS FLOAT64) longitude, - SAFE_CAST(DATETIME(TIMESTAMP(datahora), "America/Sao_Paulo") AS DATETIME) timestamp_gps, - SAFE_CAST(velocidade AS INT64) velocidade, - concat( - ifnull(REGEXP_EXTRACT(linha, r'[A-Z]+'), ""), - ifnull(REGEXP_EXTRACT(linha, r'[0-9]+'), "") - ) as linha, - SAFE_CAST(DATETIME(TIMESTAMP(timestamp_captura), "America/Sao_Paulo") AS DATETIME) timestamp_captura, - SAFE_CAST(data AS DATE) data, - SAFE_CAST(hora AS INT64) hora -from - {{var('sppo_registros_staging')}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_rdo/rho_registros_sppo.sql b/queries/models/br_rj_riodejaneiro_rdo/rho_registros_sppo.sql deleted file mode 100644 index b92df3bc..00000000 --- a/queries/models/br_rj_riodejaneiro_rdo/rho_registros_sppo.sql +++ /dev/null @@ -1,18 +0,0 @@ -{{ - config( - materialized='incremental', - partition_by={ - "field":"data_transacao", - "data_type": "date", - "granularity":"day" - } - ) -}} -SELECT - * -FROM {{ref('rho_registros_sppo_view')}} - -{% if is_incremental() %} -WHERE - data_particao BETWEEN DATE("{{var('date_range_start')}}") AND DATE("{{var('date_range_end')}}") -{% endif %} diff --git a/queries/models/br_rj_riodejaneiro_rdo/rho_registros_sppo_view.sql b/queries/models/br_rj_riodejaneiro_rdo/rho_registros_sppo_view.sql deleted file mode 100644 index d790de28..00000000 --- a/queries/models/br_rj_riodejaneiro_rdo/rho_registros_sppo_view.sql +++ /dev/null @@ -1,16 +0,0 @@ -SELECT - CONCAT(TRIM(linha), '_', data_transacao, '_', hora_transacao) id_transacao, - TRIM(linha) linha, - SAFE_CAST(data_transacao AS DATE) data_transacao, - SAFE_CAST(hora_transacao AS INT64) hora_transacao, - SAFE_CAST(total_gratuidades AS INT64) total_gratuidades, - SAFE_CAST(total_pagantes_especie AS INT64) total_pagantes_especie, - SAFE_CAST(total_pagantes_cartao AS INT64) total_pagantes_cartao, - SAFE_CAST(registro_processado AS STRING) registro_processado, - SAFE_CAST(data_processamento AS DATE) data_processamento, - SAFE_CAST(operadora AS STRING) operadora, - SAFE_CAST(linha_rcti AS STRING) linha_rcti, - SAFE_CAST(DATETIME(TIMESTAMP(timestamp_captura), "America/Sao_Paulo") AS DATETIME) timestamp_captura, - DATE(CONCAT(ano,'-', mes, '-', dia)) data_particao -FROM {{var('rho_registros_sppo_staging')}} -WHERE data_transacao > "{{var('rho_sppo_start_date')}}" \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_rdo/schema.yaml b/queries/models/br_rj_riodejaneiro_rdo/schema.yaml deleted file mode 100644 index 7df254d4..00000000 --- a/queries/models/br_rj_riodejaneiro_rdo/schema.yaml +++ /dev/null @@ -1,7 +0,0 @@ -version: 2 - -models: - - name: rho_registros_sppo_view - description: "View para tipar e padronizar dados do RHO" - - name: rho_registros_sppo - description: "Tabela materializada para acesso geral aos dados do RHO" diff --git a/queries/models/br_rj_riodejaneiro_recurso/recurso_sppo_viagens_individuais.sql b/queries/models/br_rj_riodejaneiro_recurso/recurso_sppo_viagens_individuais.sql deleted file mode 100644 index deca41de..00000000 --- a/queries/models/br_rj_riodejaneiro_recurso/recurso_sppo_viagens_individuais.sql +++ /dev/null @@ -1,113 +0,0 @@ -{{ config( - materialized = 'incremental', - partition_by = { 'field' :'data', - 'data_type' :'date', - 'granularity': 'day' }, - unique_key = 'id_recurso', - alias = 'recurso_sppo_viagens_individuais', -) }} - - -WITH recurso_sppo AS ( - SELECT - ROW_NUMBER() OVER(PARTITION BY protocol ORDER BY timestamp_captura DESC) AS rn, - JSON_EXTRACT_ARRAY(content, '$.customFieldValues') AS items, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S', REGEXP_REPLACE(JSON_VALUE(content, '$.createdDate'), r'(\.\d+)?$', '')), 'America/Sao_Paulo') AS datetime_recurso, - SAFE_CAST(protocol AS STRING) AS id_recurso, - DATETIME(PARSE_TIMESTAMP('%Y-%m-%d %H:%M:%S%Ez', timestamp_captura), 'America/Sao_Paulo') AS datetime_captura - - FROM - {{source('br_rj_riodejaneiro_recurso_staging', - 'recurso_sppo_viagens_individuais')}} - {% if is_incremental() -%} - WHERE - DATE(data) BETWEEN DATE("{{var('date_range_start')}}") - AND DATE("{{var('date_range_end')}}") - AND DATETIME(PARSE_TIMESTAMP('%Y-%m-%d %H:%M:%S%Ez', timestamp_captura), - "America/Sao_Paulo") BETWEEN DATETIME("{{var('date_range_start')}}") - AND DATETIME("{{var('date_range_end')}}") - {%- endif %} -), -exploded AS ( - SELECT - id_recurso, - datetime_recurso, - datetime_captura, - SAFE_CAST(COALESCE(JSON_VALUE(items, '$.value'), JSON_VALUE(items, '$.items[0].customFieldItem')) AS STRING - ) AS value, - SAFE_CAST(JSON_EXTRACT(items, '$.customFieldId') AS STRING ) AS field_id - FROM - recurso_sppo, - UNNEST(items) items - WHERE - rn = 1 -), -pivotado AS ( - SELECT * - FROM - exploded PIVOT( - ANY_VALUE(value) FOR field_id IN ( - '111870', '111871', '111872', '111873', - '111901', '111865', '111867', '111868', - '111869', '111866', '111904', '125615', - '111900' - ) - ) -), -tratado AS ( - SELECT - id_recurso, - datetime_captura, - datetime_recurso, - SAFE_CAST(p.111865 AS STRING) AS julgamento, - SAFE_CAST(p.111870 AS STRING) AS consorcio, - CASE - WHEN SAFE_CAST(p.111872 AS STRING) = "SR - Regular" THEN SAFE_CAST(p.111871 AS STRING) - ELSE CONCAT(REPLACE(SPLIT(SAFE_CAST(p.111872 AS STRING), "-")[OFFSET(0)], " ", ""), SAFE_CAST(p.111871 AS STRING)) - END AS servico, - SAFE_CAST(p.111873 AS STRING) AS id_veiculo, - CASE - WHEN SAFE_CAST(p.111901 AS STRING) = "Ida" THEN "I" - WHEN SAFE_CAST(p.111901 AS STRING) = "Volta" THEN "V" - WHEN SAFE_CAST(p.111901 AS STRING) = "Circular" THEN "C" - END - AS sentido, - PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E*S%Ez',SAFE_CAST(p.111867 AS STRING), 'America/Sao_Paulo') AS data_viagem, - PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E*S%Ez', SAFE_CAST(p.111868 AS STRING), 'America/Sao_Paulo') AS hora_inicio_viagem, - PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E*S%Ez', SAFE_CAST(p.111869 AS STRING), 'America/Sao_Paulo') AS hora_fim_viagem, - SAFE_CAST(p.111866 AS STRING) AS motivo, - COALESCE(SAFE_CAST(p.111904 AS STRING), SAFE_CAST(p.111900 AS STRING)) AS motivo_julgamento, - SAFE_CAST(p.125615 AS STRING) AS observacao, - -FROM - pivotado p -) - -SELECT - t.id_recurso, - t.datetime_captura, - t.datetime_recurso, - t.julgamento, - t.consorcio, - t.servico, - t.id_veiculo, - t.sentido, - DATETIME(EXTRACT(date FROM TIMESTAMP(data_viagem)), EXTRACT(time FROM TIMESTAMP_SUB(hora_inicio_viagem, INTERVAL 2 HOUR)) ) AS datetime_partida, - CASE - WHEN - EXTRACT(time FROM TIMESTAMP_SUB(hora_inicio_viagem, INTERVAL 2 HOUR)) > EXTRACT(time FROM TIMESTAMP_SUB(hora_fim_viagem, INTERVAL 2 HOUR)) - - THEN - DATETIME(EXTRACT(date FROM TIMESTAMP_ADD(data_viagem, INTERVAL 1 DAY)), EXTRACT(time FROM TIMESTAMP_SUB(hora_fim_viagem, INTERVAL 2 HOUR))) - ELSE - DATETIME(EXTRACT(date FROM TIMESTAMP(data_viagem)), - EXTRACT(time FROM TIMESTAMP_SUB(hora_fim_viagem, INTERVAL 2 HOUR)) - ) - END AS datetime_chegada, - t.motivo, - t.motivo_julgamento, - t.observacao, - DATE(datetime_recurso) AS data, - -FROM - tratado t diff --git a/queries/models/br_rj_riodejaneiro_recurso/schema.yml b/queries/models/br_rj_riodejaneiro_recurso/schema.yml deleted file mode 100644 index 34887054..00000000 --- a/queries/models/br_rj_riodejaneiro_recurso/schema.yml +++ /dev/null @@ -1,35 +0,0 @@ -version: 2 -sources: -- name: br_rj_riodejaneiro_recurso -models: - - name: recurso_sppo_viagens_individuais - description: Recursos abertos na plataforma Movidesk para pagamento de subsídio de viagens individuais de ônibus - columns: - - name: datetime_captura - description: Data de captura dos dados - - name: datetime_recurso - description: Data de criação do ticket para pedido de recurso no Movidesk - - name: id_recurso - description: Número de id do recurso - - name: servico - description: Tipo do serviço de ônibus - - name: sentido - description: Sentido do ônibus - - name: consorcio - description: Nome do consórcio - - name: id_veiculo - description: Número de identificação do veículo (Somente números) - - name: datetime_partida - description: "Datetime da partida da viagem" - - name: datetime_chegada - description: "Datetime da chegada da viagem" - - name: motivo - description: Motivo para criação do recurso - - name: julgamento - description: Julgamento do recurso - - name: motivo_julgamento - description: Motivos para julgamento - - name: observacao - description: Observações acerca do julgamentodo recurso - - name: data - description: Data do recurso (partição da tabela) diff --git a/queries/models/br_rj_riodejaneiro_sigmob/agency.sql b/queries/models/br_rj_riodejaneiro_sigmob/agency.sql deleted file mode 100755 index 0df94f2f..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/agency.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(agency_id AS STRING) agency_id, -REPLACE(content,"None","") content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var('agency_staging')}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/agency_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/agency_desaninhada.sql deleted file mode 100644 index 4ad1311e..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/agency_desaninhada.sql +++ /dev/null @@ -1,10 +0,0 @@ - -SELECT - agency_id, - JSON_VALUE(content, "$.agency_name") agency_name, - JSON_VALUE(content, "$.agency_url") agency_url, - JSON_VALUE(content, "$.agency_timezone") agency_timezone, - JSON_VALUE(content, "$.agency_lang") agency_lang, - JSON_VALUE(content, "$.agency_phone") agency_phone, - DATE(data_versao) data_versao -FROM {{ ref('agency') }} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/agg_stops_vistoriadas.sql b/queries/models/br_rj_riodejaneiro_sigmob/agg_stops_vistoriadas.sql deleted file mode 100644 index 77f2e115..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/agg_stops_vistoriadas.sql +++ /dev/null @@ -1,21 +0,0 @@ -WITH t AS ( -SELECT - data_versao, - case - when - json_value(content, '$.IDPropriedadeParada') is null - then false - else true - end flag_vistoriada, - json_value(content, '$.AP') as AP, - json_value(content, '$.RA') as RA, - json_value(content, '$.Bairro') as Bairro -FROM {{ ref('stops') }} -where json_value(content, '$.PontoExistente') = 'SIM' -and json_value(content, '$.idModalSmtr') in ('22', 'O')) -select data_versao, AP, Bairro, - sum(case when flag_vistoriada then 1 else 0 end) n_vistoridas, - count(*) n_pontos -from t -group by data_versao, AP, Bairro -order by 1,2,3 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/calendar.sql b/queries/models/br_rj_riodejaneiro_sigmob/calendar.sql deleted file mode 100644 index 54b9c397..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/calendar.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(service_id AS STRING) service_id, -REPLACE(content,"None","") content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("calendar_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/calendar_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/calendar_desaninhada.sql deleted file mode 100644 index 9630cb62..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/calendar_desaninhada.sql +++ /dev/null @@ -1,14 +0,0 @@ -SELECT - service_id, - JSON_VALUE(content, "$.monday") monday, - JSON_VALUE(content, "$.tuesday") tuesday, - JSON_VALUE(content, "$.wednesday") wednesday, - JSON_VALUE(content, "$.thursday") thursday, - JSON_VALUE(content, "$.friday") friday, - JSON_VALUE(content, "$.saturday") saturday, - JSON_VALUE(content, "$.sunday") sunday, - JSON_VALUE(content, "$.start_date") start_date, - JSON_VALUE(content, "$.end_date") end_date, - DATE(data_versao) data_versao - -FROM {{ ref('calendar') }} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/data_versao_efetiva.sql b/queries/models/br_rj_riodejaneiro_sigmob/data_versao_efetiva.sql deleted file mode 100644 index 11ffcc38..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/data_versao_efetiva.sql +++ /dev/null @@ -1,209 +0,0 @@ -{{ - config( - materialized='incremental', - unique_key='data', - partition_by={ - "field":"data", - "data_type": "date", - "granularity":"day" - } - ) -}} - -with -agency as ( -SELECT - data, - data_versao as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_agency")}}") THEN DATE("{{var("data_inclusao_agency")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("agency") }} - ) -ON data = DATE(data_versao) -), -calendar as ( -SELECT - data, - data_versao as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_calendar")}}") THEN DATE("{{var("data_inclusao_calendar")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("calendar") }} - ) -ON data = DATE(data_versao) -), -frota_determinada as ( -SELECT - data, - DATE(data_versao) as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_frota_determinada")}}") THEN DATE("{{var("data_inclusao_frota_determinada")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("frota_determinada") }} - ) -ON DATE(data) = DATE(data_versao) -), -holidays as ( -SELECT - data, - data_versao as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_holidays")}}") THEN DATE("{{var("data_inclusao_holidays")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("holidays") }} - ) -ON data = DATE(data_versao) -), -linhas as ( - SELECT - data, - DATE(data_versao) as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_linhas")}}") THEN DATE("{{var("data_inclusao_linhas")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("linhas") }} - ) -ON data = DATE(data_versao) -), -routes as ( -SELECT - data, - DATE(data_versao) as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_routes")}}") THEN DATE("{{var("data_inclusao_routes")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("routes") }} - ) -ON data = data_versao -), -shapes as ( -SELECT - data, - data_versao as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_shapes")}}") THEN DATE("{{var("data_inclusao_shapes")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("shapes_geom") }} - ) -ON data = DATE(data_versao) -), -stop_details as ( -SELECT - data, - data_versao as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_stop_details")}}") THEN DATE("{{var("data_inclusao_stop_details")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("stop_details") }} - ) -ON data = DATE(data_versao) -), -stop_times as ( -SELECT - data, - data_versao as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_stop_times")}}") THEN DATE("{{var("data_inclusao_stop_times")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("stop_times") }} - ) -ON data = DATE(data_versao) -), -stops as ( -SELECT - data, - data_versao as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_stops")}}") THEN DATE("{{var("data_inclusao_stops")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("stops") }} - ) -ON data = DATE(data_versao) -), -trips as ( -SELECT - data, - data_versao as data_versao_original, - CASE WHEN data <= DATE("{{var("data_inclusao_trips")}}") THEN DATE("{{var("data_inclusao_trips")}}") ELSE - LAST_VALUE(DATE(data_versao) IGNORE NULLS) OVER (ORDER BY data ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - END AS data_versao_efetiva -FROM UNNEST(GENERATE_DATE_ARRAY(DATE('2021-01-01'), CURRENT_DATE())) data -LEFT JOIN ( - SELECT DISTINCT data_versao - FROM {{ ref("trips") }} - ) -ON data = DATE(data_versao) -), -joined as ( - select - DATE_ADD(s.data, INTERVAL 1 DAY) data, - a.data_versao_efetiva as data_versao_efetiva_agency, - c.data_versao_efetiva as data_versao_efetiva_calendar, - f.data_versao_efetiva as data_versao_efetiva_frota_determinada, - h.data_versao_efetiva as data_versao_efetiva_holidays, - l.data_versao_efetiva as data_versao_efetiva_linhas, - r.data_versao_efetiva as data_versao_efetiva_routes, - s.data_versao_efetiva as data_versao_efetiva_shapes, - sd.data_versao_efetiva as data_versao_efetiva_stop_details, - st.data_versao_efetiva as data_versao_efetiva_stop_times, - sp.data_versao_efetiva as data_versao_efetiva_stops, - t.data_versao_efetiva as data_versao_efetiva_trips - from agency a - join shapes s - on s.data = a.data - join calendar c - on a.data = c.data - join frota_determinada f - on a.data = f.data - join holidays h - on a.data = h.data - join linhas l - on a.data = l.data - join routes r - on a.data = r.data - join stops sp - on a.data = sp.data - join stop_details sd - on a.data = sd.data - join stop_times st - on a.data = st.data - join trips t - on a.data = t.data -) -select * -from joined -{% if is_incremental() %} - {%set max_date_partition = run_query("select max(DATE(data)) from " ~ this).columns[0].values()[0]%} - where DATE(data) > ("{{max_date_partition}}") -{% endif %} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/frota_determinada.sql b/queries/models/br_rj_riodejaneiro_sigmob/frota_determinada.sql deleted file mode 100644 index 6cab760b..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/frota_determinada.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(route_id AS STRING) route_id, -REPLACE(content,"None","") content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("frota_determinada_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/frota_determinada_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/frota_determinada_desaninhada.sql deleted file mode 100644 index 7f8f2d28..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/frota_determinada_desaninhada.sql +++ /dev/null @@ -1,12 +0,0 @@ -select - data_versao, - json_value(content, '$.IDFrotaDeterminada') IDFrotaDeterminada, - json_value(content, '$.TipoOnibusID') TipoOnibusID, - SAFE_CAST(json_value(content, '$.FrotaDeterminada') AS INT64) FrotaDeterminada, - SAFE_CAST(json_value(content, '$.FrotaServico') AS INT64) FrotaServico, - json_value(content, '$.dataInicioVigencia') dataInicioVigencia, - json_value(content, '$.dataFimVigencia') dataFimVigencia, - json_value(content, '$.legislacaoInicioVigencia') legislacaoInicioVigencia, - json_value(content, '$.legislacaoFimVigencia') legislacaoFimVigencia, - json_value(content, '$.route_id') route_id -FROM {{ ref('frota_determinada') }} diff --git a/queries/models/br_rj_riodejaneiro_sigmob/holidays.sql b/queries/models/br_rj_riodejaneiro_sigmob/holidays.sql deleted file mode 100644 index ea8c0289..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/holidays.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -DATE(SAFE_CAST(Data AS DATETIME)) data, -REPLACE(content,"None","") content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("holidays_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/linhas.sql b/queries/models/br_rj_riodejaneiro_sigmob/linhas.sql deleted file mode 100644 index e4f9be0f..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/linhas.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(linha_id AS STRING) linha_id, -REPLACE(content,"None","") content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("linhas_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/linhas_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/linhas_desaninhada.sql deleted file mode 100644 index 582524bd..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/linhas_desaninhada.sql +++ /dev/null @@ -1,18 +0,0 @@ -SELECT - linha_id, - JSON_VALUE(content, "$.agency_id") agency_id, - JSON_VALUE(content, "$.sigla") sigla, - JSON_VALUE(content, "$.idModalSmtr") id_modal_smtr, - JSON_VALUE(content, "$.TipoLinha") tipo_linha, - JSON_VALUE(content, "$.NomeLinha") nome_linha, - JSON_VALUE(content, "$.SiglaCompleta") sigla_completa, - JSON_VALUE(content, "$.NumeroServicos") numero_servicos, - JSON_VALUE(content, "$.ativa") ativa, - JSON_VALUE(content, "$.FrotaDeterminada") frota_determinada, - JSON_VALUE(content, "$.LegisFrotaDeterminada") legis_frota_determinada, - JSON_VALUE(content, "$.FrotaOperante") frota_operante, - JSON_VALUE(content, "$.id") id, - JSON_VALUE(content, "$.Apresentacao") apresentacao, - JSON_VALUE(content, "$.agency_name") agency_name, - DATE(data_versao) data_versao -FROM {{ ref('linhas') }} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/routes.sql b/queries/models/br_rj_riodejaneiro_sigmob/routes.sql deleted file mode 100755 index 3bc25346..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/routes.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(route_id AS STRING) route_id, -REPLACE(content, "None", '') content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("routes_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/routes_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/routes_desaninhada.sql deleted file mode 100644 index c06c60d8..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/routes_desaninhada.sql +++ /dev/null @@ -1,56 +0,0 @@ -with desaninhada as ( - select - data_versao, - json_value(content, '$.agency_id') agency_id, - json_value(content, '$.route_short_name') route_short_name, - json_value(content, '$.route_long_name') route_long_name, - json_value(content, '$.route_desc') route_desc, - json_value(content, '$.route_type') route_type, - json_value(content, '$.route_url') route_url, - json_value(content, '$.route_color') route_color, - json_value(content, '$.route_text_color') route_text_color, - json_value(content, '$.ATIVA') ATIVA, - json_value(content, '$.ATUALIZADO') ATUALIZADO, - json_value(content, '$.Descricao') Descricao, - json_value(content, '$.idModalSmtr') idModalSmtr, - json_value(content, '$.linha_id') linha_id, - json_value(content, '$.brs') brs, - json_value(content, '$.IDTipoServico') IDTipoServico, - json_value(content, '$.IDVariacaoServico') IDVariacaoServico, - json_value(content, '$.origem') origem, - json_value(content, '$.destino') destino, - json_value(content, '$.ClassificacaoEspacial') ClassificacaoEspacial, - json_value(content, '$.ClassificacaoHierarquica') ClassificacaoHierarquica, - json_value(content, '$.InicioVigencia') InicioVigencia, - json_value(content, '$.LegisInicioVigencia') LegisInicioVigencia, - json_value(content, '$.fimVigencia') fimVigencia, - json_value(content, '$.LegisfimVigencia') LegisfimVigencia, - json_value(content, '$.FlagVigente') FlagVigente, - json_value(content, '$.FrotaDeterminada') FrotaDeterminada, - json_value(content, '$.LegisFrota') LegisFrota, - json_value(content, '$.FrotaServico') FrotaServico, - json_value(content, '$.FrotaOperante') FrotaOperante, - json_value(content, '$.Observacoes') Observacoes, - json_value(content, '$.IDParadaOrigem') IDParadaOrigem, - json_value(content, '$.SiglaServico') SiglaServico, - json_value(content, '$.IDParadaDestino') IDParadaDestino, - json_value(content, '$.route_id') route_id, - json_value(content, '$.id') id, - json_value(content, '$.agency_name') agency_name, - json_value(content, '$.Via') Via, - json_value(content, '$.Vista') Vista, - json_value(content, '$.Complemento') Complemento, - json_value(content,'$.OLD_routes_id') old_route_id -from {{ ref('routes') }} -), -ultimas_versoes as ( - select - * - from desaninhada - where DATE(fimVigencia) >= DATE(data_versao) or fimVigencia is null - order by route_id, fimVigencia -) -select - * -from ultimas_versoes - diff --git a/queries/models/br_rj_riodejaneiro_sigmob/schema.yaml b/queries/models/br_rj_riodejaneiro_sigmob/schema.yaml deleted file mode 100644 index a1d4c8b0..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/schema.yaml +++ /dev/null @@ -1,114 +0,0 @@ -version: 2 - -models: - # - name: data_versao_efetiva - # description: "Especifica qual data versao mais recente disponível para uma determinada data." - # columns: - # - name: data - # description: "The primary key for this table" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_agency - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_calendar - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_frota_determinada - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_holidays - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_linhas - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_routes - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_shapes - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_stop_details - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_stop_times - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_stops - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - # - name: data_versao_efetiva_trips - # description: "data_versao mais recente para a tabela descrita no sufixo" - # tests: - # - not_null: - # partition_column: data - - name: routes_desaninhada - description: Cadastro dos serviços (routes) - columns: - - name: route_id - tests: - - not_null: - partition_column: data_versao - - unique_key: - partition_column: data_versao - combined_keys: "" - - name: trips_desaninhada - description: Cadastro de itinerários (trips) - columns: - - name: trip_id - description: Identificador único para um itinerário - tests: - - not_null: - partition_column: data_versao - - unique_key: - partition_column: data_versao - combined_keys: "" - - one_to_one: - partition_column: data_versao - to_table: ref('shapes_geom') - - name: route_id - description: Identificador única para a route (serviço) - tests: - - many_to_one: - foreign_key: route_id - partition_column: data_versao - to_table: ref('routes_desaninhada') - - name: shapes_geom - description: tabela com as linestrings de cada itinarário consolidadas a partir da captura ponto a ponto - columns: - - name: shape_id - tests: - - not_null: - partition_column: data_versao - - name: trip_id - tests: - - not_null: - partition_column: data_versao - - unique_key: - partition_column: data_versao - combined_keys: "" - - one_to_one: - partition_column: data_versao - to_table: ref('trips_desaninhada') diff --git a/queries/models/br_rj_riodejaneiro_sigmob/shapes.sql b/queries/models/br_rj_riodejaneiro_sigmob/shapes.sql deleted file mode 100644 index f2c22310..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/shapes.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(shape_id AS STRING) shape_id, -REPLACE(content, "None", '') content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("shapes_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/shapes_geom.sql b/queries/models/br_rj_riodejaneiro_sigmob/shapes_geom.sql deleted file mode 100644 index bf596717..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/shapes_geom.sql +++ /dev/null @@ -1,121 +0,0 @@ -{{ config( - materialized='incremental', - partition_by={ - "field":"data_versao", - "data_type": "date", - "granularity":"day" - } -) -}} -{% if is_incremental() and execute %} - {% set start_date = run_query("select max(data_versao) from " ~ this).columns[0].values()[0] %} -{% else %} - {% set start_date = "2021-08-24" %} -{% endif %} -with - trips as ( - SELECT - trip_id, - shape_id, - route_id, - DATE(data_versao) data_versao - FROM {{ ref('trips_desaninhada') }} t - WHERE DATE(data_versao) between DATE("{{start_date}}") and DATE_ADD(DATE("{{start_date}}"), INTERVAL 15 DAY) - ), - linhas as ( - SELECT - trip_id, - shape_id, - t.route_id, - route_short_name linha, - idModalSmtr id_modal_smtr, - t.data_versao, - FROM trips t - INNER JOIN ( - SELECT * - FROM {{ ref('routes_desaninhada') }} - WHERE DATE(data_versao) between DATE("{{start_date}}") and DATE_ADD(DATE("{{start_date}}"), INTERVAL 15 DAY) - ) r - on t.route_id = r.route_id - and t.data_versao = r.data_versao - ), - contents as ( - -- EXTRACTS VALUES FROM JSON STRING FIELD 'content' - SELECT - shape_id, - ST_GEOGPOINT( - SAFE_CAST(json_value(content, "$.shape_pt_lon") AS FLOAT64), - SAFE_CAST(json_value(content, "$.shape_pt_lat") AS FLOAT64) - ) ponto_shape, - SAFE_CAST(json_value(content, "$.shape_pt_sequence") as INT64) shape_pt_sequence, - DATE(data_versao) AS data_versao - FROM {{ ref('shapes') }} s - WHERE DATE(data_versao) between DATE("{{start_date}}") and DATE_ADD(DATE("{{start_date}}"), INTERVAL 15 DAY) - ), - pts as ( - select - *, - max(shape_pt_sequence) over( - partition by data_versao, shape_id - ) final_pt_sequence - from contents c - order by data_versao, shape_id, shape_pt_sequence - ), - shapes as ( - -- BUILD LINESTRINGS OVER SHAPE POINTS - SELECT - shape_id, - data_versao, - st_makeline(ARRAY_AGG(ponto_shape)) as shape - FROM pts - GROUP BY 1,2 - ), - boundary as ( - -- EXTRACT START AND END POINTS FROM SHAPES - SELECT - c1.shape_id, - c1.ponto_shape start_pt, - c2.ponto_shape end_pt, - c1.data_versao - FROM (select * from pts where shape_pt_sequence = 1) c1 - JOIN (select * from pts where shape_pt_sequence = final_pt_sequence) c2 - ON c1.shape_id = c2.shape_id and c1.data_versao = c2.data_versao - ), - merged as ( - -- JOIN SHAPES AND BOUNDARY POINTS - SELECT - s.*, - b.* except(data_versao, shape_id), - round(ST_LENGTH(shape),1) shape_distance, - FROM shapes s - JOIN boundary b - ON s.shape_id = b.shape_id and s.data_versao = b.data_versao - ), - ids as ( - SELECT - trip_id, - m.shape_id, - route_id, - id_modal_smtr, - replace(linha, " ", "") as linha_gtfs, - shape, - shape_distance, - start_pt, - end_pt, - m.data_versao, - row_number() over( - partition by m.data_versao, m.shape_id, l.trip_id - ) rn - FROM merged m - JOIN linhas l - ON m.shape_id = l.shape_id - AND m.data_versao = l.data_versao - -- mudar join para o route_id em todas as dependencias - ) -SELECT - * except(rn) -FROM ids -WHERE rn = 1 -{% if is_incremental %} -AND data_versao > DATE("{{start_date}}") -{% endif %} diff --git a/queries/models/br_rj_riodejaneiro_sigmob/stop_details.sql b/queries/models/br_rj_riodejaneiro_sigmob/stop_details.sql deleted file mode 100644 index ec2a44da..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/stop_details.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(stop_id AS STRING) stop_id, -REPLACE(content,"None","") content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("stop_details_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/stop_details_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/stop_details_desaninhada.sql deleted file mode 100644 index 407bb4e6..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/stop_details_desaninhada.sql +++ /dev/null @@ -1,45 +0,0 @@ -/*Desaninha os campos presentes em 'content' da tabela stop_details*/ -SELECT - stop_id, - json_value(content, '$.stop_name') stop_name, - json_value(content, '$.stop_desc') stop_desc, - json_value(content, '$.stop_lat') stop_lat, - json_value(content, '$.stop_lon') stop_lon, - json_value(content, '$.location_type') location_type, - json_value(content, '$.Modal') modal, - json_value(content, '$.Corredor') corredor, - json_value(content, '$.Tipo de parada') tipo_de_parada , - json_value(content, '$.Tipo Sentido') tipo_sentido, - json_value(content, '$.Propriedade da Parada') propriedade_da_parada, - json_value(content, '$.Seletivado') seletivado, - json_value(content, '$.Sinalização') sinalizacao, - json_value(content, '$.Conservação') conservacao, - json_value(content, '$.Tipo de abrigo') tipo_de_abrigo, - json_value(content, '$.Conservação do abrigo') conservacao_do_abrigo, - json_value(content, '$.Tipo de assento') tipo_do_assento, - json_value(content, '$.Tipo de baia') tipo_de_baia, - json_value(content, '$.Tipo de calçada') tipo_de_calcada, - json_value(content, '$."Possui lixeiras?"') possui_lixeiras, - json_value(content, '$.Tipo rampa') tipo_rampa, - json_value(content, '$."Braile?"') braile, - json_value(content, '$."Piso tátil?"') piso_tatil, - json_value(content, '$."Elevador?"') elevador, - json_value(content, '$.Número de vagas') numero_de_vagas, - json_value(content, '$.Número de cabines') numero_de_cabines, - json_value(content, '$.AP') ap, - json_value(content, '$.RA') ra, - json_value(content, '$.Bairro') bairro, - json_value(content, '$.Observações') observacoes, - json_value(content, '$.Endereço') endereco, - json_value(content, '$.MultiModal') multi_modal, - json_value(content, '$.id_sequencial') id_sequencial, - json_value(content, '$.NumeroLinha') numero_linha, - json_value(content, '$.Vista') vista, - json_value(content, '$.Horários') horarios, - json_value(content, '$."Existe o ponto?"') existe_o_ponto, - json_value(content, '$.parent_station') parent_station, - json_value(content, '$.nome_ponto') nome_ponto, - json_value(content, '$.route_type') route_type, - data_versao - -FROM {{ ref("stop_details") }} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/stop_times.sql b/queries/models/br_rj_riodejaneiro_sigmob/stop_times.sql deleted file mode 100755 index b9c8b74f..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/stop_times.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(stop_id AS STRING) stop_id, -REPLACE(content,"None","") content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("stop_times_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/stop_times_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/stop_times_desaninhada.sql deleted file mode 100644 index 7be697de..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/stop_times_desaninhada.sql +++ /dev/null @@ -1,9 +0,0 @@ -SELECT - stop_id, - JSON_VALUE(content, "$.trip_id") trip_id, - JSON_VALUE(content, "$.arrival_time") arrival_time, - JSON_VALUE(content, "$.departure_time") departure_time, - JSON_VALUE(content, "$.stop_sequence") stop_sequence, - JSON_VALUE(content, "$.shape_dist_traveled") shape_dist_traveled, - DATE(data_versao) data_versao -FROM {{ ref('stop_times') }} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/stops.sql b/queries/models/br_rj_riodejaneiro_sigmob/stops.sql deleted file mode 100644 index 2250b677..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/stops.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(stop_id AS STRING) stop_id, -REPLACE(content, "None", '') content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("stops_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/stops_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/stops_desaninhada.sql deleted file mode 100644 index c0dd04d1..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/stops_desaninhada.sql +++ /dev/null @@ -1,51 +0,0 @@ -SELECT - stop_id, - case when json_value(content, '$.IDPropriedadeParada') is null then false else true end flag_vistoriada, - json_value(content, '$.stop_name') as stop_name, - json_value(content, '$.stop_desc') as stop_desc, - json_value(content, '$.stop_lat') as stop_lat, - json_value(content, '$.stop_lon') as stop_lon, - json_value(content, '$.location_type') as location_type, - json_value(content, '$.GrupoLatitude') as GrupoLatitude, - json_value(content, '$.GrupoLongitude') as GrupoLongitude, - json_value(content, '$.idModalSmtr') as idModalSmtr, - json_value(content, '$.IDCorredor') as IDCorredor, - json_value(content, '$.IDTipoParada') as IDTipoParada, - json_value(content, '$.IDTipoSentido') as IDTipoSentido, - json_value(content, '$.IDPropriedadeParada') as IDPropriedadeParada, - json_value(content, '$.Seletivado') as Seletivado, - json_value(content, '$.BRS') as BRS, - json_value(content, '$.IDTipoSinalizacao') as IDTipoSinalizacao, - json_value(content, '$.IDConservacaoSinalizacao') as IDConservacaoSinalizacao, - json_value(content, '$.IDTipoAbrigo') as IDTipoAbrigo, - json_value(content, '$.ConservacaoAbrigo') as ConservacaoAbrigo, - json_value(content, '$.IDTipoAssento') as IDTipoAssento, - json_value(content, '$.IDTipoBaia') as IDTipoBaia, - json_value(content, '$.QualidadePavimento') as QualidadePavimento, - json_value(content, '$.IDTipoCalcada') as IDTipoCalcada, - json_value(content, '$.IDLixeiras') as IDLixeiras, - json_value(content, '$.IDRampa') as IDRampa, - json_value(content, '$.braile') as braile, - json_value(content, '$.piso_tatil') as piso_tatil, - json_value(content, '$.elevador') as elevador, - json_value(content, '$.n_vagas') as n_vagas, - json_value(content, '$.n_cabines') as n_cabines, - json_value(content, '$.AP') as AP, - json_value(content, '$.RA') as RA, - json_value(content, '$.Bairro') as Bairro, - json_value(content, '$.Observacoes') as Observacoes, - json_value(content, '$.dataAtualizacao') as dataAtualizacao, - json_value(content, '$.endereco') as endereco, - json_value(content, '$.IDBairro') as IDBairro, - json_value(content, '$.IDRa') as IDRa, - json_value(content, '$.MultiModal') as MultiModal, - json_value(content, '$.id_sequencial') as id_sequencial, - json_value(content, '$.NumeroLinha') as NumeroLinha, - json_value(content, '$.Vista') as Vista, - json_value(content, '$.Horarios') as Horarios, - json_value(content, '$.id') as id, - json_value(content, '$.PontoExistente') as PontoExistente -FROM {{ ref('stops') }} t -where data_versao = (select max(data_versao) FROM {{ ref("stops") }}) -and json_value(content, '$.PontoExistente') = 'SIM' -and json_value(content, '$.idModalSmtr') in ('22', '23', 'O') diff --git a/queries/models/br_rj_riodejaneiro_sigmob/trips.sql b/queries/models/br_rj_riodejaneiro_sigmob/trips.sql deleted file mode 100755 index 92856abb..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/trips.sql +++ /dev/null @@ -1,26 +0,0 @@ -/* - -Query para publicar a tabela. - -Esse é o lugar para: - - modificar nomes, ordem e tipos de colunas - - dar join com outras tabelas - - criar colunas extras (e.g. logs, proporções, etc.) - -Qualquer coluna definida aqui deve também existir em `table_config.yaml`. - -# Além disso, sinta-se à vontade para alterar alguns nomes obscuros -# para algo um pouco mais explícito. - -TIPOS: - - Para modificar tipos de colunas, basta substituir STRING por outro tipo válido. - - Exemplo: `SAFE_CAST(column_name AS NUMERIC) column_name` - - Mais detalhes: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types - -*/ - -SELECT -SAFE_CAST(trip_id AS STRING) trip_id, -REPLACE(content,"None","") content, -SAFE_CAST(data_versao AS DATE) data_versao -from {{var("trips_staging")}} as t \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_sigmob/trips_desaninhada.sql b/queries/models/br_rj_riodejaneiro_sigmob/trips_desaninhada.sql deleted file mode 100644 index e2c3dc02..00000000 --- a/queries/models/br_rj_riodejaneiro_sigmob/trips_desaninhada.sql +++ /dev/null @@ -1,45 +0,0 @@ -with contents as ( - select - trip_id, - json_value(content, "$.route_id") route_id, - json_value(content, "$.service_id") service_id, - json_value(content, "$.trip_headsign") trip_headsign, - json_value(content, "$.trip_short_name") trip_short_name, - json_value(content, "$.direction_id") direction_id, - json_value(content, "$.block_id") block_id, - json_value(content, "$.shape_id") shape_id, - json_value(content, "$.variacao_itinerario") variacao_itinerario, - json_value(content, "$.versao") versao, - json_value(content, "$.complemento") complemento, - json_value(content, "$.via") via, - json_value(content, "$.observacoes") observacoes, - json_value(content, "$.ultima_medicao_operante") ultima_medicao_operante, - json_value(content, "$.idModalSmtr") id_modal_smtr, - json_value(content, "$.Direcao") direcao, - json_value(content, "$.id") id, - DATE(data_versao) data_versao - - from {{ ref('trips') }} -), -routes as ( - select - * - from {{ ref('routes_desaninhada') }} -), -ultimas_versoes as ( - select - c.*, - row_number() over( - partition by c.data_versao, c.route_id, c.direction_id, c.variacao_itinerario - order by c.versao desc - ) rn - from contents c - join routes r - on c.route_id = r.route_id - and c.data_versao = r.data_versao -) -select - * except(rn) -from ultimas_versoes -where rn=1 - diff --git a/queries/models/br_rj_riodejaneiro_stu/staging_operadora_empresa.sql b/queries/models/br_rj_riodejaneiro_stu/staging_operadora_empresa.sql deleted file mode 100644 index 97978ab0..00000000 --- a/queries/models/br_rj_riodejaneiro_stu/staging_operadora_empresa.sql +++ /dev/null @@ -1,34 +0,0 @@ -{{ - config( - alias='operadora_empresa', - ) -}} - -WITH - operadora_empresa AS ( - SELECT - data, - SAFE_CAST(Perm_Autor AS STRING) AS perm_autor, - timestamp_captura, - SAFE_CAST(JSON_VALUE(content, '$.CNPJ') AS STRING) AS cnpj, - DATE(PARSE_TIMESTAMP('%d/%m/%Y', SAFE_CAST(JSON_VALUE(content, '$.Data') AS STRING)), "America/Sao_Paulo") AS data_registro, - SAFE_CAST(JSON_VALUE(content, '$.Processo') AS STRING) AS processo, - SAFE_CAST(JSON_VALUE(content, '$.Razao_Social') AS STRING) AS razao_social, - SAFE_CAST(JSON_VALUE(content, '$.modo') AS STRING) AS modo, - SAFE_CAST(JSON_VALUE(content, '$.tipo_permissao') AS STRING) AS tipo_permissao - FROM - {{ source("br_rj_riodejaneiro_stu_staging", "operadora_empresa") }} - ), - operadora_empresa_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY COALESCE(cnpj, perm_autor), modo ORDER BY timestamp_captura DESC, data_registro DESC) AS rn - FROM - operadora_empresa - ) -SELECT - * EXCEPT(rn) -FROM - operadora_empresa_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_stu/staging_operadora_pessoa_fisica.sql b/queries/models/br_rj_riodejaneiro_stu/staging_operadora_pessoa_fisica.sql deleted file mode 100644 index dd80db8c..00000000 --- a/queries/models/br_rj_riodejaneiro_stu/staging_operadora_pessoa_fisica.sql +++ /dev/null @@ -1,36 +0,0 @@ -{{ - config( - alias='operadora_pessoa_fisica', - ) -}} - -WITH - operadora_pessoa_fisica AS ( - SELECT - data, - SAFE_CAST(Perm_Autor AS STRING) AS perm_autor, - timestamp_captura, - SAFE_CAST(JSON_VALUE(content, '$.CPF') AS STRING) AS cpf, - PARSE_DATE('%d/%m/%Y', LEFT(SAFE_CAST(JSON_VALUE(content, '$.Data') AS STRING), 10)) AS data_registro, - SAFE_CAST(JSON_VALUE(content, '$.Ratr') AS STRING) AS ratr, - SAFE_CAST(JSON_VALUE(content, '$.Processo') AS STRING) AS processo, - SAFE_CAST(JSON_VALUE(content, '$.Nome') AS STRING) AS nome, - SAFE_CAST(JSON_VALUE(content, '$.Placa') AS STRING) AS placa, - SAFE_CAST(JSON_VALUE(content, '$.modo') AS STRING) AS modo, - SAFE_CAST(JSON_VALUE(content, '$.tipo_permissao') AS STRING) AS tipo_permissao - FROM - {{ source("br_rj_riodejaneiro_stu_staging", "operadora_pessoa_fisica") }} - ), - operadora_pessoa_fisica_rn AS ( - SELECT - *, - ROW_NUMBER() OVER (PARTITION BY COALESCE(cpf, perm_autor), modo ORDER BY timestamp_captura DESC, data_registro DESC) AS rn - FROM - operadora_pessoa_fisica - ) -SELECT - * EXCEPT(rn) -FROM - operadora_pessoa_fisica_rn -WHERE - rn = 1 \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_veiculos/gps_brt.sql b/queries/models/br_rj_riodejaneiro_veiculos/gps_brt.sql deleted file mode 100644 index 2e50a6e8..00000000 --- a/queries/models/br_rj_riodejaneiro_veiculos/gps_brt.sql +++ /dev/null @@ -1,139 +0,0 @@ -{{ - config( - materialized='incremental', - partition_by={ - 'field': 'data', - 'data_type': 'date', - 'granularity': 'day' - } - ) -}} -/* -Descrição: -Junção dos passos de tratamento, junta as informações extras que definimos a partir dos registros -capturados. -Para descrição detalhada de como cada coluna é calculada, consulte a documentação de cada uma das tabelas -utilizadas abaixo. -1. registros_filtrada: filtragem e tratamento básico dos dados brutos capturados. -2. aux_registros_velocidade: estimativa da velocidade de veículo a cada ponto registrado e identificação -do estado de movimento ('parado', 'andando') -3. aux_registros_parada: identifica veículos parados em terminais ou garagens conhecidas -4. aux_registros_flag_trajeto_correto: calcula intersecções das posições registradas para cada veículo -com o traçado da linha informada. -5. As junções (joins) são feitas sobre o id_veículo e a timestamp_gps. -*/ -WITH - registros as ( - -- 1. registros_filtrada - SELECT - id_veiculo, - timestamp_gps, - timestamp_captura, - velocidade, - servico, - latitude, - longitude, - FROM {{ ref('brt_aux_registros_filtrada') }} - {% if is_incremental() -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - AND DATETIME_DIFF(timestamp_captura, timestamp_gps, MINUTE) BETWEEN 0 AND 1 - {%- endif -%} - ), - velocidades AS ( - -- 2. velocidades - SELECT - id_veiculo, timestamp_gps, servico, velocidade, distancia, flag_em_movimento - FROM {{ ref('brt_aux_registros_velocidade') }} - ), - paradas as ( - -- 3. paradas - SELECT - id_veiculo, timestamp_gps, servico, tipo_parada, - FROM {{ ref('brt_aux_registros_parada') }} - ), - flags AS ( - -- 4. flag_trajeto_correto - SELECT - id_veiculo, - timestamp_gps, - servico, - route_id, - flag_linha_existe_sigmob, - flag_trajeto_correto, - flag_trajeto_correto_hist - FROM {{ ref('brt_aux_registros_flag_trajeto_correto') }} - ) --- 5. Junção final -SELECT - "BRT" modo, - r.timestamp_gps, - date(r.timestamp_gps) data, - extract(time from r.timestamp_gps) hora, - r.id_veiculo, - replace(r.servico, " ", "") as servico, - r.latitude, - r.longitude, - CASE - WHEN - flag_em_movimento IS true AND flag_trajeto_correto_hist is true - THEN true - ELSE false - END flag_em_operacao, - v.flag_em_movimento, - p.tipo_parada, - flag_linha_existe_sigmob, - flag_trajeto_correto, - flag_trajeto_correto_hist, - CASE - WHEN flag_em_movimento IS true AND flag_trajeto_correto_hist is true - THEN 'Em operação' - WHEN flag_em_movimento is true and flag_trajeto_correto_hist is false - THEN 'Operando fora trajeto' - WHEN flag_em_movimento is false - THEN - CASE - WHEN tipo_parada is not null - THEN concat("Parado ", tipo_parada) - ELSE - CASE - WHEN flag_trajeto_correto_hist is true - THEN 'Parado trajeto correto' - ELSE 'Parado fora trajeto' - END - END - END status, - r.velocidade velocidade_instantanea, - v.velocidade velocidade_estimada_10_min, - v.distancia, - "{{ var("version") }}" as versao -FROM - registros r - -JOIN - flags f -ON - r.id_veiculo = f.id_veiculo - AND r.timestamp_gps = f.timestamp_gps - AND r.servico = f.servico - -JOIN - velocidades v -ON - r.id_veiculo = v.id_veiculo - AND r.timestamp_gps = v.timestamp_gps - AND r.servico = v.servico - -JOIN - paradas p -ON - r.id_veiculo = p.id_veiculo - AND r.timestamp_gps = p.timestamp_gps - AND r.servico = p.servico -{% if is_incremental() -%} - WHERE - date(r.timestamp_gps) between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND r.timestamp_gps > "{{var('date_range_start')}}" and r.timestamp_gps <="{{var('date_range_end')}}" - AND DATETIME_DIFF(r.timestamp_captura, r.timestamp_gps, MINUTE) BETWEEN 0 AND 1 -{%- endif -%} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_veiculos/gps_brt_15_minutos.sql b/queries/models/br_rj_riodejaneiro_veiculos/gps_brt_15_minutos.sql deleted file mode 100644 index 2e50a6e8..00000000 --- a/queries/models/br_rj_riodejaneiro_veiculos/gps_brt_15_minutos.sql +++ /dev/null @@ -1,139 +0,0 @@ -{{ - config( - materialized='incremental', - partition_by={ - 'field': 'data', - 'data_type': 'date', - 'granularity': 'day' - } - ) -}} -/* -Descrição: -Junção dos passos de tratamento, junta as informações extras que definimos a partir dos registros -capturados. -Para descrição detalhada de como cada coluna é calculada, consulte a documentação de cada uma das tabelas -utilizadas abaixo. -1. registros_filtrada: filtragem e tratamento básico dos dados brutos capturados. -2. aux_registros_velocidade: estimativa da velocidade de veículo a cada ponto registrado e identificação -do estado de movimento ('parado', 'andando') -3. aux_registros_parada: identifica veículos parados em terminais ou garagens conhecidas -4. aux_registros_flag_trajeto_correto: calcula intersecções das posições registradas para cada veículo -com o traçado da linha informada. -5. As junções (joins) são feitas sobre o id_veículo e a timestamp_gps. -*/ -WITH - registros as ( - -- 1. registros_filtrada - SELECT - id_veiculo, - timestamp_gps, - timestamp_captura, - velocidade, - servico, - latitude, - longitude, - FROM {{ ref('brt_aux_registros_filtrada') }} - {% if is_incremental() -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - AND DATETIME_DIFF(timestamp_captura, timestamp_gps, MINUTE) BETWEEN 0 AND 1 - {%- endif -%} - ), - velocidades AS ( - -- 2. velocidades - SELECT - id_veiculo, timestamp_gps, servico, velocidade, distancia, flag_em_movimento - FROM {{ ref('brt_aux_registros_velocidade') }} - ), - paradas as ( - -- 3. paradas - SELECT - id_veiculo, timestamp_gps, servico, tipo_parada, - FROM {{ ref('brt_aux_registros_parada') }} - ), - flags AS ( - -- 4. flag_trajeto_correto - SELECT - id_veiculo, - timestamp_gps, - servico, - route_id, - flag_linha_existe_sigmob, - flag_trajeto_correto, - flag_trajeto_correto_hist - FROM {{ ref('brt_aux_registros_flag_trajeto_correto') }} - ) --- 5. Junção final -SELECT - "BRT" modo, - r.timestamp_gps, - date(r.timestamp_gps) data, - extract(time from r.timestamp_gps) hora, - r.id_veiculo, - replace(r.servico, " ", "") as servico, - r.latitude, - r.longitude, - CASE - WHEN - flag_em_movimento IS true AND flag_trajeto_correto_hist is true - THEN true - ELSE false - END flag_em_operacao, - v.flag_em_movimento, - p.tipo_parada, - flag_linha_existe_sigmob, - flag_trajeto_correto, - flag_trajeto_correto_hist, - CASE - WHEN flag_em_movimento IS true AND flag_trajeto_correto_hist is true - THEN 'Em operação' - WHEN flag_em_movimento is true and flag_trajeto_correto_hist is false - THEN 'Operando fora trajeto' - WHEN flag_em_movimento is false - THEN - CASE - WHEN tipo_parada is not null - THEN concat("Parado ", tipo_parada) - ELSE - CASE - WHEN flag_trajeto_correto_hist is true - THEN 'Parado trajeto correto' - ELSE 'Parado fora trajeto' - END - END - END status, - r.velocidade velocidade_instantanea, - v.velocidade velocidade_estimada_10_min, - v.distancia, - "{{ var("version") }}" as versao -FROM - registros r - -JOIN - flags f -ON - r.id_veiculo = f.id_veiculo - AND r.timestamp_gps = f.timestamp_gps - AND r.servico = f.servico - -JOIN - velocidades v -ON - r.id_veiculo = v.id_veiculo - AND r.timestamp_gps = v.timestamp_gps - AND r.servico = v.servico - -JOIN - paradas p -ON - r.id_veiculo = p.id_veiculo - AND r.timestamp_gps = p.timestamp_gps - AND r.servico = p.servico -{% if is_incremental() -%} - WHERE - date(r.timestamp_gps) between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND r.timestamp_gps > "{{var('date_range_start')}}" and r.timestamp_gps <="{{var('date_range_end')}}" - AND DATETIME_DIFF(r.timestamp_captura, r.timestamp_gps, MINUTE) BETWEEN 0 AND 1 -{%- endif -%} \ No newline at end of file diff --git a/queries/models/br_rj_riodejaneiro_veiculos/gps_sppo.sql b/queries/models/br_rj_riodejaneiro_veiculos/gps_sppo.sql deleted file mode 100644 index 7ed9db8f..00000000 --- a/queries/models/br_rj_riodejaneiro_veiculos/gps_sppo.sql +++ /dev/null @@ -1,139 +0,0 @@ -{{ - config( - materialized='incremental', - partition_by={ - 'field':"data", - 'data_type':'date', - 'granularity': 'day' - } - ) -}} -/* -Descrição: -Junção dos passos de tratamento, junta as informações extras que definimos a partir dos registros -capturados. -Para descrição detalhada de como cada coluna é calculada, consulte a documentação de cada uma das tabelas -utilizadas abaixo. -1. registros_filtrada: filtragem e tratamento básico dos dados brutos capturados. -2. aux_registros_velocidade: estimativa da velocidade de veículo a cada ponto registrado e identificação -do estado de movimento ('parado', 'andando') -3. aux_registros_parada: identifica veículos parados em terminais ou garagens conhecidas -4. aux_registros_flag_trajeto_correto: calcula intersecções das posições registradas para cada veículo -com o traçado da linha informada. -5. As junções (joins) são feitas sobre o id_veículo e a timestamp_gps. -*/ -WITH - registros as ( - -- 1. registros_filtrada - SELECT - id_veiculo, - timestamp_gps, - timestamp_captura, - velocidade, - linha, - latitude, - longitude, - FROM {{ ref('sppo_aux_registros_filtrada') }} - {% if is_incremental() -%} - WHERE - data between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND timestamp_gps > "{{var('date_range_start')}}" and timestamp_gps <="{{var('date_range_end')}}" - {%- endif -%} - ), - velocidades AS ( - -- 2. velocidades - SELECT - id_veiculo, timestamp_gps, linha, velocidade, distancia, flag_em_movimento - FROM - {{ ref('sppo_aux_registros_velocidade') }} - ), - paradas as ( - -- 3. paradas - SELECT - id_veiculo, timestamp_gps, linha, tipo_parada, - FROM {{ ref('sppo_aux_registros_parada') }} - ), - flags AS ( - -- 4. flag_trajeto_correto - SELECT - id_veiculo, - timestamp_gps, - linha, - route_id, - flag_linha_existe_sigmob, - flag_trajeto_correto, - flag_trajeto_correto_hist - FROM - {{ ref('sppo_aux_registros_flag_trajeto_correto') }} - ) --- 5. Junção final -SELECT - "SPPO" modo, - r.timestamp_gps, - date(r.timestamp_gps) data, - extract(time from r.timestamp_gps) hora, - r.id_veiculo, - r.linha as servico, - r.latitude, - r.longitude, - CASE - WHEN - flag_em_movimento IS true AND flag_trajeto_correto_hist is true - THEN true - ELSE false - END flag_em_operacao, - v.flag_em_movimento, - p.tipo_parada, - flag_linha_existe_sigmob, - flag_trajeto_correto, - flag_trajeto_correto_hist, - CASE - WHEN flag_em_movimento IS true AND flag_trajeto_correto_hist is true - THEN 'Em operação' - WHEN flag_em_movimento is true and flag_trajeto_correto_hist is false - THEN 'Operando fora trajeto' - WHEN flag_em_movimento is false - THEN - CASE - WHEN tipo_parada is not null - THEN concat("Parado ", tipo_parada) - ELSE - CASE - WHEN flag_trajeto_correto_hist is true - THEN 'Parado trajeto correto' - ELSE 'Parado fora trajeto' - END - END - END status, - r.velocidade velocidade_instantanea, - v.velocidade velocidade_estimada_10_min, - v.distancia, - "{{ var("version") }}" as versao -FROM - registros r - -JOIN - flags f -ON - r.id_veiculo = f.id_veiculo - AND r.timestamp_gps = f.timestamp_gps - AND r.linha = f.linha - -JOIN - velocidades v -ON - r.id_veiculo = v.id_veiculo - AND r.timestamp_gps = v.timestamp_gps - AND r.linha = v.linha - -JOIN - paradas p -ON - r.id_veiculo = p.id_veiculo - AND r.timestamp_gps = p.timestamp_gps - AND r.linha = p.linha -{% if is_incremental() -%} - WHERE - date(r.timestamp_gps) between DATE("{{var('date_range_start')}}") and DATE("{{var('date_range_end')}}") - AND r.timestamp_gps > "{{var('date_range_start')}}" and r.timestamp_gps <="{{var('date_range_end')}}" -{%- endif -%} diff --git a/queries/models/cadastro/diretorio_consorcios.sql b/queries/models/cadastro/diretorio_consorcios.sql deleted file mode 100644 index 49d2f991..00000000 --- a/queries/models/cadastro/diretorio_consorcios.sql +++ /dev/null @@ -1,38 +0,0 @@ -{{ - config( - materialized="table", - alias='consorcios' - ) -}} - -WITH stu AS ( - SELECT - perm_autor AS id_consorcio, - cnpj, - processo, - data_registro, - razao_social, - CASE - {% for id_stu, id_jae in var("ids_consorcios").items() %} - WHEN perm_autor = {{ id_stu }} THEN {{ id_jae }} - {% endfor %} - END AS cd_consorcio_jae - FROM - {{ ref("staging_operadora_empresa") }} AS stu -) -SELECT - COALESCE(s.id_consorcio, j.cd_consorcio) AS id_consorcio, - s.razao_social, - j.nm_consorcio AS consorcio, - s.processo AS id_processo, - s.data_registro AS data_processo, - s.cnpj, - s.id_consorcio AS id_consorcio_stu, - j.cd_consorcio AS id_consorcio_jae -FROM {{ ref("staging_consorcio") }} AS j -LEFT JOIN - stu AS s -ON - j.cd_consorcio = s.cd_consorcio_jae - - diff --git a/queries/models/cadastro/diretorio_operadoras.sql b/queries/models/cadastro/diretorio_operadoras.sql deleted file mode 100644 index 4d4a6c70..00000000 --- a/queries/models/cadastro/diretorio_operadoras.sql +++ /dev/null @@ -1,105 +0,0 @@ -{{ - config( - materialized="table", - alias='operadoras' - ) -}} - -WITH operadora_jae AS ( - SELECT - ot.cd_operadora_transporte, - ot.cd_cliente, - ot.ds_tipo_modal, - ot.in_situacao_atividade, - CASE - WHEN c.in_tipo_pessoa_fisica_juridica = 'F' THEN 'CPF' - WHEN c.in_tipo_pessoa_fisica_juridica = 'J' THEN 'CNPJ' - END AS tipo_documento, - c.nr_documento, - c.nm_cliente, - cb.cd_agencia, - cb.cd_tipo_conta, - cb.nm_banco, - cb.nr_banco, - cb.nr_conta - FROM - {{ ref("staging_operadora_transporte") }} AS ot - JOIN - {{ ref("staging_cliente") }} AS c - ON - ot.cd_cliente = c.cd_cliente - LEFT JOIN - {{ ref("staging_conta_bancaria") }} AS cb - ON - ot.cd_cliente = cb.cd_cliente -), -stu_pessoa_juridica AS ( - SELECT - perm_autor, - cnpj AS documento, - processo, - modo, - tipo_permissao, - data_registro, - razao_social AS nome_operadora, - "CNPJ" AS tipo_documento - FROM - {{ ref("staging_operadora_empresa") }} - WHERE perm_autor NOT IN ({{ var("ids_consorcios").keys()|join(", ") }}) -), -stu_pessoa_fisica AS ( - SELECT - perm_autor, - cpf AS documento, - processo, - modo, - tipo_permissao, - data_registro, - nome AS nome_operadora, - "CPF" AS tipo_documento - FROM - {{ ref("staging_operadora_pessoa_fisica") }} -), -stu AS ( - SELECT - *, - modo AS modo_join - FROM - stu_pessoa_juridica - - UNION ALL - - SELECT - *, - CASE - WHEN modo = 'Complementar (cabritinho)' THEN 'Van' - ELSE modo - END AS modo_join - FROM - stu_pessoa_fisica -) -SELECT - COALESCE(s.perm_autor, j.cd_operadora_transporte) AS id_operadora, - UPPER(REGEXP_REPLACE(NORMALIZE(COALESCE(s.nome_operadora, j.nm_cliente), NFD), r"\pM", '')) AS operadora, - s.tipo_permissao AS tipo_operadora, - s.modo AS tipo_modal_stu, - j.ds_tipo_modal AS tipo_modal_jae, - s.processo AS id_processo, - s.data_registro AS data_processo, - COALESCE(s.documento, j.nr_documento) AS documento, - COALESCE(s.tipo_documento, j.tipo_documento) AS tipo_documento, - s.perm_autor AS id_operadora_stu, - j.cd_operadora_transporte AS id_operadora_jae, - j.in_situacao_atividade AS situacao_operadora_jae, - j.cd_agencia AS agencia, - j.cd_tipo_conta AS tipo_conta, - j.nm_banco AS banco, - LPAD(j.nr_banco, 3, '0') AS codigo_banco, - j.nr_conta AS conta -FROM - stu AS s -FULL OUTER JOIN - operadora_jae AS j -ON - s.documento = j.nr_documento - AND s.modo_join = j.ds_tipo_modal \ No newline at end of file diff --git a/queries/models/cadastro/operadoras_contato.sql b/queries/models/cadastro/operadoras_contato.sql deleted file mode 100644 index 2476cef4..00000000 --- a/queries/models/cadastro/operadoras_contato.sql +++ /dev/null @@ -1,26 +0,0 @@ -{{ - config( - materialized="table", - ) -}} - - -SELECT - d.id_operadora, - cpj.nm_contato AS contato, - cpj.nr_ramal AS ramal, - COALESCE(cpj.nr_telefone, c.nr_telefone) AS telefone, - COALESCE(cpj.tx_email, c.tx_email) AS email -FROM - {{ ref("staging_cliente") }} AS c -LEFT JOIN - {{ ref("staging_contato_pessoa_juridica") }} cpj -ON - c.cd_cliente = cpj.cd_cliente -JOIN - {{ ref("staging_operadora_transporte") }} AS ot -ON - ot.cd_cliente = c.cd_cliente -JOIN - {{ ref("diretorio_operadoras") }} d -ON d.id_operadora_jae = ot.cd_operadora_transporte \ No newline at end of file diff --git a/queries/models/cadastro/schema.yml b/queries/models/cadastro/schema.yml deleted file mode 100644 index 9abafa05..00000000 --- a/queries/models/cadastro/schema.yml +++ /dev/null @@ -1,92 +0,0 @@ -version: 2 - -models: - - name: diretorio_operadoras - description: "Tabela de operadoras de transporte" - columns: - - name: id_operadora - description: "Identificador único do operador, podendo ser o código de permissionário ou código da Jaé" - - name: operadora - description: "Nome do operador" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: tipo_operadora - description: "Tipo de permissionário (Exemplos: autônomo, empresa, cooperativa)" - - name: tipo_modal_stu - description: "Tipo de transporte no STU (ônibus, van, BRT)" - - name: tipo_modal_jae - description: "Tipo de transporte na Jaé (ônibus, van, BRT)" - - name: id_processo - description: "Número do processo no STU" - - name: data_processo - description: "Data do processo no STU" - - name: documento - description: "Documento do operador (CPF ou CNPJ)" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: tipo_documento - description: "Tipo do documento do operador (CPF ou CNPJ)" - - name: id_operadora_stu - description: "Código de permissionário vindo do STU" - - name: id_operadora_jae - description: "Código do operador no sistema da Jaé" - - name: situacao_operadora_jae - description: "Indicador de atividade do operador no sistema da Jaé" - - name: agencia - description: "Número da agência bancária do operador" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: tipo_conta - description: "Tipo da conta bancária do operador" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: banco - description: "Nome do banco" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: codigo_banco - description: "Código do banco (COMPE)" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: conta - description: "Número da conta bancária do operador" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: operadoras_contato - description: "Tabela de contatos das operadoras de transporte" - columns: - - name: id_operadora - description: "Identificador único da tabela cadastro.operadoras" - - name: contato - description: "Nome do contato" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: ramal - description: "Ramal do telefone" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: telefone - description: "Número de telefone" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: email - description: "Endereço de E-Mail" - policy_tags: - - 'projects/rj-smtr/locations/us/taxonomies/388050497607535163/policyTags/3935188996031375059' - - name: diretorio_consorcios - description: "Tabela de contatos das operadoras de transporte" - columns: - - name: id_consorcio - description: "Identificador único do consórcio, podendo ser o código de permissionário ou código da Jaé" - - name: consorcio - description: "Nome do consórcio" - - name: id_processo - description: "Número do processo no STU" - - name: data_processo - description: "Data do processo no STU" - - name: cnpj - description: "CNPJ do consórcio" - - name: id_consorcio_stu - description: "Código de permissionário vindo do STU" - - name: id_consorcio_jae - description: "Código do consórcio no sistema da Jaé" \ No newline at end of file diff --git a/queries/models/dashboard_subsidio_sppo/README.md b/queries/models/dashboard_subsidio_sppo/README.md deleted file mode 100644 index 8d6a4c50..00000000 --- a/queries/models/dashboard_subsidio_sppo/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# Dashboard Subsídio SPPO -* Versão: 3.0.0 -* Data de início: 16/01/2023 - -![dashboard_subsidio_sppo](https://user-images.githubusercontent.com/66736583/227256098-6371bf20-d031-483d-8a20-f211ff552c25.png) - -