LookML 프로젝트를 보다 효율적이고 쉽게 유지관리하는 한 가지 방법은 LookML set
매개변수를 사용하는 것입니다. set
매개변수를 사용하면 fields
매개변수 내에서 또는 드릴 필드 내에서 프로젝트 전체에서 반복될 수 있는 필드를 그룹화할 수 있습니다. 세트를 사용하여 반복되는 입력란을 그룹화하면 모델 내에서 해당 필드 그룹을 유지할 수 있는 단일 위치를 만듭니다.
이 페이지에서는 LookML 세트를 사용하여 LookML 프로젝트를 더 효율적이고 유지관리할 수 있도록 해 주는 예시를 소개합니다.
- 여러 측정에 동일한 드릴 필드를 추가: 사용자가 집계를 분석할 때 일반적으로 보기를 원하는 세부정보의 드릴 필드를 정의합니다.
- Explore에서 필드 세트 포함 또는 생략: 사용자의 Explore 환경을 맞춤설정하고 사용자가 필드 선택 도구에서 선택할 수 있는 필드 목록을 단순화합니다.
재료
- LookML
set
매개변수 - LookML
fields
매개변수(Explore용) - LookML
drill_fields
매개변수(필드용) - LookML
drill_fields
매개변수(뷰용)
기본 요건
예시: 동일한 드릴 필드를 여러 측정에 추가
사용자가 보고서의 판매 지표를 볼 때마다 드릴다운하여 더 세부적인 사용자 세부 정보를 볼 수 있도록 Explore UI에서 개수 측정값을 선택하면 ID, 도시, 주, 국가 필드에 대한 쿼리가 열리도록 하려고 한다고 가정해 보겠습니다.
id
, city
, state
, country
필드가 포함된 user_details
라는 세트를 만든 후 사용자가 자세히 살펴볼 수 있도록 여러 척도로 참조할 수 있습니다.
set: user_details {
fields: [id, city, state, country]
}
user_details
세트를 사용하여 count
측정의 드릴 필드를 정의할 수 있습니다.
measure: count {
type: count
drill_fields: [user_details*]
}
이 예시에서 개수 측정값을 분석할 때 user_details
내의 필드가 쿼리 결과에 표시되도록 지정하는 데 [set_name*]
구문을 사용합니다.
그런 다음 이 세트를 재사용하여 추가 드릴 필드를 만들 수 있습니다. 예를 들어 LookML 코드 drill_fields: [user_details*]
를 order_count
, total_sale_price
, average_sale_price
측정값에 추가할 수 있습니다.
measure: order_count {
view_label: "Orders"
type: count_distinct
description: "Number of orders"
sql: ${order_id} ;;
drill_fields: [user_details*]
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
measure: average_sale_price {
type: average
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
개수 측정과 마찬가지로 사용자가 주문 수, 총 판매 가격 또는 평균 판매 가격 값을 선택할 때 Explore UI에서 Looker는 ID, 도시, 주, 국가 필드에 대한 쿼리가 포함된 창을 엽니다.
필드 추가 또는 삭제와 같이 드릴 필드를 변경하려면 user_details
세트만 업데이트하면 됩니다.
또한 뷰의 drill_fields
매개변수 내의 세트를 참조하여 필드 수준에서 드릴 필드가 아직 지정되지 않은 해당 뷰 내의 모든 측정값에 대한 드릴 필드를 정의할 수도 있습니다.
예: Explore에서 필드 세트 포함 또는 생략
해당 사용자에게 중요하지 않은 필드를 제외하여 사용자를 위한 Explore 필드 선택 도구를 단순화한다고 가정합니다.
예를 들어 ID, 이름, 성, 이메일, 연령 필드와 도시, 주, 국가 및 Zip과 같은 위치 필드를 포함하여 고객에 대한 정보가 포함된 users
뷰가 있다고 가정합니다. users
뷰가 orders
Explore에 조인됩니다.
만약 사용자를 위한 Explore에서 이름, 성, 이메일, 연령 및 성별 필드를 제외하고 싶다면 어떻게 합니까? 주문 Explore에서 제외할 필드를 나열하는 user_info
라는 세트를 만들 수 있습니다.
user_info
세트의 LookML은 다음과 같습니다.
set: user_info {
fields: [first_name, last_name, email, age, gender]
}
사용자 데이터가 없는 주문 라벨로 주문 탐색을 정의하려면 users
뷰를 orders
Explore에 조인합니다. LookML 코드 fields: [ALL_FIELDS*, -users.user_info*]
를 orders
Explore에 추가하여 users
뷰에서 설정된 user_info
의 필드를 제외한 모든 필드를 포함합니다.
explore: orders {
fields: [ALL_FIELDS*, -users.user_info*]
label: "Orders Without User Data"
join: users {
type: left_outer
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
orders
Explore의 fields
매개변수에서 -users.user_details*
구문을 사용하여 user_details
세트가 Explore에서 제외되기 때문에 사용자 데이터가 없는 주문 Explore 내의 주문 보기에서는 Explore 필드 선택 도구에서 users_user.info
에 나열된 필드를 Explore가 생략합니다.
user_info
세트를 재사용하여 users
뷰가 조인된 다른 Explore의 Explore UI에서 이러한 필드를 생략할 수 있습니다. 필드 추가 또는 삭제와 같이 user_info
세트에 대해 항목을 변경하려면 user_info
세트만 업데이트하면 됩니다.