このページでは、Explore の一部である
fieldsパラメータについて説明します。
fieldsは、fields(結合の場合)パラメータのドキュメント ページで説明されているように、結合の一部としても使用できます。
fieldsは、setパラメータのドキュメント ページで説明されているように、セットの一部としても使用できます。
用途
explore: explore_name {
fields: [
field-or-set-specification,
field-or-set-specification,
...
]
}
|
階層
fields |
デフォルト値
ALL_FIELDS*
許可
フィールドまたはセットのカンマ区切りリストを含む角かっこ
特別なルール
|
定義
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 ビューから name、address、age という名前のフィールドのみを表示します。
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} ;;
}
}
知っておくべきこと
explore で fields を使用すると、個々のアイテムまたはアイテムのセットを除外できます。
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*に含まれます。usersのnameが利用可能になり、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} ;;
}
}
この例の場合は、次のようになります。
ordersのpriceは、作成したALL_FIELDS*セットに含まれているため、想定どおりに表示されます。usersのaddressは、usersが参加したときに含まれていなかったため(nameのみ)、表示されません。fields: [orders.price, users.address]行の [探索] に追加していないため、usersのnameも表示されません。