Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions models/marts/dim_members.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
with members as (

select *
from {{ ref('stg_members') }}

),

final as (

select
member_id,
first_name,
last_name,
email,
missing_email_flag,
date_of_birth,
join_date,
membership_status,
home_club
from members

)

select *
from final
60 changes: 60 additions & 0 deletions models/marts/dim_members.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
version: 2

models:
- name: dim_members
description: Final member dimension with one row per member and cleaned descriptive attributes.

columns:
- name: member_id
description: Unique identifier for each member.
tests:
- not_null
- unique

- name: first_name
description: Members first name.
tests:
- not_null

- name: last_name
description: Members last name.
tests:
- not_null

- name: email
description: Members email address, null if missing.

- name: missing_email_flag
description: Flag indicating whether the member is missing an email address.
tests:
- not_null
- accepted_values:
arguments:
values: [true, false]
quote: false

- name: date_of_birth
description: Members date of birth.
tests:
- not_null

- name: join_date
description: Date the member joined.
tests:
- not_null

- name: membership_status
description: Cleaned membership status.
tests:
- not_null
- accepted_values:
arguments:
values: ['active', 'inactive', 'unknown']

- name: home_club
description: Location of members home club.
tests:
- not_null
- accepted_values:
arguments:
values: ['Bow', 'Canary Wharf', 'Hackney', 'Stratford']
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
select *
from {{ ref('dim_members') }}
where join_date < date_of_birth
Loading