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

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

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

構成要素

前提条件

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

レポートで販売指標が表示されるときにいつでも、ユーザーが詳細なユーザーの情報をドリルダウンできるようにします。その結果、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 セットを更新するだけで済みます。