LookML プロジェクトをより効率的かつ保守しやすくするための 1 つの方法は、LookML set
パラメータを使用することです。set
パラメータを使用すると、fields
パラメータやドリル フィールド内でプロジェクト全体で頻繁に繰り返されるフィールドをグループ化できます。set を使用して繰り返しフィールドをグループ化する場合、そのフィールドのグループを保守できるモデル内に 1 つの場所を作成します。
このページでは、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*]
}
この例では、構文 [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
セットを更新するだけで済みます。