DRY LookML でコードの再利用性を最大化: set パラメータで再利用可能なフィールドのリストを定義する

LookML プロジェクトをより効率的で保守しやすいものにする方法の一つとして、LookML set パラメータがあります。set パラメータを使用すると、プロジェクト全体で頻繁に繰り返されるフィールドを fields パラメータ内またはドリル フィールド内にグループ化できます。set を使用して繰り返しフィールドをグループ化する場合、そのフィールドのグループを保守できるモデル内に 1 つの場所を作成します。

このページでは、LookML セットを使用して、LookML プロジェクトの効率と保守性を向上させる例を以下に示します。

構成要素

前提条件

例: 同じドリル フィールドを複数のメジャーに追加する

Explore、Look、ダッシュボードで販売指標が表示されるときにいつでも、ユーザーが詳細なユーザーの情報をドリルダウンできるようにします。その結果、Explore UI で [カウント] メジャーを選択すると、ID フィールド、都市フィールド、フィールド、フィールドに対するクエリが開かれます。

カウント メジャーの値を選択すると、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_counttotal_sale_priceaverage_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 という名前のセットを作成できます。

ユーザーデータなしの注文 Explore では、Explore のフィールド ピッカーから 名、性、メール、年齢、性別のフィールドが除外されます。

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 セットを更新するだけで済みます。