From b95a56322a846de8084263e8d65843d03d3859a0 Mon Sep 17 00:00:00 2001 From: miloskimatheus Date: Wed, 5 Feb 2025 17:42:05 -0300 Subject: [PATCH 1/9] fixing the logic in the join on health units (getting more matchs) --- .../mart_monitora_reg__monitor_vagas_ambulatoriais.sql | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/models/marts/subgeral/monitora_reg/mart_monitora_reg__monitor_vagas_ambulatoriais.sql b/models/marts/subgeral/monitora_reg/mart_monitora_reg__monitor_vagas_ambulatoriais.sql index 54757393..99fa16e2 100644 --- a/models/marts/subgeral/monitora_reg/mart_monitora_reg__monitor_vagas_ambulatoriais.sql +++ b/models/marts/subgeral/monitora_reg/mart_monitora_reg__monitor_vagas_ambulatoriais.sql @@ -194,11 +194,12 @@ with left join estabelecimentos as estab -- ma prática temporária (convertendo o tipo durante o join) - on safe_cast(ofer.ano_competencia as int) + on safe_cast(coalesce(ofer.ano_competencia, prof.ano_competencia) as int) = safe_cast(estab.ano_competencia as int) - and safe_cast(ofer.mes_competencia as int) + and safe_cast(coalesce(ofer.mes_competencia, prof.mes_competencia) as int) = safe_cast(estab.mes_competencia as int) - and safe_cast(ofer.id_cnes as int) = safe_cast(estab.id_cnes as int) + and safe_cast(coalesce(ofer.id_cnes, prof.id_cnes) as int) + = safe_cast(estab.id_cnes as int) ), iqr as ( From e2c30cffc81ff83feda58738d9ae674b978fd011 Mon Sep 17 00:00:00 2001 From: ThiagoTrabach Date: Sun, 9 Feb 2025 12:57:30 -0300 Subject: [PATCH 2/9] Update .gitignore with Cursor IDE-related files --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1ca6bb66..7b32e2e4 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,6 @@ credentials/ target-base/ *.DS_Store /dbt_packages -.state/ \ No newline at end of file +.state/ +.cursorignore +.cursor/ \ No newline at end of file From 0b948456906a420203eff0ab64f501220173de22 Mon Sep 17 00:00:00 2001 From: ThiagoTrabach Date: Sun, 9 Feb 2025 17:55:49 -0300 Subject: [PATCH 3/9] Update dbt profile configuration from 'default' to 'sms' --- dbt_project.yml | 2 +- profiles.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dbt_project.yml b/dbt_project.yml index 189a087f..0717a59c 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -6,7 +6,7 @@ version: "1.0.0" config-version: 2 # This setting configures which "profile" dbt uses for this project. -profile: "default" +profile: "sms" # These configurations specify where dbt should look for different types of files. # The `source-paths` config, for example, states that models in this project can be diff --git a/profiles.yml b/profiles.yml index 2d077e27..5d7576b1 100644 --- a/profiles.yml +++ b/profiles.yml @@ -1,4 +1,4 @@ -default: +sms: target: dev outputs: dev: From 219d81459fee9415bcd231ec49089b42f795f666 Mon Sep 17 00:00:00 2001 From: miloskimatheus Date: Mon, 10 Feb 2025 14:59:12 -0300 Subject: [PATCH 4/9] Removes accents --- ...itora_reg__monitor_vagas_ambulatoriais.sql | 53 ++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/models/marts/subgeral/monitora_reg/mart_monitora_reg__monitor_vagas_ambulatoriais.sql b/models/marts/subgeral/monitora_reg/mart_monitora_reg__monitor_vagas_ambulatoriais.sql index 99fa16e2..2f496a54 100644 --- a/models/marts/subgeral/monitora_reg/mart_monitora_reg__monitor_vagas_ambulatoriais.sql +++ b/models/marts/subgeral/monitora_reg/mart_monitora_reg__monitor_vagas_ambulatoriais.sql @@ -213,7 +213,7 @@ with group by ano_competencia, mes_competencia, id_procedimento ), - final as ( + iqr_label as ( select mva.*, @@ -245,6 +245,57 @@ with and safe_cast(mva.id_cnes as int) = safe_cast(estab.id_cnes as int) where estab.vinculo_sus_indicador = 1 + ), + + final as ( + select + cpf, + cns, + {{ remove_accents_upper("profissional") }} as profissional, + id_cbo_2002, + {{ remove_accents_upper("ocupacao") }} as ocupacao, + {{ remove_accents_upper("ocupacao_agg") }} as ocupacao_agg, + id_cbo_2002_qtd_sisreg, + id_cbo_2002_todos_sisreg, + id_cnes, + {{ remove_accents_upper("estabelecimento") }} as estabelecimento, + ano_competencia, + mes_competencia, + id_procedimento, + {{ remove_accents_upper("procedimento") }} as procedimento, + carga_horaria_ambulatorial_mensal, + carga_horaria_procedimento_esperada_mensal, + vagas_programadas_mensal_todas, + vagas_programadas_mensal_primeira_vez, + vagas_programadas_mensal_retorno, + vagas_esperadas_mensal, + vagas_esperadas_mensal_primeira_vez, + vagas_esperadas_mensal_retorno, + vagas_diferenca_ofertado_esperado, + procedimento_distribuicao, + procedimento_consultas_hora, + procedimento_proporcao_reservas, + procedimento_proporcao_retornos, + {{ remove_accents_upper("tipo_estabelecimento") }} as tipo_estabelecimento, + {{ remove_accents_upper("tipo_estabelecimento_agrupado") }} + as tipo_estabelecimento_agrupado, + {{ remove_accents_upper("turno_estabelecimento") }} + as turno_estabelecimento, + {{ remove_accents_upper("tipo_gestao_estabelecimento") }} + as tipo_gestao_estabelecimento, + {{ remove_accents_upper("esfera_estabelecimento") }} + as esfera_estabelecimento, + {{ remove_accents_upper("natureza_juridica_estabelecimento") }} + as natureza_juridica_estabelecimento, + id_ap_estabelecimento, + {{ remove_accents_upper("ap_estabelecimento") }} as ap_estabelecimento, + {{ remove_accents_upper("endereco_bairro_estabelecimento") }} + as endereco_bairro_estabelecimento, + procedimento_ppi, + sisreg_dados, + cnes_dados, + {{ remove_accents_upper("status_oferta") }} as status_oferta + from iqr_label ) select * From 013ca5b1c689160313ff62711a8d53ca00cbc3f9 Mon Sep 17 00:00:00 2001 From: Pedro Marques Date: Mon, 17 Feb 2025 16:41:03 -0300 Subject: [PATCH 5/9] feat: adding bairros_aps model --- dbt_project.yml | 7 +++++++ .../_area_programatica_sources.yml | 10 ++++++++++ .../raw_area_programatica__bairros_aps.sql | 13 +++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 models/raw/area_programatica/_area_programatica_sources.yml create mode 100644 models/raw/area_programatica/raw_area_programatica__bairros_aps.sql diff --git a/dbt_project.yml b/dbt_project.yml index 0717a59c..ff2fbfa3 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -107,6 +107,13 @@ models: dado_publico: sim dado_pessoal: sim dado_sensivel: nao + area_programatica: + +schema: brutos_area_programatica + +tags: "daily" + +labels: + dado_publico: sim + dado_pessoal: nao + dado_sensivel: nao ergon: +schema: brutos_ergon +tags: ["daily", "ergon"] diff --git a/models/raw/area_programatica/_area_programatica_sources.yml b/models/raw/area_programatica/_area_programatica_sources.yml new file mode 100644 index 00000000..c965058b --- /dev/null +++ b/models/raw/area_programatica/_area_programatica_sources.yml @@ -0,0 +1,10 @@ +version: 2 + +sources: + - name: brutos_area_programatica_staging + database: rj-sms + schema: brutos_area_programatica_staging + tables: + - name: bairros_aps + + diff --git a/models/raw/area_programatica/raw_area_programatica__bairros_aps.sql b/models/raw/area_programatica/raw_area_programatica__bairros_aps.sql new file mode 100644 index 00000000..088039d2 --- /dev/null +++ b/models/raw/area_programatica/raw_area_programatica__bairros_aps.sql @@ -0,0 +1,13 @@ +{{ + config( + alias="bairros_aps", + schema= "brutos_area_programatica" + ) +}} + +with source as ( + select * from {{ source('brutos_area_programatica_staging', 'bairros_aps') }} +) + +select * +from source \ No newline at end of file From 5bb8f654c0adac75b66dd6a5745cf853380055db Mon Sep 17 00:00:00 2001 From: Pedro Marques Date: Tue, 18 Feb 2025 11:52:52 -0300 Subject: [PATCH 6/9] feat: add usuarios_permitidos_hci model for HCI user access management --- models/raw/sheets/_sheets_sources.yml | 1 + .../raw_sheets__usuarios_permitidos_hci.sql | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 models/raw/sheets/raw_sheets__usuarios_permitidos_hci.sql diff --git a/models/raw/sheets/_sheets_sources.yml b/models/raw/sheets/_sheets_sources.yml index ed26cc4f..867d4f6a 100644 --- a/models/raw/sheets/_sheets_sources.yml +++ b/models/raw/sheets/_sheets_sources.yml @@ -15,6 +15,7 @@ sources: - name: aps_farmacias - name: profissionais_cns_cpf_aux - name: assistencial_procedimento + - name: usuarios_permitidos_hci - name: brutos_sheets database: rj-sms diff --git a/models/raw/sheets/raw_sheets__usuarios_permitidos_hci.sql b/models/raw/sheets/raw_sheets__usuarios_permitidos_hci.sql new file mode 100644 index 00000000..3a75a86e --- /dev/null +++ b/models/raw/sheets/raw_sheets__usuarios_permitidos_hci.sql @@ -0,0 +1,35 @@ +{{ + config( + schema="brutos_sheets", + alias="usuarios_permitidos_hci", + partition_by={ + "field": "cpf_particao", + "data_type": "int64", + "range": {"start": 0, "end": 100000000000, "interval": 34722222}, + }, + ) +}} + +with + source as ( + select * + from {{ source("brutos_sheets_staging", "usuarios_permitidos_hci") }} + ), + + tratados as ( + select + safe_cast(cpf as int64) as cpf_particao, + lpad(safe_cast(cpf as string), 11, "0") as cpf, + cnes, + nivel_de_acesso as nivel_acesso + from source + ), + + distintos as ( + select distinct * + from tratados + ) + +select * +from distintos +where {{ validate_cpf('cpf') }} From 3653502dce529d072928926baf41bf6f37acdd2e Mon Sep 17 00:00:00 2001 From: miloskimatheus Date: Tue, 18 Feb 2025 17:01:04 -0300 Subject: [PATCH 7/9] feat: AP information (and fixing neighborhood errors) --- .../dim_estabelecimento_sus_rio_historico.sql | 16 +++++++++-- .../raw_cnes_web__estabelecimento.sql | 27 ++++++++++++++++++- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/models/marts/core/dimensions/rio/dim_estabelecimento_sus_rio_historico.sql b/models/marts/core/dimensions/rio/dim_estabelecimento_sus_rio_historico.sql index 3af7b9c6..eb563871 100644 --- a/models/marts/core/dimensions/rio/dim_estabelecimento_sus_rio_historico.sql +++ b/models/marts/core/dimensions/rio/dim_estabelecimento_sus_rio_historico.sql @@ -81,6 +81,12 @@ with from {{ ref("raw_sheets__estabelecimento_auxiliar") }} ), + -- Obtendo informações sobre as áreas programáticas + aps_tb as ( + select bairro, ap, ap_titulo + from {{ ref("raw_area_programatica__bairros_aps") }} + ), + -- Obtendo atributos de contato para os estabelecimentos contatos_aps as ( select id_cnes, telefone, email, facebook, instagram, twitter @@ -173,8 +179,13 @@ with estabelecimentos_atributos.tipo_unidade_agrupado_subgeral as tipo_unidade_agrupado, estabelecimentos_atributos.esfera_subgeral as esfera, - estabelecimentos_atributos.area_programatica as id_ap, - estabelecimentos_atributos.area_programatica_descr as ap, + coalesce( + estabelecimentos_atributos.area_programatica, + safe_cast(aps_tb.ap as string) + ) as id_ap, + coalesce( + estabelecimentos_atributos.area_programatica_descr, aps_tb.ap_titulo + ) as ap, estabelecimentos_atributos.agrupador_sms, estabelecimentos_atributos.tipo_sms, estabelecimentos_atributos.tipo_sms_simplificado, @@ -236,6 +247,7 @@ with contatos_aps on cast(brutos.id_estabelecimento_cnes as int64) = cast(contatos_aps.id_cnes as int64) + left join aps_tb on cnes_web.endereco_bairro = aps_tb.bairro ), -- Seleção final diff --git a/models/raw/cnes_web/raw_cnes_web__estabelecimento.sql b/models/raw/cnes_web/raw_cnes_web__estabelecimento.sql index d0ad6e98..4a1524bc 100644 --- a/models/raw/cnes_web/raw_cnes_web__estabelecimento.sql +++ b/models/raw/cnes_web/raw_cnes_web__estabelecimento.sql @@ -38,7 +38,32 @@ select safe_cast(no_logradouro as string) as endereco_logradouro, safe_cast(nu_endereco as string) as endereco_numero, safe_cast(no_complemento as string) as endereco_complemento, - safe_cast(no_bairro as string) as endereco_bairro, + + -- Handling typos and a few other errors + CASE + WHEN safe_cast(no_bairro as string) = 'SAO FRANCISCO XAVEIR' THEN 'SAO FRANCISCO XAVIER' + WHEN safe_cast(no_bairro as string) = 'BRAS DE PINA' THEN 'BRAZ DE PINA' + WHEN safe_cast(no_bairro as string) = 'CAMPO GRNADE' THEN 'CAMPO GRANDE' + WHEN safe_cast(no_bairro as string) = 'TAQUARA JACAREPAGU' THEN 'TAQUARA' + WHEN safe_cast(no_bairro as string) = 'CENTRO RJ' THEN 'CENTRO' + WHEN safe_cast(no_bairro as string) = 'QUINTINO' THEN 'QUINTINO BOCAIUVA' + WHEN safe_cast(no_bairro as string) = 'COCOTA ILHA DO GOVER' THEN 'COCOTA' + WHEN safe_cast(no_bairro as string) = 'SANTA TEREZA' THEN 'SANTA TERESA' + WHEN safe_cast(no_bairro as string) = 'MAL HERMES' THEN 'MARECHAL HERMES' + WHEN safe_cast(no_bairro as string) = 'TANQUE JACAREPAGUA' THEN 'TANQUE' + WHEN safe_cast(no_bairro as string) = 'ILHA DO FUNDAO' THEN 'CIDADE UNIVERSITARIA' + WHEN safe_cast(no_bairro as string) = 'SENADOR VASCONCELLOS' THEN 'SENADOR VASCONCELOS' + WHEN safe_cast(no_bairro as string) = 'RICARDO DE ALBUQUERQ' THEN 'RICARDO DE ALBUQUERQUE' + WHEN safe_cast(no_bairro as string) = 'RECREIO DOS BANDEIRA' THEN 'RECREIO DOS BANDEIRANTES' + WHEN safe_cast(no_bairro as string) = 'FUNDAO' THEN 'CIDADE UNIVERSITARIA' + WHEN safe_cast(no_bairro as string) = 'CASTELO' THEN 'CENTRO' + WHEN safe_cast(no_bairro as string) = 'TANGUE' THEN 'TANQUE' + WHEN safe_cast(no_bairro as string) = 'VILA MANGUINHOS' THEN 'MANGUINHOS' + WHEN safe_cast(no_bairro as string) = 'CAIS DO PORTO' THEN 'CENTRO' + WHEN safe_cast(co_cnes as string) = "2269767" THEN 'MEIER' + ELSE safe_cast(no_bairro as string) + END AS endereco_bairro, + safe_cast(co_cep as string) as endereco_cep, safe_cast(nu_latitude as float64) as endereco_latitude, safe_cast(nu_longitude as float64) as endereco_longitude, From b423268ca0a43d707766def31d0babd6de176fbf Mon Sep 17 00:00:00 2001 From: miloskimatheus Date: Fri, 21 Feb 2025 15:39:27 -0300 Subject: [PATCH 8/9] adds coordinates raw model; improves ap model; adds geolocation on mva; adds tags to models --- dbt_project.yml | 15 +++-- .../dim_estabelecimento_sus_rio_historico.sql | 29 ++++++++- .../_area_programatica_schema.yml | 16 +++++ .../_area_programatica_sources.yml | 2 - .../raw_area_programatica__bairros_aps.sql | 17 ++--- models/raw/geo_pgeo3/_geo_pgeo3_schema.yml | 64 +++++++++++++++++++ models/raw/geo_pgeo3/_geo_pgeo3_sources.yml | 8 +++ ...eo_pgeo3__estabelecimentos_coordenadas.sql | 40 ++++++++++++ 8 files changed, 173 insertions(+), 18 deletions(-) create mode 100644 models/raw/area_programatica/_area_programatica_schema.yml create mode 100644 models/raw/geo_pgeo3/_geo_pgeo3_schema.yml create mode 100644 models/raw/geo_pgeo3/_geo_pgeo3_sources.yml create mode 100644 models/raw/geo_pgeo3/raw_geo_pgeo3__estabelecimentos_coordenadas.sql diff --git a/dbt_project.yml b/dbt_project.yml index ff2fbfa3..5e2953dd 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -109,7 +109,14 @@ models: dado_sensivel: nao area_programatica: +schema: brutos_area_programatica - +tags: "daily" + +tags: ["weekly", "subgeral", "monitora_reg", "cnes_subgeral"] + +labels: + dado_publico: sim + dado_pessoal: nao + dado_sensivel: nao + geo_pgeo3: + +schema: brutos_geo_pgeo3 + +tags: ["weekly", "subgeral", "monitora_reg", "cnes_subgeral"] +labels: dado_publico: sim dado_pessoal: nao @@ -239,7 +246,7 @@ models: dado_sensivel: nao rio: +schema: saude_rio - +tags: ["weekly", "saude_rio", "subgeral"] + +tags: ["weekly", "saude_rio", "subgeral", "cnes_subgeral"] +labels: dado_publico: sim dado_pessoal: sim @@ -247,7 +254,7 @@ models: facts: sisreg: +schema: saude_sisreg - +tags: "daily" + +tags: ["daily", "cnes", "sisreg"] +labels: dado_publico: nao dado_pessoal: nao @@ -325,7 +332,7 @@ models: dominio: subgeral sisreg_reports: +schema: projeto_sisreg_reports - +tags: ["weekly", "subgeral", "sisreg_reports"] + +tags: ["weekly", "subgeral", "sisreg", "sisreg_reports"] +labels: dado_publico: nao dado_pessoal: sim diff --git a/models/marts/core/dimensions/rio/dim_estabelecimento_sus_rio_historico.sql b/models/marts/core/dimensions/rio/dim_estabelecimento_sus_rio_historico.sql index eb563871..6a35050f 100644 --- a/models/marts/core/dimensions/rio/dim_estabelecimento_sus_rio_historico.sql +++ b/models/marts/core/dimensions/rio/dim_estabelecimento_sus_rio_historico.sql @@ -87,6 +87,23 @@ with from {{ ref("raw_area_programatica__bairros_aps") }} ), + -- Obtendo latitudes e longitudes dos estabelecimentos de saúde + coordenadas as ( + select id_cnes, latitude_api, longitude_api + from + ( + select + id_cnes, + latitude_api, + longitude_api, + row_number() over ( + partition by id_cnes order by data_extracao desc + ) as rn + from {{ ref("raw_geo_pgeo3__estabelecimentos_coordenadas") }} + ) + where rn = 1 + ), + -- Obtendo atributos de contato para os estabelecimentos contatos_aps as ( select id_cnes, telefone, email, facebook, instagram, twitter @@ -155,8 +172,12 @@ with cnes_web.endereco_logradouro, cnes_web.endereco_numero, cnes_web.endereco_complemento, - cnes_web.endereco_latitude, - cnes_web.endereco_longitude, + coalesce( + cnes_web.endereco_latitude, coordenadas.latitude_api + ) as endereco_latitude, + coalesce( + cnes_web.endereco_longitude, coordenadas.longitude_api + ) as endereco_longitude, cnes_web.id_motivo_desativacao, cnes_web.id_unidade, cnes_web.aberto_sempre, @@ -248,6 +269,10 @@ with on cast(brutos.id_estabelecimento_cnes as int64) = cast(contatos_aps.id_cnes as int64) left join aps_tb on cnes_web.endereco_bairro = aps_tb.bairro + left join + coordenadas + on cast(brutos.id_estabelecimento_cnes as int64) + = cast(coordenadas.id_cnes as int64) ), -- Seleção final diff --git a/models/raw/area_programatica/_area_programatica_schema.yml b/models/raw/area_programatica/_area_programatica_schema.yml new file mode 100644 index 00000000..6e2344dc --- /dev/null +++ b/models/raw/area_programatica/_area_programatica_schema.yml @@ -0,0 +1,16 @@ +models: + - name: raw_area_programatica__bairros_aps + description: As Áreas Programáticas de Saúde do Rio de Janeiro são 10 grandes regiões que dividem a cidade para fins de planejamento e gestão. Essa divisão facilita a organização do sistema de saúde e permite identificar e abordar problemas específicos de cada área. + columns: + - name: bairro + description: A coluna 'bairro' representa o nome do bairro na cidade do Rio de Janeiro. + data_type: string + quote: true + - name: ap + description: A coluna 'ap' representa o código da Área Programática, um identificador único para cada uma das 10 Áreas Programáticas da cidade do Rio de Janeiro. + data_type: int64 + quote: true + - name: ap_titulo + description: A coluna 'ap_titulo' representa o nome ou título da Área Programática correspondente. + data_type: string + quote: true diff --git a/models/raw/area_programatica/_area_programatica_sources.yml b/models/raw/area_programatica/_area_programatica_sources.yml index c965058b..97daa787 100644 --- a/models/raw/area_programatica/_area_programatica_sources.yml +++ b/models/raw/area_programatica/_area_programatica_sources.yml @@ -6,5 +6,3 @@ sources: schema: brutos_area_programatica_staging tables: - name: bairros_aps - - diff --git a/models/raw/area_programatica/raw_area_programatica__bairros_aps.sql b/models/raw/area_programatica/raw_area_programatica__bairros_aps.sql index 088039d2..d0a072af 100644 --- a/models/raw/area_programatica/raw_area_programatica__bairros_aps.sql +++ b/models/raw/area_programatica/raw_area_programatica__bairros_aps.sql @@ -1,13 +1,10 @@ -{{ - config( - alias="bairros_aps", - schema= "brutos_area_programatica" - ) -}} +{{ config(alias="bairros_aps", schema="brutos_area_programatica") }} -with source as ( - select * from {{ source('brutos_area_programatica_staging', 'bairros_aps') }} -) +with + source as ( + select bairro, ap, ap_titulo + from {{ source("brutos_area_programatica_staging", "bairros_aps") }} + ) select * -from source \ No newline at end of file +from source diff --git a/models/raw/geo_pgeo3/_geo_pgeo3_schema.yml b/models/raw/geo_pgeo3/_geo_pgeo3_schema.yml new file mode 100644 index 00000000..db093777 --- /dev/null +++ b/models/raw/geo_pgeo3/_geo_pgeo3_schema.yml @@ -0,0 +1,64 @@ +models: + - name: raw_geo_pgeo3__estabelecimentos_coordenadas + description: O modelo raw_geo_pgeo3__estabelecimentos_coordenadas contém dados geográficos relacionados a estabelecimentos de saúde. Estes dados são municipais, provenientes da API do IPP. + columns: + - name: id_cnes + description: Esta coluna representa o identificador único do estabelecimento de saúde. É um número de sete dígitos, preenchido com zeros à esquerda caso o número original tenha menos de sete dígitos. + data_type: string + quote: true + - name: endereco_cep + description: Esta coluna representa o Código de Endereçamento Postal (CEP) do endereço do estabelecimento de saúde. É um número de oito dígitos, preenchido com zeros à esquerda caso o número original tenha menos de oito dígitos. + data_type: string + quote: true + - name: endereco_bairro + description: Esta coluna representa o bairro do endereço do estabelecimento de saúde. + data_type: string + quote: true + - name: endereco_logradouro + description: Esta coluna contém o nome da rua do estabelecimento. + data_type: string + quote: true + - name: endereco_numero + description: Esta coluna contém o número do endereço do estabelecimento. + data_type: string + quote: true + - name: latitude_cep + description: Esta coluna contém a latitude do estabelecimento com base no CEP. + data_type: float64 + quote: true + - name: longitude_cep + description: Esta coluna representa a longitude do CEP do estabelecimento. + data_type: float64 + quote: true + - name: latitude_addr + description: Esta coluna representa a latitude do endereço do estabelecimento. + data_type: float64 + quote: true + - name: longitude_addr + description: Esta coluna representa a longitude do endereço do estabelecimento. + data_type: float64 + quote: true + - name: latitude_api + description: Latitude final à ser considerada (Tenta preencher com addr, e caso não consiga, tenta preencher com cep). + data_type: float64 + quote: true + - name: longitude_api + description: Longitude final à ser considerada (Tenta preencher com addr, e caso não consiga, tenta preencher com cep). + data_type: float64 + quote: true + - name: data_extracao + description: A data e hora em que os dados foram extraídos. + data_type: datetime + quote: true + - name: ano_particao + description: Esta coluna representa o ano da partição. + data_type: int64 + quote: true + - name: mes_particao + description: Esta coluna representa o mês da partição. + data_type: int64 + quote: true + - name: data_particao + description: Esta coluna representa a data da partição. É baseada na data_extração, e é utilizada para fins de organização dos dados e consultas mais rápidas. + data_type: date + quote: true diff --git a/models/raw/geo_pgeo3/_geo_pgeo3_sources.yml b/models/raw/geo_pgeo3/_geo_pgeo3_sources.yml new file mode 100644 index 00000000..f9f9d169 --- /dev/null +++ b/models/raw/geo_pgeo3/_geo_pgeo3_sources.yml @@ -0,0 +1,8 @@ +version: 2 + +sources: + - name: brutos_geo_pgeo3_staging + database: rj-sms + schema: brutos_geo_pgeo3_staging + tables: + - name: estabelecimentos_coordenadas \ No newline at end of file diff --git a/models/raw/geo_pgeo3/raw_geo_pgeo3__estabelecimentos_coordenadas.sql b/models/raw/geo_pgeo3/raw_geo_pgeo3__estabelecimentos_coordenadas.sql new file mode 100644 index 00000000..12434c1a --- /dev/null +++ b/models/raw/geo_pgeo3/raw_geo_pgeo3__estabelecimentos_coordenadas.sql @@ -0,0 +1,40 @@ +{{ + config( + schema="brutos_geo_pgeo3", + alias="estabelecimentos_coordenadas", + partition_by={ + "field": "data_particao", + "data_type": "date", + "granularity": "month", + }, + ) +}} + +with + source as ( + select + lpad(id_cnes, 7, '0') as id_cnes, + lpad(endereco_cep, 8, '0') as endereco_cep, + + endereco_bairro, + endereco_logradouro, + endereco_numero, + + safe_cast(latitude_cep as float64) as latitude_cep, + safe_cast(longitude_cep as float64) as longitude_cep, + safe_cast(latitude_addr as float64) as latitude_addr, + safe_cast(longitude_addr as float64) as longitude_addr, + safe_cast(latitude_api as float64) as latitude_api, + safe_cast(longitude_api as float64) as longitude_api, + + safe_cast(data_extracao as datetime) as data_extracao, + safe_cast(ano_particao as int64) as ano_particao, + safe_cast(mes_particao as int64) as mes_particao, + safe_cast(data_particao as date) as data_particao + + from {{ source("brutos_geo_pgeo3_staging", "estabelecimentos_coordenadas") }} + + ) + +select * +from source From 6f33a764f3ae21d87aca212e5bc92e5c624fd4ac Mon Sep 17 00:00:00 2001 From: Pedro Marques Date: Fri, 21 Feb 2025 17:24:24 -0300 Subject: [PATCH 9/9] feat: fix profile config --- .github/workflows/dbt-compile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dbt-compile.yaml b/.github/workflows/dbt-compile.yaml index ddc2230c..3787dc3b 100644 --- a/.github/workflows/dbt-compile.yaml +++ b/.github/workflows/dbt-compile.yaml @@ -35,5 +35,5 @@ jobs: run: dbt deps - name: Compile dbt models - run: dbt compile --profiles-dir . --profile default --target dev + run: dbt compile --profiles-dir . --profile sms --target dev