From 3b4eacd77d7e79f64efa6deb09b35f8a56c64954 Mon Sep 17 00:00:00 2001 From: Lucas Moreira <65978482+lucasnascm@users.noreply.github.com> Date: Thu, 8 Feb 2024 16:35:00 -0300 Subject: [PATCH 1/6] [dados] br_mec_sisu Adiciona microdados do Sisu --- dbt_project.yml | 3 + .../br_mec_sisu/br_mec_sisu__microdados.sql | 103 ++++++ models/br_mec_sisu/schema.yml | 313 ++++++++++++++++++ 3 files changed, 419 insertions(+) create mode 100644 models/br_mec_sisu/br_mec_sisu__microdados.sql create mode 100644 models/br_mec_sisu/schema.yml diff --git a/dbt_project.yml b/dbt_project.yml index 0398a87a..08a25620 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -202,6 +202,9 @@ models: br_me_comex_stat: +materialized: table +schema: br_me_comex_stat + br_mec_sisu: + +materialized: table + +schema: br_mec_sisu br_mercadolivre_ofertas: +materialized: table +schema: br_mercadolivre_ofertas diff --git a/models/br_mec_sisu/br_mec_sisu__microdados.sql b/models/br_mec_sisu/br_mec_sisu__microdados.sql new file mode 100644 index 00000000..ce54482c --- /dev/null +++ b/models/br_mec_sisu/br_mec_sisu__microdados.sql @@ -0,0 +1,103 @@ +{{ + config( + schema='br_mec_sisu', + alias = 'microdados', + materialized='table', + partition_by={ + "field": "ano", + "data_type": "int64", + "range": { + "start": 2017, + "end": 2024, + "interval": 1} + }, + cluster_by = ["ano", "sigla_uf_candidato"], + labels = {'tema': 'educacao'}) +}} + +SELECT + SAFE_CAST (ano AS INT64) AS ano, + SAFE_CAST (edicao AS STRING) AS edicao, + SAFE_CAST (etapa AS STRING) AS etapa, + SAFE_CAST (sigla_uf_ies AS STRING) AS sigla_uf_ies, + SAFE_CAST (id_ies AS STRING) AS id_ies, + SAFE_CAST (sigla_ies AS STRING) AS sigla_ies, + SAFE_CAST (sigla_uf_campus AS STRING) AS sigla_uf_campus, + SAFE_CAST (id_municipio AS STRING) AS id_municipio_campus, + SAFE_CAST (id_campus AS STRING) AS id_campus, + SAFE_CAST (campus AS STRING) AS campus, + SAFE_CAST (id_curso AS STRING) AS id_curso, + CASE + WHEN turno = 'Integral' THEN '1' + WHEN turno = 'Matutino' THEN '2' + WHEN turno = 'Vespertino' THEN '3' + WHEN turno = 'Noturno' THEN '4' + WHEN turno = 'EaD' THEN '5' + END AS turno, + CASE + WHEN periodicidade = 'Trimestral' THEN '3' + WHEN periodicidade = 'Quadrimestral' THEN '4' + WHEN periodicidade = 'Quadrimestral' THEN '6' + WHEN periodicidade = 'Anual' THEN '12' + END AS periodicidade, + SAFE_CAST (tipo_cota AS STRING) AS tipo_cota, + SAFE_CAST (ds_modalidade_concorrencia AS STRING) AS modalidade_concorrencia, + SAFE_CAST (quantidade_vagas_concorrencia AS INT64) AS quantidade_vagas_concorrencia, + SAFE_CAST (percentual_bonus AS FLOAT64) AS percentual_bonus, + SAFE_CAST (peso_l AS FLOAT64) AS peso_l, + SAFE_CAST (peso_ch AS FLOAT64) AS peso_ch, + SAFE_CAST (peso_cn AS FLOAT64) AS peso_cn, + SAFE_CAST (peso_m AS FLOAT64) AS peso_m, + SAFE_CAST (peso_r AS FLOAT64) AS peso_r, + SAFE_CAST (nota_minima_l AS FLOAT64) AS nota_minima_l, + SAFE_CAST (nota_minima_ch AS FLOAT64) AS nota_minima_ch, + SAFE_CAST (nota_minima_cn AS FLOAT64) AS nota_minima_cn, + SAFE_CAST (nota_minima_m AS FLOAT64) AS nota_minima_m, + SAFE_CAST (nota_minima_r AS FLOAT64) AS nota_minima_r, + SAFE_CAST (media_minima AS FLOAT64) AS media_minima, + SAFE_CAST (cpf AS STRING) AS cpf, + SAFE_CAST (inscricao_enem AS STRING) AS inscricao_enem, + SAFE_CAST (candidato AS STRING) AS candidato, + SAFE_CAST (sexo AS STRING) AS sexo, + CASE WHEN ((LENGTH(data_nascimento) = 8 ) AND (CAST(SUBSTR(data_nascimento,1,2) AS INT64) > 30)) THEN CONCAT('19', data_nascimento) + WHEN ((LENGTH(data_nascimento) = 8 ) AND (CAST(SUBSTR(data_nascimento,1,2) AS INT64) < 30)) THEN CONCAT('20', data_nascimento) + ELSE data_nascimento + END AS data_nascimento, + SAFE_CAST (sigla_uf_candidato AS STRING) AS sigla_uf_candidato, + SAFE_CAST (id_municipio AS STRING) AS id_municipio_candidato, + SAFE_CAST (opcao AS STRING) AS opcao, + SAFE_CAST (nota_l AS FLOAT64) AS nota_l, + SAFE_CAST (nota_ch AS FLOAT64) AS nota_ch, + SAFE_CAST (nota_cn AS FLOAT64) AS nota_cn, + SAFE_CAST (nota_m AS FLOAT64) AS nota_m, + SAFE_CAST (nota_r AS FLOAT64) AS nota_r, + SAFE_CAST (nota_l_peso AS FLOAT64) AS nota_l_peso, + SAFE_CAST (nota_ch_peso AS FLOAT64) AS nota_ch_peso, + SAFE_CAST (nota_cn_peso AS FLOAT64) AS nota_cn_peso, + SAFE_CAST (nota_m_peso AS FLOAT64) AS nota_m_peso, + SAFE_CAST (nota_r_peso AS FLOAT64) AS nota_r_peso, + SAFE_CAST (nota_candidato AS FLOAT64) AS nota_candidato, + SAFE_CAST (nota_corte AS FLOAT64) AS nota_corte, + SAFE_CAST (classificacao AS INT64) AS classificacao, + SAFE_CAST ((CASE + WHEN status_aprovado = 'N' THEN False + WHEN status_aprovado = 'S' THEN True + END) AS BOOL) AS status_aprovado, + CASE + WHEN status_matricula = 'CANCELADA' THEN '1' + WHEN status_matricula = 'DOCUMENTACAO REJEITADA' THEN '2' + WHEN status_matricula = 'DOCUMENTAÇÃO REJEITADA' THEN '2' + WHEN status_matricula = 'EFETIVADA' THEN '3' + WHEN status_matricula = 'NÃO COMPARECEU' THEN '4' + WHEN status_matricula = 'NÃO CONVOCADO' THEN '5' + WHEN status_matricula = 'PENDENTE' THEN '6' + WHEN status_matricula = 'SUBSTITUIDA - FORA DO PRAZO' THEN '7' + WHEN status_matricula = 'SUBSTITUIDA - MATRICULA FORA DO PRAZO' THEN '7' + WHEN status_matricula = 'SUBSTITUIDA - MESMA IES' THEN '8' + WHEN status_matricula = 'SUBSTITUIDA - OUTRA IES' THEN '9' + WHEN status_matricula = 'SUBSTITUÍDA MESMA IES' THEN '8' + WHEN status_matricula = 'SUBSTITUÍDA OUTRA IES' THEN '9' + END AS status_matricula +FROM `basedosdados-dev.br_mec_sisu_staging.microdados` s +LEFT JOIN `basedosdados-dev.br_bd_diretorios_brasil.municipio` d ON LOWER(s.nome_municipio_campus) = LOWER(d.nome) + AND LOWER(s.nome_municipio_candidato) = LOWER(d.nome) \ No newline at end of file diff --git a/models/br_mec_sisu/schema.yml b/models/br_mec_sisu/schema.yml new file mode 100644 index 00000000..39d663b2 --- /dev/null +++ b/models/br_mec_sisu/schema.yml @@ -0,0 +1,313 @@ +version: 2 + +models: + - name: br_mec_sisu__microdados + description: Insert `microdados` table description here + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - candidato + - etapa + columns: + - name: ano + description: Ano da edição + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano + - name: edicao + description: Número da edição + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: etapa + description: Código da etapa + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: id_ies + description: ID da Instituição de Ensino Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__instituicao_ensino_superior') + field: id_ies + - name: sigla_ies + description: Sigla da Instituição de Ensino Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: sigla_uf_ies + description: Sigla da Unidade da Federação da Instituição de Ensino Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municpio') + field: sigla_uf + - name: id_campus + description: ID do campus da Instituição Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: campus + description: Nome do campus da Instituição Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: sigla_uf_campus + description: Sigla da Unidade da Federação do campus da Instituição de Ensino + Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municpio') + field: sigla_uf + - name: id_municipio_campus + description: ID Município do campus da Instituição Superior - IBGE 7 Dígitos + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: id_curso + description: ID Curso - INEP + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__curso_superior') + field: id_curso + - name: turno + description: Turno + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: periodicidade + description: Periodicidade do curso + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: tipo_cota + description: Tipo de Cota + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: modalidade_concorrencia + description: Tipo da modalidade de concorrência + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: quantidade_vagas_concorrencia + description: Total de vagas ofertadas dentro da modalidade de concorrência + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: percentual_bonus + description: Percentual do bônus definido para as ações afirmativas próprias + da IES + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_l + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de linguagens do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_ch + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de ciências humanas do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_cn + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de ciências da natureza do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_m + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de matemática do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_r + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de redação do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_l + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de linguagens do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_ch + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de ciências humanas do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_cn + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de ciências da natureza do Enem na oferta do curso no processo + seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_m + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de matematica do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_r + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de redação do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: media_minima + description: Média aritmética mínima (não considerando pesos) dos cinco tipos + de provas do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: cpf + description: CPF do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: inscricao_enem + description: Código de inscrição do candidato no Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: candidato + description: Nome do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: sexo + description: Sexo do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: data_nascimento + description: Data de nascimento do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_data_tempo__dia') + field: dia + - name: sigla_uf_candidato + description: Sigla da Unidade da Federação de residência do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municpio') + field: sigla_uf + - name: id_municipio_candidato + description: ID do Município de residência do candidato - IBGE 7 Dígitos + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: opcao + description: Informa se é a primeira ou segunda opção de curso do candidato + no sistema Sisu + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_l + description: Nota obtida pelo candidato na prova de linguagens do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_ch + description: Nota obtida pelo candidato na prova de ciências humanas do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_cn + description: Nota obtida pelo candidato na prova de ciências da natureza do + Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_m + description: Nota obtida pelo candidato na prova de matemática do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_r + description: Nota obtida pelo candidato na redação do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_l_peso + description: Nota ponderada para a prova de linguagens do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_ch_peso + description: Nota ponderada para a prova de ciências humanas do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_cn_peso + description: Nota ponderada para a prova de ciências da natureza do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_m_peso + description: Nota ponderada para a prova de matemática do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_r_peso + description: Nota ponderada para a redação do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_candidato + description: Nota final do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_corte + description: Nota de corte da modalidade/curso na chamada regular + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: classificacao + description: Colocação do candiadto considerando todos os inscritos para o + mesmo curso + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: status_aprovado + description: Informa se o estudante foi aprovado ou não na chamada regular + em sua opção de curso + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: status_matricula + description: Informa a situação de matrícula registrado pela IES no sistema + "Sisu Gestão" + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 From 32ecd515a1cba52d084e59d6ee5165a4d6dafdc7 Mon Sep 17 00:00:00 2001 From: Lucas Moreira <65978482+lucasnascm@users.noreply.github.com> Date: Wed, 14 Feb 2024 11:34:28 -0300 Subject: [PATCH 2/6] fix join and case when --- models/br_mec_sisu/br_mec_sisu__microdados.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/models/br_mec_sisu/br_mec_sisu__microdados.sql b/models/br_mec_sisu/br_mec_sisu__microdados.sql index ce54482c..c5d899c4 100644 --- a/models/br_mec_sisu/br_mec_sisu__microdados.sql +++ b/models/br_mec_sisu/br_mec_sisu__microdados.sql @@ -23,7 +23,7 @@ SELECT SAFE_CAST (id_ies AS STRING) AS id_ies, SAFE_CAST (sigla_ies AS STRING) AS sigla_ies, SAFE_CAST (sigla_uf_campus AS STRING) AS sigla_uf_campus, - SAFE_CAST (id_municipio AS STRING) AS id_municipio_campus, + SAFE_CAST (d1.id_municipio AS STRING) AS id_municipio_campus, SAFE_CAST (id_campus AS STRING) AS id_campus, SAFE_CAST (campus AS STRING) AS campus, SAFE_CAST (id_curso AS STRING) AS id_curso, @@ -37,7 +37,7 @@ SELECT CASE WHEN periodicidade = 'Trimestral' THEN '3' WHEN periodicidade = 'Quadrimestral' THEN '4' - WHEN periodicidade = 'Quadrimestral' THEN '6' + WHEN periodicidade = 'Semestral' THEN '6' WHEN periodicidade = 'Anual' THEN '12' END AS periodicidade, SAFE_CAST (tipo_cota AS STRING) AS tipo_cota, @@ -64,7 +64,7 @@ SELECT ELSE data_nascimento END AS data_nascimento, SAFE_CAST (sigla_uf_candidato AS STRING) AS sigla_uf_candidato, - SAFE_CAST (id_municipio AS STRING) AS id_municipio_candidato, + SAFE_CAST (d2.id_municipio AS STRING) AS id_municipio_candidato, SAFE_CAST (opcao AS STRING) AS opcao, SAFE_CAST (nota_l AS FLOAT64) AS nota_l, SAFE_CAST (nota_ch AS FLOAT64) AS nota_ch, @@ -99,5 +99,5 @@ SELECT WHEN status_matricula = 'SUBSTITUÍDA OUTRA IES' THEN '9' END AS status_matricula FROM `basedosdados-dev.br_mec_sisu_staging.microdados` s -LEFT JOIN `basedosdados-dev.br_bd_diretorios_brasil.municipio` d ON LOWER(s.nome_municipio_campus) = LOWER(d.nome) - AND LOWER(s.nome_municipio_candidato) = LOWER(d.nome) \ No newline at end of file +LEFT JOIN `basedosdados-dev.br_bd_diretorios_brasil.municipio` d1 ON LOWER(s.nome_municipio_campus) = LOWER(d1.nome) +LEFT JOIN `basedosdados-dev.br_bd_diretorios_brasil.municipio` d2 ON LOWER(s.nome_municipio_candidato) = LOWER(d2.nome) \ No newline at end of file From 2cd8374fb532befea036113bfb71fa8e44e7f012 Mon Sep 17 00:00:00 2001 From: Laura Amaral Date: Fri, 23 Feb 2024 09:32:52 -0300 Subject: [PATCH 3/6] fix:lint --- .../br_mec_sisu/br_mec_sisu__microdados.sql | 243 ++++++++++-------- models/br_mec_sisu/schema.yml | 182 +++++++------ 2 files changed, 231 insertions(+), 194 deletions(-) diff --git a/models/br_mec_sisu/br_mec_sisu__microdados.sql b/models/br_mec_sisu/br_mec_sisu__microdados.sql index c5d899c4..6010cc8b 100644 --- a/models/br_mec_sisu/br_mec_sisu__microdados.sql +++ b/models/br_mec_sisu/br_mec_sisu__microdados.sql @@ -1,103 +1,144 @@ -{{ - config( - schema='br_mec_sisu', - alias = 'microdados', - materialized='table', - partition_by={ - "field": "ano", - "data_type": "int64", - "range": { - "start": 2017, - "end": 2024, - "interval": 1} - }, - cluster_by = ["ano", "sigla_uf_candidato"], - labels = {'tema': 'educacao'}) +{{ + config( + schema="br_mec_sisu", + alias="microdados", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2017, "end": 2024, "interval": 1}, + }, + cluster_by=["ano", "sigla_uf_candidato"], + labels={"tema": "educacao"}, + ) }} -SELECT - SAFE_CAST (ano AS INT64) AS ano, - SAFE_CAST (edicao AS STRING) AS edicao, - SAFE_CAST (etapa AS STRING) AS etapa, - SAFE_CAST (sigla_uf_ies AS STRING) AS sigla_uf_ies, - SAFE_CAST (id_ies AS STRING) AS id_ies, - SAFE_CAST (sigla_ies AS STRING) AS sigla_ies, - SAFE_CAST (sigla_uf_campus AS STRING) AS sigla_uf_campus, - SAFE_CAST (d1.id_municipio AS STRING) AS id_municipio_campus, - SAFE_CAST (id_campus AS STRING) AS id_campus, - SAFE_CAST (campus AS STRING) AS campus, - SAFE_CAST (id_curso AS STRING) AS id_curso, - CASE - WHEN turno = 'Integral' THEN '1' - WHEN turno = 'Matutino' THEN '2' - WHEN turno = 'Vespertino' THEN '3' - WHEN turno = 'Noturno' THEN '4' - WHEN turno = 'EaD' THEN '5' - END AS turno, - CASE - WHEN periodicidade = 'Trimestral' THEN '3' - WHEN periodicidade = 'Quadrimestral' THEN '4' - WHEN periodicidade = 'Semestral' THEN '6' - WHEN periodicidade = 'Anual' THEN '12' - END AS periodicidade, - SAFE_CAST (tipo_cota AS STRING) AS tipo_cota, - SAFE_CAST (ds_modalidade_concorrencia AS STRING) AS modalidade_concorrencia, - SAFE_CAST (quantidade_vagas_concorrencia AS INT64) AS quantidade_vagas_concorrencia, - SAFE_CAST (percentual_bonus AS FLOAT64) AS percentual_bonus, - SAFE_CAST (peso_l AS FLOAT64) AS peso_l, - SAFE_CAST (peso_ch AS FLOAT64) AS peso_ch, - SAFE_CAST (peso_cn AS FLOAT64) AS peso_cn, - SAFE_CAST (peso_m AS FLOAT64) AS peso_m, - SAFE_CAST (peso_r AS FLOAT64) AS peso_r, - SAFE_CAST (nota_minima_l AS FLOAT64) AS nota_minima_l, - SAFE_CAST (nota_minima_ch AS FLOAT64) AS nota_minima_ch, - SAFE_CAST (nota_minima_cn AS FLOAT64) AS nota_minima_cn, - SAFE_CAST (nota_minima_m AS FLOAT64) AS nota_minima_m, - SAFE_CAST (nota_minima_r AS FLOAT64) AS nota_minima_r, - SAFE_CAST (media_minima AS FLOAT64) AS media_minima, - SAFE_CAST (cpf AS STRING) AS cpf, - SAFE_CAST (inscricao_enem AS STRING) AS inscricao_enem, - SAFE_CAST (candidato AS STRING) AS candidato, - SAFE_CAST (sexo AS STRING) AS sexo, - CASE WHEN ((LENGTH(data_nascimento) = 8 ) AND (CAST(SUBSTR(data_nascimento,1,2) AS INT64) > 30)) THEN CONCAT('19', data_nascimento) - WHEN ((LENGTH(data_nascimento) = 8 ) AND (CAST(SUBSTR(data_nascimento,1,2) AS INT64) < 30)) THEN CONCAT('20', data_nascimento) - ELSE data_nascimento - END AS data_nascimento, - SAFE_CAST (sigla_uf_candidato AS STRING) AS sigla_uf_candidato, - SAFE_CAST (d2.id_municipio AS STRING) AS id_municipio_candidato, - SAFE_CAST (opcao AS STRING) AS opcao, - SAFE_CAST (nota_l AS FLOAT64) AS nota_l, - SAFE_CAST (nota_ch AS FLOAT64) AS nota_ch, - SAFE_CAST (nota_cn AS FLOAT64) AS nota_cn, - SAFE_CAST (nota_m AS FLOAT64) AS nota_m, - SAFE_CAST (nota_r AS FLOAT64) AS nota_r, - SAFE_CAST (nota_l_peso AS FLOAT64) AS nota_l_peso, - SAFE_CAST (nota_ch_peso AS FLOAT64) AS nota_ch_peso, - SAFE_CAST (nota_cn_peso AS FLOAT64) AS nota_cn_peso, - SAFE_CAST (nota_m_peso AS FLOAT64) AS nota_m_peso, - SAFE_CAST (nota_r_peso AS FLOAT64) AS nota_r_peso, - SAFE_CAST (nota_candidato AS FLOAT64) AS nota_candidato, - SAFE_CAST (nota_corte AS FLOAT64) AS nota_corte, - SAFE_CAST (classificacao AS INT64) AS classificacao, - SAFE_CAST ((CASE - WHEN status_aprovado = 'N' THEN False - WHEN status_aprovado = 'S' THEN True - END) AS BOOL) AS status_aprovado, - CASE - WHEN status_matricula = 'CANCELADA' THEN '1' - WHEN status_matricula = 'DOCUMENTACAO REJEITADA' THEN '2' - WHEN status_matricula = 'DOCUMENTAÇÃO REJEITADA' THEN '2' - WHEN status_matricula = 'EFETIVADA' THEN '3' - WHEN status_matricula = 'NÃO COMPARECEU' THEN '4' - WHEN status_matricula = 'NÃO CONVOCADO' THEN '5' - WHEN status_matricula = 'PENDENTE' THEN '6' - WHEN status_matricula = 'SUBSTITUIDA - FORA DO PRAZO' THEN '7' - WHEN status_matricula = 'SUBSTITUIDA - MATRICULA FORA DO PRAZO' THEN '7' - WHEN status_matricula = 'SUBSTITUIDA - MESMA IES' THEN '8' - WHEN status_matricula = 'SUBSTITUIDA - OUTRA IES' THEN '9' - WHEN status_matricula = 'SUBSTITUÍDA MESMA IES' THEN '8' - WHEN status_matricula = 'SUBSTITUÍDA OUTRA IES' THEN '9' - END AS status_matricula -FROM `basedosdados-dev.br_mec_sisu_staging.microdados` s -LEFT JOIN `basedosdados-dev.br_bd_diretorios_brasil.municipio` d1 ON LOWER(s.nome_municipio_campus) = LOWER(d1.nome) -LEFT JOIN `basedosdados-dev.br_bd_diretorios_brasil.municipio` d2 ON LOWER(s.nome_municipio_candidato) = LOWER(d2.nome) \ No newline at end of file +select + safe_cast(ano as int64) as ano, + safe_cast(edicao as string) as edicao, + safe_cast(etapa as string) as etapa, + safe_cast(sigla_uf_ies as string) as sigla_uf_ies, + safe_cast(id_ies as string) as id_ies, + safe_cast(sigla_ies as string) as sigla_ies, + safe_cast(sigla_uf_campus as string) as sigla_uf_campus, + safe_cast(d1.id_municipio as string) as id_municipio_campus, + safe_cast(id_campus as string) as id_campus, + safe_cast(campus as string) as campus, + safe_cast(id_curso as string) as id_curso, + case + when turno = 'Integral' + then '1' + when turno = 'Matutino' + then '2' + when turno = 'Vespertino' + then '3' + when turno = 'Noturno' + then '4' + when turno = 'EaD' + then '5' + end as turno, + case + when periodicidade = 'Trimestral' + then '3' + when periodicidade = 'Quadrimestral' + then '4' + when periodicidade = 'Semestral' + then '6' + when periodicidade = 'Anual' + then '12' + end as periodicidade, + safe_cast(tipo_cota as string) as tipo_cota, + safe_cast(ds_modalidade_concorrencia as string) as modalidade_concorrencia, + safe_cast(quantidade_vagas_concorrencia as int64) as quantidade_vagas_concorrencia, + safe_cast(percentual_bonus as float64) as percentual_bonus, + safe_cast(peso_l as float64) as peso_l, + safe_cast(peso_ch as float64) as peso_ch, + safe_cast(peso_cn as float64) as peso_cn, + safe_cast(peso_m as float64) as peso_m, + safe_cast(peso_r as float64) as peso_r, + safe_cast(nota_minima_l as float64) as nota_minima_l, + safe_cast(nota_minima_ch as float64) as nota_minima_ch, + safe_cast(nota_minima_cn as float64) as nota_minima_cn, + safe_cast(nota_minima_m as float64) as nota_minima_m, + safe_cast(nota_minima_r as float64) as nota_minima_r, + safe_cast(media_minima as float64) as media_minima, + safe_cast(cpf as string) as cpf, + safe_cast(inscricao_enem as string) as inscricao_enem, + safe_cast(candidato as string) as candidato, + safe_cast(sexo as string) as sexo, + case + when + ( + (length(data_nascimento) = 8) + and (cast(substr(data_nascimento, 1, 2) as int64) > 30) + ) + then concat('19', data_nascimento) + when + ( + (length(data_nascimento) = 8) + and (cast(substr(data_nascimento, 1, 2) as int64) < 30) + ) + then concat('20', data_nascimento) + else data_nascimento + end as data_nascimento, + safe_cast(sigla_uf_candidato as string) as sigla_uf_candidato, + safe_cast(d2.id_municipio as string) as id_municipio_candidato, + safe_cast(opcao as string) as opcao, + safe_cast(nota_l as float64) as nota_l, + safe_cast(nota_ch as float64) as nota_ch, + safe_cast(nota_cn as float64) as nota_cn, + safe_cast(nota_m as float64) as nota_m, + safe_cast(nota_r as float64) as nota_r, + safe_cast(nota_l_peso as float64) as nota_l_peso, + safe_cast(nota_ch_peso as float64) as nota_ch_peso, + safe_cast(nota_cn_peso as float64) as nota_cn_peso, + safe_cast(nota_m_peso as float64) as nota_m_peso, + safe_cast(nota_r_peso as float64) as nota_r_peso, + safe_cast(nota_candidato as float64) as nota_candidato, + safe_cast(nota_corte as float64) as nota_corte, + safe_cast(classificacao as int64) as classificacao, + safe_cast( + ( + case + when status_aprovado = 'N' + then false + when status_aprovado = 'S' + then true + end + ) as bool + ) as status_aprovado, + case + when status_matricula = 'CANCELADA' + then '1' + when status_matricula = 'DOCUMENTACAO REJEITADA' + then '2' + when status_matricula = 'DOCUMENTAÇÃO REJEITADA' + then '2' + when status_matricula = 'EFETIVADA' + then '3' + when status_matricula = 'NÃO COMPARECEU' + then '4' + when status_matricula = 'NÃO CONVOCADO' + then '5' + when status_matricula = 'PENDENTE' + then '6' + when status_matricula = 'SUBSTITUIDA - FORA DO PRAZO' + then '7' + when status_matricula = 'SUBSTITUIDA - MATRICULA FORA DO PRAZO' + then '7' + when status_matricula = 'SUBSTITUIDA - MESMA IES' + then '8' + when status_matricula = 'SUBSTITUIDA - OUTRA IES' + then '9' + when status_matricula = 'SUBSTITUÍDA MESMA IES' + then '8' + when status_matricula = 'SUBSTITUÍDA OUTRA IES' + then '9' + end as status_matricula +from `basedosdados-dev.br_mec_sisu_staging.microdados` s +left join + `basedosdados-dev.br_bd_diretorios_brasil.municipio` d1 + on lower(s.nome_municipio_campus) = lower(d1.nome) +left join + `basedosdados-dev.br_bd_diretorios_brasil.municipio` d2 + on lower(s.nome_municipio_candidato) = lower(d2.nome) diff --git a/models/br_mec_sisu/schema.yml b/models/br_mec_sisu/schema.yml index 39d663b2..942b0032 100644 --- a/models/br_mec_sisu/schema.yml +++ b/models/br_mec_sisu/schema.yml @@ -1,313 +1,309 @@ +--- version: 2 - models: - name: br_mec_sisu__microdados description: Insert `microdados` table description here tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - ano - - candidato - - etapa + combination_of_columns: [ano, candidato, etapa] columns: - name: ano description: Ano da edição tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano - name: edicao description: Número da edição tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: etapa description: Código da etapa tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: id_ies description: ID da Instituição de Ensino Superior tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__instituicao_ensino_superior') - field: id_ies + to: ref('br_bd_diretorios_brasil__instituicao_ensino_superior') + field: id_ies - name: sigla_ies description: Sigla da Instituição de Ensino Superior tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: sigla_uf_ies description: Sigla da Unidade da Federação da Instituição de Ensino Superior tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__municpio') - field: sigla_uf + to: ref('br_bd_diretorios_brasil__municpio') + field: sigla_uf - name: id_campus description: ID do campus da Instituição Superior tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: campus description: Nome do campus da Instituição Superior tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: sigla_uf_campus description: Sigla da Unidade da Federação do campus da Instituição de Ensino - Superior + Superior tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__municpio') - field: sigla_uf + to: ref('br_bd_diretorios_brasil__municpio') + field: sigla_uf - name: id_municipio_campus description: ID Município do campus da Instituição Superior - IBGE 7 Dígitos tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: id_curso description: ID Curso - INEP tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__curso_superior') - field: id_curso + to: ref('br_bd_diretorios_brasil__curso_superior') + field: id_curso - name: turno description: Turno tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: periodicidade description: Periodicidade do curso tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: tipo_cota description: Tipo de Cota tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: modalidade_concorrencia description: Tipo da modalidade de concorrência tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: quantidade_vagas_concorrencia description: Total de vagas ofertadas dentro da modalidade de concorrência tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: percentual_bonus description: Percentual do bônus definido para as ações afirmativas próprias - da IES + da IES tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: peso_l description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de linguagens do Enem na oferta do curso no processo seletivo + de linguagens do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: peso_ch description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de ciências humanas do Enem na oferta do curso no processo seletivo + de ciências humanas do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: peso_cn description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de ciências da natureza do Enem na oferta do curso no processo seletivo + de ciências da natureza do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: peso_m description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de matemática do Enem na oferta do curso no processo seletivo + de matemática do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: peso_r description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de redação do Enem na oferta do curso no processo seletivo + de redação do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_minima_l description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de linguagens do Enem na oferta do curso no processo seletivo + a prova de linguagens do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_minima_ch description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de ciências humanas do Enem na oferta do curso no processo seletivo + a prova de ciências humanas do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_minima_cn description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de ciências da natureza do Enem na oferta do curso no processo - seletivo + a prova de ciências da natureza do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_minima_m description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de matematica do Enem na oferta do curso no processo seletivo + a prova de matematica do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_minima_r description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de redação do Enem na oferta do curso no processo seletivo + a prova de redação do Enem na oferta do curso no processo seletivo tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: media_minima description: Média aritmética mínima (não considerando pesos) dos cinco tipos - de provas do Enem + de provas do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: cpf description: CPF do candidato tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: inscricao_enem description: Código de inscrição do candidato no Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: candidato description: Nome do candidato tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: sexo description: Sexo do candidato tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: data_nascimento description: Data de nascimento do candidato tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_data_tempo__dia') - field: dia + to: ref('br_bd_diretorios_data_tempo__dia') + field: dia - name: sigla_uf_candidato description: Sigla da Unidade da Federação de residência do candidato tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__municpio') - field: sigla_uf + to: ref('br_bd_diretorios_brasil__municpio') + field: sigla_uf - name: id_municipio_candidato description: ID do Município de residência do candidato - IBGE 7 Dígitos tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: opcao description: Informa se é a primeira ou segunda opção de curso do candidato - no sistema Sisu + no sistema Sisu tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_l description: Nota obtida pelo candidato na prova de linguagens do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_ch description: Nota obtida pelo candidato na prova de ciências humanas do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_cn description: Nota obtida pelo candidato na prova de ciências da natureza do - Enem + Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_m description: Nota obtida pelo candidato na prova de matemática do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_r description: Nota obtida pelo candidato na redação do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_l_peso description: Nota ponderada para a prova de linguagens do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_ch_peso description: Nota ponderada para a prova de ciências humanas do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_cn_peso description: Nota ponderada para a prova de ciências da natureza do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_m_peso description: Nota ponderada para a prova de matemática do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_r_peso description: Nota ponderada para a redação do Enem tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_candidato description: Nota final do candidato tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: nota_corte description: Nota de corte da modalidade/curso na chamada regular tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: classificacao description: Colocação do candiadto considerando todos os inscritos para o - mesmo curso + mesmo curso tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: status_aprovado description: Informa se o estudante foi aprovado ou não na chamada regular - em sua opção de curso + em sua opção de curso tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 - name: status_matricula description: Informa a situação de matrícula registrado pela IES no sistema - "Sisu Gestão" + "Sisu Gestão" tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.05 From 727c803a86546a54c251d89dddbadb96d3d9f7f6 Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Date: Tue, 23 Jul 2024 02:03:04 -0300 Subject: [PATCH 4/6] Trocando -dev por -stanging --- models/br_mec_sisu/br_mec_sisu__microdados.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/models/br_mec_sisu/br_mec_sisu__microdados.sql b/models/br_mec_sisu/br_mec_sisu__microdados.sql index 6010cc8b..aff7caf8 100644 --- a/models/br_mec_sisu/br_mec_sisu__microdados.sql +++ b/models/br_mec_sisu/br_mec_sisu__microdados.sql @@ -135,10 +135,10 @@ select when status_matricula = 'SUBSTITUÍDA OUTRA IES' then '9' end as status_matricula -from `basedosdados-dev.br_mec_sisu_staging.microdados` s +from `basedosdados-staging.br_mec_sisu_staging.microdados` s left join - `basedosdados-dev.br_bd_diretorios_brasil.municipio` d1 + `basedosdados-staging.br_bd_diretorios_brasil.municipio` d1 on lower(s.nome_municipio_campus) = lower(d1.nome) left join - `basedosdados-dev.br_bd_diretorios_brasil.municipio` d2 + `basedosdados-staging.br_bd_diretorios_brasil.municipio` d2 on lower(s.nome_municipio_candidato) = lower(d2.nome) From 718920ba6158325d39e8600c8279d6f3bc0f7c35 Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Date: Wed, 24 Jul 2024 11:29:34 -0300 Subject: [PATCH 5/6] =?UTF-8?q?Atualiza=C3=A7=C3=A3o=20de=20.sql=20e=20Sch?= =?UTF-8?q?ema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../br_mec_sisu/br_mec_sisu__microdados.sql | 68 +++++++------------ models/br_mec_sisu/schema.yml | 36 ++++++---- 2 files changed, 48 insertions(+), 56 deletions(-) diff --git a/models/br_mec_sisu/br_mec_sisu__microdados.sql b/models/br_mec_sisu/br_mec_sisu__microdados.sql index aff7caf8..17a56fa5 100644 --- a/models/br_mec_sisu/br_mec_sisu__microdados.sql +++ b/models/br_mec_sisu/br_mec_sisu__microdados.sql @@ -12,41 +12,23 @@ labels={"tema": "educacao"}, ) }} - select safe_cast(ano as int64) as ano, - safe_cast(edicao as string) as edicao, - safe_cast(etapa as string) as etapa, + safe_cast(edicao as string) as semestre, + case + when etapa = '4' then 'Chamada Regular' when etapa = '7' then 'Lista de Espera' + end as etapa, safe_cast(sigla_uf_ies as string) as sigla_uf_ies, safe_cast(id_ies as string) as id_ies, safe_cast(sigla_ies as string) as sigla_ies, - safe_cast(sigla_uf_campus as string) as sigla_uf_campus, + safe_cast(d1.sigla_uf as string) as sigla_uf_campus, safe_cast(d1.id_municipio as string) as id_municipio_campus, safe_cast(id_campus as string) as id_campus, safe_cast(campus as string) as campus, safe_cast(id_curso as string) as id_curso, - case - when turno = 'Integral' - then '1' - when turno = 'Matutino' - then '2' - when turno = 'Vespertino' - then '3' - when turno = 'Noturno' - then '4' - when turno = 'EaD' - then '5' - end as turno, - case - when periodicidade = 'Trimestral' - then '3' - when periodicidade = 'Quadrimestral' - then '4' - when periodicidade = 'Semestral' - then '6' - when periodicidade = 'Anual' - then '12' - end as periodicidade, + safe_cast(nome_curso as string) as nome_curso, + safe_cast(turno as string) as turno, + safe_cast(periodicidade as string) as periodicidade, safe_cast(tipo_cota as string) as tipo_cota, safe_cast(ds_modalidade_concorrencia as string) as modalidade_concorrencia, safe_cast(quantidade_vagas_concorrencia as int64) as quantidade_vagas_concorrencia, @@ -81,7 +63,7 @@ select then concat('20', data_nascimento) else data_nascimento end as data_nascimento, - safe_cast(sigla_uf_candidato as string) as sigla_uf_candidato, + safe_cast(d2.sigla_uf as string) as sigla_uf_candidato, safe_cast(d2.id_municipio as string) as id_municipio_candidato, safe_cast(opcao as string) as opcao, safe_cast(nota_l as float64) as nota_l, @@ -109,36 +91,38 @@ select ) as status_aprovado, case when status_matricula = 'CANCELADA' - then '1' + then 'Cancelada' when status_matricula = 'DOCUMENTACAO REJEITADA' - then '2' + then 'Documentação rejeitada' when status_matricula = 'DOCUMENTAÇÃO REJEITADA' - then '2' + then 'Documentação rejeitada' when status_matricula = 'EFETIVADA' - then '3' + then 'Efetivada' when status_matricula = 'NÃO COMPARECEU' - then '4' + then 'Não compareceu' when status_matricula = 'NÃO CONVOCADO' - then '5' + then 'Não convocado' when status_matricula = 'PENDENTE' - then '6' + then 'Pendente' when status_matricula = 'SUBSTITUIDA - FORA DO PRAZO' - then '7' + then 'Substituída - fora do prazo' when status_matricula = 'SUBSTITUIDA - MATRICULA FORA DO PRAZO' - then '7' + then 'Substituída - fora do prazo' when status_matricula = 'SUBSTITUIDA - MESMA IES' - then '8' + then 'Substituída - mesma IES' when status_matricula = 'SUBSTITUIDA - OUTRA IES' - then '9' + then 'Substituída - outra IES' when status_matricula = 'SUBSTITUÍDA MESMA IES' - then '8' + then 'Substituída - mesma IES' when status_matricula = 'SUBSTITUÍDA OUTRA IES' - then '9' + then 'Substituída - outra IES' end as status_matricula from `basedosdados-staging.br_mec_sisu_staging.microdados` s left join `basedosdados-staging.br_bd_diretorios_brasil.municipio` d1 - on lower(s.nome_municipio_campus) = lower(d1.nome) + on (s.sigla_uf_campus = d1.sigla_uf) + and (lower(s.nome_municipio_campus) = lower(d1.nome)) left join `basedosdados-staging.br_bd_diretorios_brasil.municipio` d2 - on lower(s.nome_municipio_candidato) = lower(d2.nome) + on (s.sigla_uf_candidato = d2.sigla_uf) + and (lower(s.nome_municipio_candidato) = lower(d2.nome)) diff --git a/models/br_mec_sisu/schema.yml b/models/br_mec_sisu/schema.yml index 942b0032..546e0f6e 100644 --- a/models/br_mec_sisu/schema.yml +++ b/models/br_mec_sisu/schema.yml @@ -2,10 +2,19 @@ version: 2 models: - name: br_mec_sisu__microdados - description: Insert `microdados` table description here + description: Microdados dos candidatos que utilizam do sistema unificado gerido + pelo MEC para as vagas ofertadas por instituições públicas de ensino superior + de todo o Brasil tests: - dbt_utils.unique_combination_of_columns: - combination_of_columns: [ano, candidato, etapa] + combination_of_columns: + - ano + - semestre + - etapa + - id_curso + - cpf + - candidato + - opcao columns: - name: ano description: Ano da edição @@ -14,9 +23,9 @@ models: at_least: 0.05 - relationships: to: ref('br_bd_diretorios_data_tempo__ano') - field: ano - - name: edicao - description: Número da edição + field: ano.ano + - name: semestre + description: Semestre tests: - dbt_utils.not_null_proportion: at_least: 0.05 @@ -63,7 +72,7 @@ models: - dbt_utils.not_null_proportion: at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__municpio') + to: ref('br_bd_diretorios_brasil__municipio') field: sigla_uf - name: id_municipio_campus description: ID Município do campus da Instituição Superior - IBGE 7 Dígitos @@ -78,9 +87,11 @@ models: tests: - dbt_utils.not_null_proportion: at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_brasil__curso_superior') - field: id_curso + - name: nome_curso + description: Nome Curso - INEP + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 - name: turno description: Turno tests: @@ -109,9 +120,6 @@ models: - name: percentual_bonus description: Percentual do bônus definido para as ações afirmativas próprias da IES - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - name: peso_l description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova de linguagens do Enem na oferta do curso no processo seletivo @@ -205,14 +213,14 @@ models: at_least: 0.05 - relationships: to: ref('br_bd_diretorios_data_tempo__dia') - field: dia + field: dia.dia - name: sigla_uf_candidato description: Sigla da Unidade da Federação de residência do candidato tests: - dbt_utils.not_null_proportion: at_least: 0.05 - relationships: - to: ref('br_bd_diretorios_brasil__municpio') + to: ref('br_bd_diretorios_brasil__municipio') field: sigla_uf - name: id_municipio_candidato description: ID do Município de residência do candidato - IBGE 7 Dígitos From 1358b6efe0f57eaa7f0497ee2867565a6d08c09e Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Date: Tue, 30 Jul 2024 13:43:12 -0300 Subject: [PATCH 6/6] Ultimos ajustes br_mec_sisu --- .../br_mec_sisu/br_mec_sisu__microdados.sql | 256 +++---- models/br_mec_sisu/schema.yml | 634 +++++++++--------- 2 files changed, 445 insertions(+), 445 deletions(-) diff --git a/models/br_mec_sisu/br_mec_sisu__microdados.sql b/models/br_mec_sisu/br_mec_sisu__microdados.sql index 17a56fa5..3d52b58c 100644 --- a/models/br_mec_sisu/br_mec_sisu__microdados.sql +++ b/models/br_mec_sisu/br_mec_sisu__microdados.sql @@ -1,128 +1,128 @@ -{{ - config( - schema="br_mec_sisu", - alias="microdados", - materialized="table", - partition_by={ - "field": "ano", - "data_type": "int64", - "range": {"start": 2017, "end": 2024, "interval": 1}, - }, - cluster_by=["ano", "sigla_uf_candidato"], - labels={"tema": "educacao"}, - ) -}} -select - safe_cast(ano as int64) as ano, - safe_cast(edicao as string) as semestre, - case - when etapa = '4' then 'Chamada Regular' when etapa = '7' then 'Lista de Espera' - end as etapa, - safe_cast(sigla_uf_ies as string) as sigla_uf_ies, - safe_cast(id_ies as string) as id_ies, - safe_cast(sigla_ies as string) as sigla_ies, - safe_cast(d1.sigla_uf as string) as sigla_uf_campus, - safe_cast(d1.id_municipio as string) as id_municipio_campus, - safe_cast(id_campus as string) as id_campus, - safe_cast(campus as string) as campus, - safe_cast(id_curso as string) as id_curso, - safe_cast(nome_curso as string) as nome_curso, - safe_cast(turno as string) as turno, - safe_cast(periodicidade as string) as periodicidade, - safe_cast(tipo_cota as string) as tipo_cota, - safe_cast(ds_modalidade_concorrencia as string) as modalidade_concorrencia, - safe_cast(quantidade_vagas_concorrencia as int64) as quantidade_vagas_concorrencia, - safe_cast(percentual_bonus as float64) as percentual_bonus, - safe_cast(peso_l as float64) as peso_l, - safe_cast(peso_ch as float64) as peso_ch, - safe_cast(peso_cn as float64) as peso_cn, - safe_cast(peso_m as float64) as peso_m, - safe_cast(peso_r as float64) as peso_r, - safe_cast(nota_minima_l as float64) as nota_minima_l, - safe_cast(nota_minima_ch as float64) as nota_minima_ch, - safe_cast(nota_minima_cn as float64) as nota_minima_cn, - safe_cast(nota_minima_m as float64) as nota_minima_m, - safe_cast(nota_minima_r as float64) as nota_minima_r, - safe_cast(media_minima as float64) as media_minima, - safe_cast(cpf as string) as cpf, - safe_cast(inscricao_enem as string) as inscricao_enem, - safe_cast(candidato as string) as candidato, - safe_cast(sexo as string) as sexo, - case - when - ( - (length(data_nascimento) = 8) - and (cast(substr(data_nascimento, 1, 2) as int64) > 30) - ) - then concat('19', data_nascimento) - when - ( - (length(data_nascimento) = 8) - and (cast(substr(data_nascimento, 1, 2) as int64) < 30) - ) - then concat('20', data_nascimento) - else data_nascimento - end as data_nascimento, - safe_cast(d2.sigla_uf as string) as sigla_uf_candidato, - safe_cast(d2.id_municipio as string) as id_municipio_candidato, - safe_cast(opcao as string) as opcao, - safe_cast(nota_l as float64) as nota_l, - safe_cast(nota_ch as float64) as nota_ch, - safe_cast(nota_cn as float64) as nota_cn, - safe_cast(nota_m as float64) as nota_m, - safe_cast(nota_r as float64) as nota_r, - safe_cast(nota_l_peso as float64) as nota_l_peso, - safe_cast(nota_ch_peso as float64) as nota_ch_peso, - safe_cast(nota_cn_peso as float64) as nota_cn_peso, - safe_cast(nota_m_peso as float64) as nota_m_peso, - safe_cast(nota_r_peso as float64) as nota_r_peso, - safe_cast(nota_candidato as float64) as nota_candidato, - safe_cast(nota_corte as float64) as nota_corte, - safe_cast(classificacao as int64) as classificacao, - safe_cast( - ( - case - when status_aprovado = 'N' - then false - when status_aprovado = 'S' - then true - end - ) as bool - ) as status_aprovado, - case - when status_matricula = 'CANCELADA' - then 'Cancelada' - when status_matricula = 'DOCUMENTACAO REJEITADA' - then 'Documentação rejeitada' - when status_matricula = 'DOCUMENTAÇÃO REJEITADA' - then 'Documentação rejeitada' - when status_matricula = 'EFETIVADA' - then 'Efetivada' - when status_matricula = 'NÃO COMPARECEU' - then 'Não compareceu' - when status_matricula = 'NÃO CONVOCADO' - then 'Não convocado' - when status_matricula = 'PENDENTE' - then 'Pendente' - when status_matricula = 'SUBSTITUIDA - FORA DO PRAZO' - then 'Substituída - fora do prazo' - when status_matricula = 'SUBSTITUIDA - MATRICULA FORA DO PRAZO' - then 'Substituída - fora do prazo' - when status_matricula = 'SUBSTITUIDA - MESMA IES' - then 'Substituída - mesma IES' - when status_matricula = 'SUBSTITUIDA - OUTRA IES' - then 'Substituída - outra IES' - when status_matricula = 'SUBSTITUÍDA MESMA IES' - then 'Substituída - mesma IES' - when status_matricula = 'SUBSTITUÍDA OUTRA IES' - then 'Substituída - outra IES' - end as status_matricula -from `basedosdados-staging.br_mec_sisu_staging.microdados` s -left join - `basedosdados-staging.br_bd_diretorios_brasil.municipio` d1 - on (s.sigla_uf_campus = d1.sigla_uf) - and (lower(s.nome_municipio_campus) = lower(d1.nome)) -left join - `basedosdados-staging.br_bd_diretorios_brasil.municipio` d2 - on (s.sigla_uf_candidato = d2.sigla_uf) - and (lower(s.nome_municipio_candidato) = lower(d2.nome)) +{{ + config( + schema="br_mec_sisu", + alias="microdados", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2017, "end": 2024, "interval": 1}, + }, + cluster_by=["ano", "sigla_uf_candidato"], + labels={"tema": "educacao"}, + ) +}} +select + safe_cast(ano as int64) as ano, + safe_cast(edicao as string) as semestre, + case + when etapa = '4' then 'Chamada Regular' when etapa = '7' then 'Lista de Espera' + end as etapa, + safe_cast(sigla_uf_ies as string) as sigla_uf_ies, + safe_cast(id_ies as string) as id_ies, + safe_cast(sigla_ies as string) as sigla_ies, + safe_cast(d1.sigla_uf as string) as sigla_uf_campus, + safe_cast(d1.id_municipio as string) as id_municipio_campus, + safe_cast(id_campus as string) as id_campus, + safe_cast(campus as string) as campus, + safe_cast(id_curso as string) as id_curso, + safe_cast(nome_curso as string) as nome_curso, + safe_cast(turno as string) as turno, + safe_cast(periodicidade as string) as periodicidade, + safe_cast(tipo_cota as string) as tipo_cota, + safe_cast(ds_modalidade_concorrencia as string) as modalidade_concorrencia, + safe_cast(quantidade_vagas_concorrencia as int64) as quantidade_vagas_concorrencia, + safe_cast(percentual_bonus as float64) as percentual_bonus, + safe_cast(peso_l as float64) as peso_l, + safe_cast(peso_ch as float64) as peso_ch, + safe_cast(peso_cn as float64) as peso_cn, + safe_cast(peso_m as float64) as peso_m, + safe_cast(peso_r as float64) as peso_r, + safe_cast(nota_minima_l as float64) as nota_minima_l, + safe_cast(nota_minima_ch as float64) as nota_minima_ch, + safe_cast(nota_minima_cn as float64) as nota_minima_cn, + safe_cast(nota_minima_m as float64) as nota_minima_m, + safe_cast(nota_minima_r as float64) as nota_minima_r, + safe_cast(media_minima as float64) as media_minima, + safe_cast(cpf as string) as cpf, + safe_cast(inscricao_enem as string) as inscricao_enem, + safe_cast(candidato as string) as candidato, + safe_cast(sexo as string) as sexo, + case + when + ( + (length(data_nascimento) = 8) + and (cast(substr(data_nascimento, 1, 2) as int64) > 30) + ) + then concat('19', data_nascimento) + when + ( + (length(data_nascimento) = 8) + and (cast(substr(data_nascimento, 1, 2) as int64) < 30) + ) + then concat('20', data_nascimento) + else data_nascimento + end as data_nascimento, + safe_cast(d2.sigla_uf as string) as sigla_uf_candidato, + safe_cast(d2.id_municipio as string) as id_municipio_candidato, + safe_cast(opcao as string) as opcao, + safe_cast(nota_l as float64) as nota_l, + safe_cast(nota_ch as float64) as nota_ch, + safe_cast(nota_cn as float64) as nota_cn, + safe_cast(nota_m as float64) as nota_m, + safe_cast(nota_r as float64) as nota_r, + safe_cast(nota_l_peso as float64) as nota_l_peso, + safe_cast(nota_ch_peso as float64) as nota_ch_peso, + safe_cast(nota_cn_peso as float64) as nota_cn_peso, + safe_cast(nota_m_peso as float64) as nota_m_peso, + safe_cast(nota_r_peso as float64) as nota_r_peso, + safe_cast(nota_candidato as float64) as nota_candidato, + safe_cast(nota_corte as float64) as nota_corte, + safe_cast(classificacao as int64) as classificacao, + safe_cast( + ( + case + when status_aprovado = 'N' + then false + when status_aprovado = 'S' + then true + end + ) as bool + ) as status_aprovado, + case + when status_matricula = 'CANCELADA' + then 'Cancelada' + when status_matricula = 'DOCUMENTACAO REJEITADA' + then 'Documentação rejeitada' + when status_matricula = 'DOCUMENTAÇÃO REJEITADA' + then 'Documentação rejeitada' + when status_matricula = 'EFETIVADA' + then 'Efetivada' + when status_matricula = 'NÃO COMPARECEU' + then 'Não compareceu' + when status_matricula = 'NÃO CONVOCADO' + then 'Não convocado' + when status_matricula = 'PENDENTE' + then 'Pendente' + when status_matricula = 'SUBSTITUIDA - FORA DO PRAZO' + then 'Substituída - fora do prazo' + when status_matricula = 'SUBSTITUIDA - MATRICULA FORA DO PRAZO' + then 'Substituída - fora do prazo' + when status_matricula = 'SUBSTITUIDA - MESMA IES' + then 'Substituída - mesma IES' + when status_matricula = 'SUBSTITUIDA - OUTRA IES' + then 'Substituída - outra IES' + when status_matricula = 'SUBSTITUÍDA MESMA IES' + then 'Substituída - mesma IES' + when status_matricula = 'SUBSTITUÍDA OUTRA IES' + then 'Substituída - outra IES' + end as status_matricula +from `basedosdados-staging.br_mec_sisu_staging.microdados` s +left join + `basedosdados-staging.br_bd_diretorios_brasil.municipio` d1 + on (s.sigla_uf_campus = d1.sigla_uf) + and (lower(s.nome_municipio_campus) = lower(d1.nome)) +left join + `basedosdados-staging.br_bd_diretorios_brasil.municipio` d2 + on (s.sigla_uf_candidato = d2.sigla_uf) + and (lower(s.nome_municipio_candidato) = lower(d2.nome)) diff --git a/models/br_mec_sisu/schema.yml b/models/br_mec_sisu/schema.yml index 546e0f6e..43915bf0 100644 --- a/models/br_mec_sisu/schema.yml +++ b/models/br_mec_sisu/schema.yml @@ -1,317 +1,317 @@ ---- -version: 2 -models: - - name: br_mec_sisu__microdados - description: Microdados dos candidatos que utilizam do sistema unificado gerido - pelo MEC para as vagas ofertadas por instituições públicas de ensino superior - de todo o Brasil - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - ano - - semestre - - etapa - - id_curso - - cpf - - candidato - - opcao - columns: - - name: ano - description: Ano da edição - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: semestre - description: Semestre - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: etapa - description: Código da etapa - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: id_ies - description: ID da Instituição de Ensino Superior - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_brasil__instituicao_ensino_superior') - field: id_ies - - name: sigla_ies - description: Sigla da Instituição de Ensino Superior - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: sigla_uf_ies - description: Sigla da Unidade da Federação da Instituição de Ensino Superior - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_brasil__municpio') - field: sigla_uf - - name: id_campus - description: ID do campus da Instituição Superior - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: campus - description: Nome do campus da Instituição Superior - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: sigla_uf_campus - description: Sigla da Unidade da Federação do campus da Instituição de Ensino - Superior - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: sigla_uf - - name: id_municipio_campus - description: ID Município do campus da Instituição Superior - IBGE 7 Dígitos - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: id_curso - description: ID Curso - INEP - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nome_curso - description: Nome Curso - INEP - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: turno - description: Turno - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: periodicidade - description: Periodicidade do curso - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: tipo_cota - description: Tipo de Cota - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: modalidade_concorrencia - description: Tipo da modalidade de concorrência - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: quantidade_vagas_concorrencia - description: Total de vagas ofertadas dentro da modalidade de concorrência - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: percentual_bonus - description: Percentual do bônus definido para as ações afirmativas próprias - da IES - - name: peso_l - description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de linguagens do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: peso_ch - description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de ciências humanas do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: peso_cn - description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de ciências da natureza do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: peso_m - description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de matemática do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: peso_r - description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova - de redação do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_minima_l - description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de linguagens do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_minima_ch - description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de ciências humanas do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_minima_cn - description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de ciências da natureza do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_minima_m - description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de matematica do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_minima_r - description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para - a prova de redação do Enem na oferta do curso no processo seletivo - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: media_minima - description: Média aritmética mínima (não considerando pesos) dos cinco tipos - de provas do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: cpf - description: CPF do candidato - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: inscricao_enem - description: Código de inscrição do candidato no Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: candidato - description: Nome do candidato - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: sexo - description: Sexo do candidato - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: data_nascimento - description: Data de nascimento do candidato - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_data_tempo__dia') - field: dia.dia - - name: sigla_uf_candidato - description: Sigla da Unidade da Federação de residência do candidato - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: sigla_uf - - name: id_municipio_candidato - description: ID do Município de residência do candidato - IBGE 7 Dígitos - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: opcao - description: Informa se é a primeira ou segunda opção de curso do candidato - no sistema Sisu - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_l - description: Nota obtida pelo candidato na prova de linguagens do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_ch - description: Nota obtida pelo candidato na prova de ciências humanas do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_cn - description: Nota obtida pelo candidato na prova de ciências da natureza do - Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_m - description: Nota obtida pelo candidato na prova de matemática do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_r - description: Nota obtida pelo candidato na redação do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_l_peso - description: Nota ponderada para a prova de linguagens do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_ch_peso - description: Nota ponderada para a prova de ciências humanas do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_cn_peso - description: Nota ponderada para a prova de ciências da natureza do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_m_peso - description: Nota ponderada para a prova de matemática do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_r_peso - description: Nota ponderada para a redação do Enem - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_candidato - description: Nota final do candidato - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: nota_corte - description: Nota de corte da modalidade/curso na chamada regular - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: classificacao - description: Colocação do candiadto considerando todos os inscritos para o - mesmo curso - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: status_aprovado - description: Informa se o estudante foi aprovado ou não na chamada regular - em sua opção de curso - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 - - name: status_matricula - description: Informa a situação de matrícula registrado pela IES no sistema - "Sisu Gestão" - tests: - - dbt_utils.not_null_proportion: - at_least: 0.05 +--- +version: 2 +models: + - name: br_mec_sisu__microdados + description: Microdados dos candidatos que utilizam do sistema unificado gerido + pelo MEC para as vagas ofertadas por instituições públicas de ensino superior + de todo o Brasil + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - semestre + - etapa + - id_curso + - cpf + - candidato + - opcao + columns: + - name: ano + description: Ano da edição + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: semestre + description: Semestre + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: etapa + description: Código da etapa + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: id_ies + description: ID da Instituição de Ensino Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__instituicao_ensino_superior') + field: id_ies + - name: sigla_ies + description: Sigla da Instituição de Ensino Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: sigla_uf_ies + description: Sigla da Unidade da Federação da Instituição de Ensino Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: sigla_uf + - name: id_campus + description: ID do campus da Instituição Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: campus + description: Nome do campus da Instituição Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: sigla_uf_campus + description: Sigla da Unidade da Federação do campus da Instituição de Ensino + Superior + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: sigla_uf + - name: id_municipio_campus + description: ID Município do campus da Instituição Superior - IBGE 7 Dígitos + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: id_curso + description: ID Curso - INEP + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nome_curso + description: Nome Curso - INEP + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: turno + description: Turno + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: periodicidade + description: Periodicidade do curso + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: tipo_cota + description: Tipo de Cota + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: modalidade_concorrencia + description: Tipo da modalidade de concorrência + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: quantidade_vagas_concorrencia + description: Total de vagas ofertadas dentro da modalidade de concorrência + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: percentual_bonus + description: Percentual do bônus definido para as ações afirmativas próprias + da IES + - name: peso_l + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de linguagens do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_ch + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de ciências humanas do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_cn + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de ciências da natureza do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_m + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de matemática do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: peso_r + description: Peso atribuído pela instituição, na adesão ao Sisu, para a prova + de redação do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_l + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de linguagens do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_ch + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de ciências humanas do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_cn + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de ciências da natureza do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_m + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de matematica do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_minima_r + description: Nota mínima atribuída pela instituição, na adesão ao Sisu, para + a prova de redação do Enem na oferta do curso no processo seletivo + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: media_minima + description: Média aritmética mínima (não considerando pesos) dos cinco tipos + de provas do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: cpf + description: CPF do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: inscricao_enem + description: Código de inscrição do candidato no Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: candidato + description: Nome do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: sexo + description: Sexo do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: data_nascimento + description: Data de nascimento do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_data_tempo__dia') + field: dia.dia + - name: sigla_uf_candidato + description: Sigla da Unidade da Federação de residência do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: sigla_uf + - name: id_municipio_candidato + description: ID do Município de residência do candidato - IBGE 7 Dígitos + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: opcao + description: Informa se é a primeira ou segunda opção de curso do candidato + no sistema Sisu + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_l + description: Nota obtida pelo candidato na prova de linguagens do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_ch + description: Nota obtida pelo candidato na prova de ciências humanas do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_cn + description: Nota obtida pelo candidato na prova de ciências da natureza do + Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_m + description: Nota obtida pelo candidato na prova de matemática do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_r + description: Nota obtida pelo candidato na redação do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_l_peso + description: Nota ponderada para a prova de linguagens do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_ch_peso + description: Nota ponderada para a prova de ciências humanas do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_cn_peso + description: Nota ponderada para a prova de ciências da natureza do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_m_peso + description: Nota ponderada para a prova de matemática do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_r_peso + description: Nota ponderada para a redação do Enem + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_candidato + description: Nota final do candidato + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: nota_corte + description: Nota de corte da modalidade/curso na chamada regular + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: classificacao + description: Colocação do candiadto considerando todos os inscritos para o + mesmo curso + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: status_aprovado + description: Informa se o estudante foi aprovado ou não na chamada regular + em sua opção de curso + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + - name: status_matricula + description: Informa a situação de matrícula registrado pela IES no sistema + "Sisu Gestão" + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05