このページでは、Explore の一部である
fields
パラメータについて説明します。また、
fields
(結合用)パラメータのドキュメント ページに記載されているように、fields
を結合の一部として使用することもできます。
fields
はセットの一部として使用することもできます。詳しくは、set
パラメータのドキュメントをご覧ください。
使用状況
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 は 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
ビューにある 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} ;;
}
}
知っておくべきこと
fields
と explore
を使用すると、個々のアイテムやアイテムセットを除外できます。
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*
に含まれます。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
に参加したときに含まれていないため、users
からのaddress
は表示されません(name
のみ)。users
のname
は、行fields: [orders.price, users.address]
の Explore に追加されていないため、表示されません。