Skip to content
Draft
11 changes: 11 additions & 0 deletions macros/gen_skey.sql
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,18 @@
'annualize': False
},

'k_student_assessment': {
'reference_name': 'studentAssessmentReference'.
'col_list': [
'assessmentIdentifier',
'namespace',
'studentAssessmentIdentifier',
'studentUniqueId'
],
'annualize': True
}
}

%}
{#- retrieve key def for then decompose parts -#}
{% set skey_def = skey_defs[k_name] %}
Expand Down
5 changes: 4 additions & 1 deletion models/staging/edfi_3/base/_edfi_3__base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -190,4 +190,7 @@ models:
- name: base_ef3__surveys
config:
tags: ['survey']
enabled: "{{ var('src:program:survey:enabled', True) }}"
enabled: "{{ var('src:program:survey:enabled', True) }}"
- name: base_ef3__student_assessment_education_organizations
config:
tags: ['core']
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
with student_assessment_education_organizations as (
select * from {{ source_edfi3('student_assessment_education_organizations') }}
),


renamed as (
select
tenant_code,
api_year,
pull_timestamp,
last_modified_timestamp,
file_row_number,
filename,
is_deleted,
v:id::string as record_guid,
v:educationOrganizationReference:educationOrganizationId::int as ed_org_identifier,
v:educationOrganizationReference:link:rel::string as ed_org_type,
{{ extract_descriptor('v:educationOrganizationAssociationTypeDescriptor::string') }} as ed_org_association_type,
v:schoolYearTypeReference:schoolYear::int as school_year,
v:studentAssessmentReference:assessmentIdentifier::string as assement_identifier,
v:studentAssessmentReference:namespace::string as assessment_name_space,
v:studentAssessmentReference:studentAssessmentIdentifier::string as student_assessment_identifier,
v:studentAssessmentReference:studentUniqueId::string as student_id,
-- references
v:educationOrganizationReference as education_organization_reference,
v:studentAssessmentReference as student_assessment_reference
-- edfi extensions
v:_ext as v_ext
from student_assessment_education_organizations
)


select * from renamed





15 changes: 15 additions & 0 deletions models/staging/edfi_3/stage/_edfi_3__stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,13 @@ referential_integrity_tests:
field: k_survey_response
tags: ['ref_integrity']

- k_student_assessment: &ref_k_student_assessment
- relationships:
to: ref('stg_ef3__student_assessment')
field: k_student_assessment
tags: ['ref_integrity']



models:
- name: stg_ef3__assessments
Expand Down Expand Up @@ -878,3 +885,11 @@ models:
config:
tags: ['survey']
enabled: "{{ var('src:domain:survey:enabled', True) }}"

- name: stg_ef3__student_assessment_education_organizations
config:
tags: ['assessment']
columns:
- name: k_student_assessment
tests:
*ref_k_student_assessment
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
with base as (
select * from {{ ref('base_ef3__student_assessment_education_organizations') }}
where not is_deleted
),


keyed as (
select
{{
dbt_utils.generate_surrogate_key(
[ 'tenant_code',
'api_year',
'ed_org_identifier',
'ed_org_association_type',
'assessment_identifier',
'student_assessment_identifier',
'student_unique_id',
'lower(namespace)'
]
)
}} as k_student_assessment_ed_org,
{{ gen_skey('k_ed_org') }},
{{ gen_skey('k_student_assessment') }}
from base
),


deduped as (
{{
dbt_utils.deduplicate(
relation = 'keyed',
partition_by = 'k_student_assessment_ed_org',
order_by = 'pull_timestamp desc'
)
}}
)


select * from deduped