본 포스트는 2024년 Google Study Jam을 공부하면서 개인적으로 내용을 정리한 포스트 입니다.
Looker에서 Dimensions은 그룹화 가능한 필드로 쿼리 결과를 필터링하는 데 사용할 수 있다.
- 기본 테이블의 열과 직접 연결되는 속성
- 사실 또는 수치적 가치
- 단일 행의 다른 필드 값을 기반으로 계산된 파생 값
Ex. 제품 보기의 차원에는 제품 이름, 제품 모델, 제품 색상, 제품 가격, 제품 생성 날짜, 제품 수명 종료 날짜가 포함될 수 있다.
다양한 속성을 사용하여 KPI를 분석하기 위한 데이터 포인트 버킷을 만들 수 있다.
- time, numeric, yesno와 같은 다양한 유형의 차원을 만들어 string 데이터를 slice하고 dice할 수 있다.
Creating Measures and Dimensions Using LookML - Task1. Creating dimensions
Age group tiers 차원 만들기
1. 토글버튼을 눌러 "Development Mode"를 킨다.
2. Develop Tab > qwiklabs-ecommerce > users.view > dimension: age 를 찾는다.
- age와 같은 dimension 필드는 기본 DB 테이블에 해당하거나 다른 차원을 기반으로 계산된 값이다.
3. age dimension 아래 다음 코드를 넣어 age_tier에 대한 새 dimension을 정의한다.
dimension: age_tier {
}
4. 다음으로 dimension type을 추가한다.
dimension: age_tier {
type: tier
}
5. dimension에 대한 구체적인 tiers을 추가한다.
dimension: age_tier {
type: tier
tiers: [18, 25, 35, 45, 55, 65, 75, 90]
}
6. style 매개변수를 정의한다. 이 매개변수는 tiers type dimension에 특화되어 있으며 tiers이 UI에 나타나는 방식을 변경한다.
dimension: age_tier {
type: tier
tiers: [18, 25, 35, 45, 55, 65, 75, 90]
style: integer
}
7. SQL 매개변수를 추가한다. SQL 매개변수는 Looker에 사용자가 실행하는 Query에 대한 SQL을 작성하는 방법을 알려준다.
dimension: age_tier {
type: tier
tiers: [18, 25, 35, 45, 55, 65, 75, 90]
style: integer
sql: ${age} ;;
}
8. "Save and Changes"를 누르고 "Vaildate LookML" 버튼을 눌러 코드를 검증한다.
9. 파일명의 오른쪽 caret을 눌러 "Explore Order Items"을 클릭한다.
10. Users > Dimensions > Age Tier에서 새 dimention으로 이동한다.
11. Age 및 Age Tier 차원을 추가하고 Run을 누르고 각 연령이 올바른 계층에 속하는지 확인한다.
12. Age 차원을 제거하고 Count 측정값을 추가한 다음 Run을 눌러 연령별 계층 그룹화 결과를 확인한다.
email source 차원 만들기
1. users.view 파일에 "traffic_source" dimension을 확인한다.
2. 새로운 "is_email_source" dimension을 만든다.
- type : yesno -> Bool 타입
- sql : SQL 매개변수에 값이 "Email"인 값을 기존 traffic_source 필드에서 가져오도록 한다.
dimension: is_email_source {
type: yesno
sql: ${traffic_source} = "Email" ;;
}
3. 저장 후 검증을 진행한다.
4. Explore Order Items을 클릭해 생성한 dimension을 확인한다.
shipping days 차원 만들기
1. "order_itmes.view" 파일에 "shipped" dimension_group를 확인한다.
2. "shipping_days" dimension을 추가한다.
- type : number
- sql : shipped_date, created_date dimension에서 DATE_DIFF 함수를 실행하도록 지시한다. "DAY"는 계산하려는 제공 간격으로 사용된다.
dimension: shipping_days {
type: number
sql: DATE_DIFF(${shipped_date}, ${created_date}, DAY);;
}
3. 코드 저장 및 검증 진행한다.
4. Explore Order Itmes > Dimensions > Shipping Days에서 Shipping Days, Order Count를 클릭하고 Run을 누르고 확인한다.
최종 저장 후 Commit & Deploy를 진행한다.
Creating Measures and Dimensions Using LookML - Task2. Creating measures
Measures는 COUNT, SUM, AVG, MIN과 같은 SQL 집계 함수를 사용하는 필드이다.
The distinct number of orders 측정값 만들기
1. order_items.view 파일에 "order_item_count" measures를 확인한다.
2. "count_distinct_orders" measures를 생성한다.
- type : count_distinct(특정 필드의 고유값을 계산한다.)
- sql : 기존 order_id 필드에서 가져오도록 지시한다.
measure: count_distinct_orders {
type: count_distinct
sql: ${order_id} ;;
}
3. 저장, 검증 후 Explore Order Items에서 결과를 확인한다.
total sales 측정값 만들기
1. order_items.view 파일에 "order_item_count" measures를 확인한다.
2. "total_sales" measures를 생성한다.
- type : sum
- sql : sale_price 필드에서 가져오도록 지시
- value_format_name : Looker에 내장된 데이터 형식 사용(usd_0 == US dollars)
measure: total_sales {
type: sum
sql: ${sale_price} ;;
value_format_name: usd_0
}
3. 저장, 검증 후 Explore Order Items에서 결과를 확인한다.
Creating Measures and Dimensions Using LookML - Task3. Creating advanced measures
이메일 트래픽 소스를 통해 웹사이트에 온 사용자에 한해 필터링된 총 매출 측정값 만들기
1. order_items.view 파일에 "order_item_count" measures를 확인한다.
2. "total_sales_email_users" measures를 생성한다.
- type : sum
- sql : sale_price 필드에서 가져오도록 지시한다.
- filters :
measure: total_sales_email_users {
type: sum
sql: ${sale_price} ;;
filters: [users.is_email_source: "Yes"]
}
3. 저장, 검증 후 Explore Order Items에서 결과를 확인한다.
이메일 트래픽 소스에서 발생한 사용자로 인해 발생하는 매출 비율에 대한 측정값 만들기
1. order_items.view 파일에 "order_item_count" measures를 확인한다.
2. "percentage_sales_email_source" measures를 생성한다.
- type : number
- value_format_name : percent_2(백분률)
- sql : total_sales_emial_users를 가져와 total_sales로 나누도록 지시,(NULLIIF는 0으로 나누지 않는지 확인용)
measure: percentage_sales_email_source {
type: number
value_format_name: percent_2
sql: 1.0*${total_sales_email_users}
/ NULLIF(${total_sales}, 0) ;;
}
3. 저장, 검증 후 Explore Order Items에서 결과를 확인한다.
최종 저장 후 Commit & Deploy를 진행한다.