fields(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 構文を使用)。
  • フィールドとセットは、先頭にハイフン(-)を付けることで除外できます。
  • セット名の末尾は常にアスタリスク(*)です。
  • Explore のすべてのフィールドを含む組み込みのセット名 ALL_FIELDS* を使用できます。
  • 参照ビューのすべてのフィールドを含む組み込みセット名 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 は、Explore のベースビューと結合のすべてのフィールドを含む ALL_FIELDS* というセットを自動的に作成します。これは、次のように、不要なフィールドをいくつか除外する場合に特に便利です。

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} ;;
  }
}

知っておくべきこと

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

ALL_FIELDS* セットを利用してフィールドを除外するには、explore パラメータで 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 パラメータについて説明します。このように fields パラメータを使用すると、前に示したように ALL_FIELDS* セットにアクセスして不要なフィールドを除外できます。

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

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

このページでは、explore パラメータの下にネストされている場合の fields について説明します。join の下にネストされている同様の fields パラメータもあります。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* セットで使用できず、含まれません。

explorefields パラメータを追加すると、そのセットに制限が追加されます。次のようにした場合を考えます。

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

この例の場合は、次のようになります。

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