フィールド(Explore 用)

このページでは、Explore の一部である fields パラメータについて説明します。

また、fields(結合用)パラメータのドキュメント ページに記載されているように、fields を結合の一部として使用することもできます。

fields はセットの一部として使用することもできます。詳しくは、set パラメータのドキュメントをご覧ください。

使用状況

Explore: explore_name [
fields: [
field-or-set-specification,
field-or-set-specification

...
]
}
階層
fields
デフォルト値
ALL_FIELDS*

許可
フィールドまたはセットのカンマ区切りのリストを含む角かっこ
特別なルール
  • すべてのフィールドとセットは、完全にスコープ設定する必要があります(view_name.field_name 構文を使用)
  • フィールドとセットは、先頭にハイフン(-)を付けると除外できます。
  • セット名の末尾にアスタリスクを付ける(*
  • 組み込みのセット名 ALL_FIELDS* を使用できます。これには、Explore 内のすべてのフィールドが含まれます。
  • 組み込みセットの名前 view_name* を使用できます。これには参照先のビューのすべてのフィールドが含まれます。

定義

fields を使用すると、Explore の UI で公開する Explore のフィールドを指定できます。これらのフィールドは、Explore のベースビューまたは Explore の結合で利用可能なフィールドを指定できます。fields を使用しない場合、Looker はデフォルトですべてのフィールドを公開します。

フィールドのリストは [view_name.field_a, view_name.field_b] のように使用できます。

[view_name.set_a*] のように、一連のフィールド(ビューの set パラメータで定義)を参照することもできます。アスタリスクは、フィールド名ではなくセット名を参照することを Looker に伝えます。

どちらの場合も、フィールドまたはセットは完全にスコープ設定されている必要があります。つまり、ビュー名とフィールド名の両方を含める必要があります。

Looker は ALL_FIELDS* というセットを自動的に作成します。このセットには、Explore の基本ビューのすべてのフィールドと結合が含まれます。これは特に、次のような不要なフィールドを除外する際に役立ちます。

explore: view_name {
  fields: [ALL_FIELDS*, -joined_view_name.unwanted_field]
}

また、Looker では、特定のビュー内のすべてのフィールドを含むセットが自動的に作成されます。これは、view_name* 形式で参照できます。たとえば、次の Explore には customers ビューのフィールドのみが含まれています。

explore: all_people {
  fields: [customers*]
}

customer Explore の customer ビューから name というフィールドのみを表示します。

explore: customer {
  fields: [customer.name]
}

customer Explore の customer ビューにある nameaddressage というフィールドのみを表示します。

explore: customer {
  fields: [customer.name, customer.address, customer.age]
}

customer Explore では、customer ビューの export_fields セット内のフィールド セットのみを表示します。

explore: customer {
  fields: [customer.export_fields*]
}

customer ビューの status というフィールドを order Explore から除外します。

explore: order {
  fields: [ALL_FIELDS*, -customer.status]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

知っておくべきこと

fieldsexplore を使用すると、個々のアイテムやアイテムセットを除外できます。

explore パラメータで fields を使用すると、ALL_FIELDS* セットを利用してフィールドを除外できます。例:

explore: order {
  fields: [
    ALL_FIELDS*,
    -customer.unwanted_field_a,
    -customer.unwanted_field_b
  ]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

構文 view_name.field_name を使用することで、Explore レベルの fields パラメータで結合ビュー customer のフィールドを参照できるようになりました。

- 構文を使用して、定義済みのフィールドのセットを除外することもできます。

explore: orders {
  fields: [ALL_FIELDS*, -users.statezip*]
  join: users {
    sql_on: ${orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

view: users {
  set: statezip {
    fields:[state, zip]
  }
}

join の一部である fields パラメータでは、ALL_FIELDS セットを使用できません。

このページでは、explore の子である fields パラメータについて説明します。このように使用すると、ALL_FIELDS* セットにアクセスして、前述のように不要なフィールドを除外できます。

また、join の子である fields パラメータもあります。この方法で使用する場合、ALL_FIELDS* セットは使用できません。

ALL_FIELDS セットは、join の一部である fields パラメータによって制限されます

このページでは、explore パラメータにネストされている fields について説明します。同様の fields パラメータも、join の下にネストされています。fields を両方のレベルで同時に適用した場合の影響を理解することが重要です。

まず、join の下にある fields パラメータがすべて適用されます。これにより、Explore が選択できるフィールドのセットが作成されます。次の例を考えてみましょう。

explore: orders {
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

この場合、次の手順を実施します。

  • orders のすべてのフィールドが使用可能になり、ALL_FIELDS* に含まれます。
  • usersname が利用可能になり、ALL_FIELDS* に含まれています。
  • users の他のフィールドは、使用できないか、ALL_FIELDS* セットに含まれません

explore の下に fields パラメータを追加すると、そのセットに制限が追加されます。次のように設定したとします。

explore: orders {
  fields: [orders.price, users.address]
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

この場合、次の手順を実施します。

  • ordersprice は、作成した ALL_FIELDS* セットに含まれているため、想定どおりに表示されます。
  • users に参加したときに含まれていないため、users からの address は表示されませんname のみ)。
  • usersname は、行 fields: [orders.price, users.address] の Explore に追加されていないため、表示されません。