From f26266f12fedfcd7deef89e25add5f87e8679e61 Mon Sep 17 00:00:00 2001 From: Matz Rasmus Date: Mon, 4 Nov 2024 08:44:35 +0200 Subject: [PATCH] =?UTF-8?q?Lis=C3=A4tty=20koulutuksenalkamiskaus-tiedot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../int/int_kouta/int_kouta_toteutus.sql | 5 +- dbt/models/pub/_pub.yml | 16 ----- dbt/models/pub/pub_dim_haku.sql | 3 +- dbt/models/pub/pub_dim_hakukohde.sql | 53 +++++++++++++- dbt/models/pub/pub_dim_toteutus.sql | 71 +++++++++++++------ dbt/models/stg/stg_kouta_haku.sql | 7 +- dbt/models/stg/stg_kouta_hakukohde.sql | 1 + dbt/models/stg/stg_kouta_toteutus.sql | 15 +--- 8 files changed, 109 insertions(+), 62 deletions(-) diff --git a/dbt/models/int/int_kouta/int_kouta_toteutus.sql b/dbt/models/int/int_kouta/int_kouta_toteutus.sql index 79a42ea..f278d7a 100644 --- a/dbt/models/int/int_kouta/int_kouta_toteutus.sql +++ b/dbt/models/int/int_kouta/int_kouta_toteutus.sql @@ -33,10 +33,9 @@ final as ( ) as toteutus_nimi, koulutusoid as koulutus_oid, organisaatiooid as organisaatio_oid, - tyyppi as koulutustyyppi, - koulutuksenalkamisvuosi::int as koulutuksen_alkamisvuosi, + {{ dbt_utils.star(from=ref('dw_kouta_toteutus'), - except=['nimi_fi','nimi_sv','nimi_en','koulutusoid','organisaatiooid','tyyppi','koulutuksenalkamisvuosi','oid']) }} + except=['nimi_fi','nimi_sv','nimi_en','koulutusoid','organisaatiooid','oid']) }} from int ) diff --git a/dbt/models/pub/_pub.yml b/dbt/models/pub/_pub.yml index d80ddea..08e5167 100644 --- a/dbt/models/pub/_pub.yml +++ b/dbt/models/pub/_pub.yml @@ -12,9 +12,6 @@ models: data_type: text data_tests: - not_null - - dbt_constraints.foreign_key: - pk_table_name: ref('pub_fct_hakemus') - pk_column_name: hakemus_oid - name: hakukohde_oid description: Hakukohteen oid data_type: text @@ -58,17 +55,11 @@ models: data_type: text data_tests: - not_null - - dbt_constraints.foreign_key: - pk_table_name: ref('pub_dim_haku') - pk_column_name: haku_oid - name: toteutus_oid description: Linkki toteutukseen data_type: text data_tests: - not_null - - dbt_constraints.foreign_key: - pk_table_name: ref('pub_dim_toteutus') - pk_column_name: toteutus_oid - name: jarjestyspaikka_oid description: Järjestävän organisaation tunniste data_type: text @@ -243,10 +234,6 @@ models: - name: koulutus_oid description: Koulutuksen tunniste data_type: text - data_tests: - - dbt_constraints.foreign_key: - pk_table_name: ref('pub_dim_koulutus') - pk_column_name: koulutus_oid - name: koulutustyyppi description: Koulutuksen tyyppi data_type: text @@ -315,9 +302,6 @@ models: data_type: text data_tests: - not_null - - dbt_constraints.foreign_key: - pk_table_name: ref('pub_dim_hakukohde') - pk_column_name: hakukohde_oid - name: pub_dim_henkilo description: Sisältää raportoinnissa käytettävät henkilötiedot. Tiedot on haettu sekä Atarusta että ONR:stä columns: diff --git a/dbt/models/pub/pub_dim_haku.sql b/dbt/models/pub/pub_dim_haku.sql index 2f95711..de271de 100644 --- a/dbt/models/pub/pub_dim_haku.sql +++ b/dbt/models/pub/pub_dim_haku.sql @@ -39,7 +39,8 @@ step1 as ( hajo.koodinimi as kohdejoukko_nimi, haku.kohdejoukontarkennekoodiuri, hatr.koodiarvo as kohdejoukontarkenne_koodi, - hatr.koodinimi as kohdejoukontarkenne_nimi + hatr.koodinimi as kohdejoukontarkenne_nimi, + haku.koulutuksenalkamiskausi from haku as haku inner join hakutapakoodi as hata on haku.hakutapakoodiuri = hata.versioitu_koodiuri inner join haunkohdejoukko as hajo on haku.kohdejoukkokoodiuri = hajo.versioitu_koodiuri diff --git a/dbt/models/pub/pub_dim_hakukohde.sql b/dbt/models/pub/pub_dim_hakukohde.sql index 34b8c02..90c68cc 100644 --- a/dbt/models/pub/pub_dim_hakukohde.sql +++ b/dbt/models/pub/pub_dim_hakukohde.sql @@ -56,11 +56,60 @@ int as ( when koul.alempi_kk_aste and not koul.ylempi_kk_aste and koul.laakis then 1 when not koul.alempi_kk_aste and koul.ylempi_kk_aste then 3 else 6 - end as tutkinnon_taso_sykli + end as tutkinnon_taso_sykli, + coalesce( + hako.koulutuksenalkamiskausi, (coalesce(haku.koulutuksenalkamiskausi, tote.koulutuksen_alkamiskausi)) + ) as koulutuksen_alkamiskausi from hakukohde as hako left join toteutus as tote on hako.toteutus_oid = tote.toteutus_oid left join haku as haku on hako.haku_oid = haku.haku_oid left join koulutus as koul on tote.koulutus_oid = koul.koulutus_oid +), + +step2 as ( + select + *, + koulutuksen_alkamiskausi ->> 'alkamiskausityyppi' as koulutuksen_alkamiskausi_tyyppi, + koulutuksen_alkamiskausi ->> 'koulutuksenAlkamiskausiKoodiUri' as koulutuksen_alkamiskausi_koodiuri, + (koulutuksen_alkamiskausi ->> 'koulutuksenAlkamisvuosi')::int as koulutuksen_alkamisvuosi, + (koulutuksen_alkamiskausi ->> 'koulutuksenAlkamispaivamaara')::date as koulutuksen_alkamispaivamaara, + koulutuksen_alkamiskausi ->> 'henkilokohtaisenSuunnitelmanLisatiedot' as henkilokohtaisen_sunnitelman_lisatiedot + from int +), + +final as ( + select + hakukohde_oid, + hakukohde_nimi, + ulkoinen_tunniste, + tila, + haku_oid, + toteutus_oid, + jarjestyspaikka_oid, + aloituspaikat, + aloituspaikat_ensikertalaisille, + hakukohdekoodiuri, + hakuajat, + kaytetaan_haun_aikataulua, + on_valintakoe, + tutkinnon_taso_sykli, + koulutuksen_alkamiskausi, + koulutuksen_alkamiskausi_tyyppi, + case + when koulutuksen_alkamiskausi_tyyppi = 'alkamiskausi ja -vuosi' then koulutuksen_alkamiskausi_koodiuri + when koulutuksen_alkamiskausi_tyyppi = 'tarkka alkamisajankohta' + and date_part('month',koulutuksen_alkamispaivamaara) <= 6 then 'kausi_k#1' + when koulutuksen_alkamiskausi_tyyppi = 'tarkka alkamisajankohta' + and date_part('month',koulutuksen_alkamispaivamaara) >= 6 then 'kausi_s#1' + end as koulutuksen_alkamiskausi_koodiuri, + case + when koulutuksen_alkamiskausi_tyyppi = 'alkamiskausi ja -vuosi' then koulutuksen_alkamisvuosi + when koulutuksen_alkamiskausi_tyyppi = 'tarkka alkamisajankohta' then date_part('year',koulutuksen_alkamispaivamaara) + end as koulutuksen_alkamisvuosi, + henkilokohtaisen_sunnitelman_lisatiedot + from step2 ) -select * from int +select * from final + + diff --git a/dbt/models/pub/pub_dim_toteutus.sql b/dbt/models/pub/pub_dim_toteutus.sql index 80df699..4059a22 100644 --- a/dbt/models/pub/pub_dim_toteutus.sql +++ b/dbt/models/pub/pub_dim_toteutus.sql @@ -12,28 +12,59 @@ with toteutus as ( select * from {{ ref('int_kouta_toteutus') }} ), -kausi_koodi as ( - select * from {{ ref('pub_dim_koodisto_kausi') }} +int as ( + select + toteutus_oid, + toteutus_nimi, + tunniste as ulkoinen_tunniste, + tila, + organisaatio_oid, + koulutus_oid, + koulutuksenAlkamiskausi as koulutuksen_alkamiskausi, + suunniteltukestovuodet, + suunniteltukestokuukaudet, + koulutuksenalkamiskausi ->> 'alkamiskausityyppi' as koulutuksenalkamiskausityyppi, + koulutuksenalkamiskausi ->> 'koulutuksenAlkamiskausiKoodiUri' as koulutuksenalkamiskausikoodiuri, + (koulutuksenalkamiskausi ->> 'koulutuksenAlkamisvuosi')::int as koulutuksenalkamisvuosi, + (koulutuksenalkamiskausi ->> 'koulutuksenAlkamispaivamaara')::date as koulutuksenalkamispaivamaara, + koulutuksenalkamiskausi ->> 'henkilokohtaisenSuunnitelmanLisatiedot' as henkilokohtaisensunnitelmanlisatiedot + from toteutus ), -int as ( +step2 as ( + select + *, + case + when koulutuksenalkamiskausityyppi = 'alkamiskausi ja -vuosi' then koulutuksenalkamiskausikoodiuri + when koulutuksenalkamiskausityyppi = 'tarkka alkamisajankohta' + and date_part('month',koulutuksenalkamispaivamaara) <= 6 then 'kausi_k#1' + when koulutuksenalkamiskausityyppi = 'tarkka alkamisajankohta' + and date_part('month',koulutuksenalkamispaivamaara) >= 6 then 'kausi_s#1' + end as koulutuksen_alkamiskausi_koodiuri, + case + when koulutuksenalkamiskausityyppi = 'alkamiskausi ja -vuosi' then koulutuksenalkamisvuosi + when koulutuksenalkamiskausityyppi = 'tarkka alkamisajankohta' then date_part('year',koulutuksenalkamispaivamaara) + end as koulutuksen_alkamisvuosi, + henkilokohtaisensunnitelmanlisatiedot as henkilokohtaisen_sunnitelman_lisatiedot + from int +), + +final as ( select - tote.toteutus_oid, - tote.toteutus_nimi, - tote.tunniste as ulkoinen_tunniste, - tote.tila, - tote.organisaatio_oid, - tote.koulutus_oid, - tote.koulutuksenalkamiskausikoodiuri, - kaus.koodiarvo as kausi_koodi, - kaus.koodinimi as kausi_nimi, - coalesce(tote.koulutuksen_alkamisvuosi, date_part('year', tote.koulutuksenalkamispaivamaara))::int - as koulutuksen_alkamisvuosi, - tote.alkamiskausityyppi as koulutuksen_alkamiskausityyppi, - tote.suunniteltukestovuodet, - tote.suunniteltukestokuukaudet - from toteutus as tote - left join kausi_koodi as kaus on tote.koulutuksenalkamiskausikoodiuri = kaus.versioitu_koodiuri + toteutus_oid, + toteutus_nimi, + ulkoinen_tunniste, + tila, + organisaatio_oid, + koulutus_oid, + koulutuksen_alkamiskausi, + suunniteltukestovuodet, + suunniteltukestokuukaudet, + koulutuksenalkamiskausityyppi as koulutuksen_alkamiskausi_tyyppi, + koulutuksen_alkamiskausi_koodiuri, + koulutuksen_alkamisvuosi, + henkilokohtaisen_sunnitelman_lisatiedot + from step2 ) -select * from int +select * from final diff --git a/dbt/models/stg/stg_kouta_haku.sql b/dbt/models/stg/stg_kouta_haku.sql index 92d3393..462a2da 100644 --- a/dbt/models/stg/stg_kouta_haku.sql +++ b/dbt/models/stg/stg_kouta_haku.sql @@ -33,12 +33,7 @@ final as ( (data -> 'metadata' -> 'yhteyshenkilot')::jsonb as yhteyshenkilot, (data -> 'metadata' -> 'tulevaisuudenAikataulu')::jsonb as tulevaisuudenAikataulu, data -> 'metadata' ->> 'isMuokkaajaOphVirkailija'::varchar as isMuokkaajaOphVirkailija, - data -> 'metadata' -> 'koulutuksenAlkamiskausi' ->> 'alkamiskausityyppi'::varchar as alkamiskausityyppi, - (data -> 'metadata' -> 'koulutuksenAlkamiskausi' -> 'henkilokohtaisenSuunnitelmanLisatiedot')::jsonb - as henkilokohtaisenSuunnitelmanLisatiedot, - data -> 'metadata' -> 'koulutuksenAlkamiskausi' -> 'koulutuksenAlkamiskausiKoodiUri'::varchar - as koulutuksenAlkamiskausiKoodiUri, - (data -> 'metadata' -> 'koulutuksenAlkamiskausi' ->> 'koulutuksenAlkamisvuosi')::int as koulutuksenAlkamisvuosi, + (data -> 'metadata' -> 'koulutuksenAlkamiskausi')::jsonb as koulutuksenAlkamiskausi, data ->> 'organisaatioOid'::varchar as organisaatioOid, (data -> 'hakuajat')::jsonb as hakuajat, data ->> 'muokkaaja' as muokkaaja, diff --git a/dbt/models/stg/stg_kouta_hakukohde.sql b/dbt/models/stg/stg_kouta_hakukohde.sql index 7bb37ca..0bb2a15 100644 --- a/dbt/models/stg/stg_kouta_hakukohde.sql +++ b/dbt/models/stg/stg_kouta_hakukohde.sql @@ -42,6 +42,7 @@ final as ( as valintaperusteenValintakokeidenLisatilaisuudet, (data -> 'metadata' -> 'kynnysehto')::jsonb as kynnysehto, (data -> 'metadata' ->> 'kaytetaanHaunAlkamiskautta')::boolean as kaytetaanHaunAlkamiskautta, + (data -> 'metadata' -> 'koulutuksenAlkamiskausi')::jsonb as koulutuksenAlkamiskausi, (data -> 'metadata' -> 'aloituspaikat' ->> 'lukumaara')::int as aloituspaikat, (data -> 'metadata' -> 'aloituspaikat' ->> 'ensikertalaisille')::int as aloituspaikat_ensikertalaisille, (data -> 'metadata' -> 'aloituspaikat' -> 'kuvaus')::jsonb as aloituspaikat_kuvaus, diff --git a/dbt/models/stg/stg_kouta_toteutus.sql b/dbt/models/stg/stg_kouta_toteutus.sql index 77979c7..5a772ff 100644 --- a/dbt/models/stg/stg_kouta_toteutus.sql +++ b/dbt/models/stg/stg_kouta_toteutus.sql @@ -32,20 +32,7 @@ final as ( data -> 'metadata' -> 'opetus' ->> 'maksullisuustyyppi'::varchar as maksullisuustyyppi, (data -> 'metadata' -> 'opetus' -> 'maksullisuusKuvaus')::jsonb as maksullisuusKuvaus, (data -> 'metadata' -> 'opetus' ->> 'maksunMaara')::float as maksunMaara, - data -> 'metadata' -> 'opetus' -> 'koulutuksenAlkamiskausi' - ->> 'alkamiskausityyppi'::varchar as alkamiskausityyppi, - ( - data -> 'metadata' -> 'opetus' -> 'koulutuksenAlkamiskausi' - -> 'henkilokohtaisenSuunnitelmanLisatiedot' - )::jsonb as henkilokohtaisenSuunnitelmanLisatiedot, - data -> 'metadata' -> 'opetus' -> 'koulutuksenAlkamiskausi' - ->> 'koulutuksenAlkamiskausiKoodiUri'::varchar as koulutuksenAlkamiskausiKoodiUri, - ( - data -> 'metadata' -> 'opetus' -> 'koulutuksenAlkamiskausi' ->> 'koulutuksenAlkamisvuosi' - )::int as koulutuksenAlkamisvuosi, - ( - data -> 'metadata' -> 'opetus' -> 'koulutuksenAlkamiskausi' ->> 'koulutuksenAlkamispaivamaara' - )::timestamptz as koulutuksenAlkamispaivamaara, + (data -> 'metadata' -> 'opetus' -> 'koulutuksenAlkamiskausi')::jsonb as koulutuksenAlkamiskausi, (data -> 'metadata' -> 'opetus' -> 'lisatiedot')::jsonb as lisatiedot, (data -> 'metadata' -> 'opetus' ->> 'onkoApuraha')::boolean as onkoApuraha, (data -> 'metadata' -> 'opetus' ->> 'suunniteltuKestoVuodet')::int as suunniteltuKestoVuodet,