LookML プロジェクトをより効率的で保守しやすいものにする方法の一つとして、LookML set
パラメータがあります。set
パラメータを使用すると、プロジェクト全体で頻繁に繰り返されるフィールドを fields
パラメータ内またはドリル フィールド内にグループ化できます。set を使用して繰り返しフィールドをグループ化する場合、そのフィールドのグループを保守できるモデル内に 1 つの場所を作成します。
このページでは、LookML セットを使用して、LookML プロジェクトの効率と保守性を向上させる例を以下に示します。
- 複数のメジャーに同一のドリル フィールドを追加する: ユーザーが集計にドリルダウンする際に通常確認する詳細について、ドリル フィールドを定義します。
- Explore から一連のフィールドを追加または省略する: ユーザーに対して Explore のエクスペリエンスをカスタマイズし、ユーザーがフィールド ピッカーで選択できるフィールドのリストを簡素化します。
構成要素
- LookML の
set
パラメータ - LookML の
fields
パラメータ(データ探索用) - LookML の
drill_fields
パラメータ(フィールド用) - LookML の
drill_fields
パラメータ(ビュー用)
前提条件
例: 同じドリル フィールドを複数のメジャーに追加する
Explore、Look、ダッシュボードで販売指標が表示されるときにいつでも、ユーザーが詳細なユーザーの情報をドリルダウンできるようにします。その結果、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*]
}
この例では、構文 [set_name*]
を使用して、カウント メジャーにドリルダウンすると user_details
内のフィールドがクエリ結果に表示されることを指定しています。
このセットを再利用して、追加のドリルダウン フィールドを作成できます。たとえば、order_count
、total_sale_price
、average_sale_price
メジャーに LookML コード drill_fields: [user_details*]
を追加できます。
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、名、姓、メール、年齢のフィールドを含む顧客情報、および市区町村、州、国、郵便番号 などのロケーション フィールドに関する情報を含む ビューusers
があるとします。users
ビューは orders
Explore に結合されます。
ユーザーの Explore から名フィールド、姓フィールド、メールフィールド、年齢フィールドおよび性別フィールドを除外したい場合、どうするばよいでしょうか。注文 Explore から除外するフィールドを一覧表示する user_info
という名前のセットを作成できます。
user_info
セットの LookML は次のようになります。
set: user_info {
fields: [first_name, last_name, email, age, gender]
}
ユーザーデータなしの注文というラベルを使って 注文 Explore を定義するには、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
}
}
この user_details
set は、orders
Explore の fields
パラメータ内の 構文 -users.user_details*
を使用して Explore から除外されるので、ユーザーデータなしの注文 Explore 内の注文ビューのでは、Explore フィールド ピッカーから設定された users_user.info
内に一覧表示されたフィールドが省略されます。
user_info
セットを再利用して、users
ビューが結合されている他の Explore の Explore UI からこれらのフィールドを除外できます。フィールドの追加または削除など、user_info
セットになんらかの変更をする場合は、user_info
セットを更新するだけで済みます。