Skip to content

Commit 60ae1ac

Browse files
authored
Hotfix/k obj assess key consistency (#135)
* Update stg_ef3__student_objective_assessments.sql * fix obj assess key consistency problems
1 parent 19d9618 commit 60ae1ac

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

models/staging/edfi_3/stage/stg_ef3__objective_assessments.sql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,11 @@ keyed as (
3838
['tenant_code',
3939
'api_year',
4040
'lower(academic_subject)',
41+
'lower(obj_assess_academic_subject)',
4142
'lower(assessment_identifier)',
4243
'lower(namespace)',
43-
'lower(obj_assess_academic_subject)',
44-
'lower(objective_assessment_identification_code)']
44+
'lower(objective_assessment_identification_code)'
45+
]
4546
) }} as k_objective_assessment,
4647
{{ gen_skey('k_assessment', extras = ['academic_subject']) }},
4748
join_subject.*

models/staging/edfi_3/stage/stg_ef3__student_objective_assessments.sql

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ flattened as (
4141
joined as (
4242
select
4343
flattened.* exclude(academic_subject),
44-
coalesce(stage_obj_assessments.academic_subject, flattened.academic_subject) as academic_subject
44+
coalesce(stage_obj_assessments.academic_subject, flattened.academic_subject) as academic_subject,
45+
stage_obj_assessments.assess_academic_subject
4546
from flattened
4647
join stage_obj_assessments
4748
on flattened.tenant_code = stage_obj_assessments.tenant_code
@@ -50,6 +51,12 @@ joined as (
5051
and flattened.namespace = stage_obj_assessments.namespace
5152
and flattened.objective_assessment_identification_code = stage_obj_assessments.objective_assessment_identification_code
5253
),
54+
{# TEMPORARY Rename academic_subject --> obj_assess_academic_subject & overall --> academic_subject to allow the gen_skey() call to behave consistent with stg_ef3__objective_assessments #}
55+
renamed1 as (
56+
select
57+
* RENAME(academic_subject as obj_assess_academic_subject, assess_academic_subject as academic_subject)
58+
from joined
59+
),
5360
keyed as (
5461
select
5562
tenant_code,
@@ -65,7 +72,7 @@ keyed as (
6572
'lower(objective_assessment_identification_code)',
6673
'lower(student_assessment_identifier)']
6774
) }} as k_student_objective_assessment,
68-
{{ gen_skey('k_objective_assessment', extras = ['academic_subject']) }},
75+
{{ gen_skey('k_objective_assessment', extras = ['academic_subject', 'obj_assess_academic_subject']) }},
6976
k_student_assessment,
7077
k_assessment,
7178
k_student,
@@ -74,6 +81,7 @@ keyed as (
7481
assessment_identifier,
7582
namespace,
7683
academic_subject,
84+
obj_assess_academic_subject,
7785
objective_assessment_identification_code,
7886
objective_assessment_reference,
7987
school_year,
@@ -89,14 +97,20 @@ keyed as (
8997
when_assessed_grade_level,
9098
v_performance_levels,
9199
v_score_results
92-
from joined
100+
from renamed1
101+
),
102+
{# Rename BACK obj_assess_academic_subject --> academic_subject for human-readability and to avoid breaking change to warehouse. academic_subject above represents 'OVERALL' assessment subject, so that the gen_skey() call works. #}
103+
renamed2 as (
104+
select
105+
* RENAME(academic_subject as assess_academic_subject, obj_assess_academic_subject as academic_subject)
106+
from keyed
93107
),
94108
-- todo: we already dedupe in student assessments so this is actually only necessary if we think there
95109
-- could be dupes in the objective assessments list
96110
deduped as (
97111
{{
98112
dbt_utils.deduplicate(
99-
relation='keyed',
113+
relation='renamed2',
100114
partition_by='k_student_objective_assessment',
101115
order_by='last_modified_timestamp desc, pull_timestamp desc'
102116
)

0 commit comments

Comments
 (0)