본문 바로가기

Infra/Google Cloud

[Google Cloud] Google Study Jam : Build LookML Object in Looker (2)

728x90
반응형
본 포스트는 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. AgeAge 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를 진행한다.

728x90
반응형