בדף הזה מוסבר על הפרמטר
fieldsשהוא חלק מכלי הניתוחים.אפשר להשתמש ב-
fieldsגם כחלק מצירוף, כפי שמתואר בדף התיעוד של הפרמטרfields(לצירופים).אפשר להשתמש ב-
fieldsגם כחלק ממערך, כמו שמתואר בדף התיעוד של הפרמטרset.
Usage
explore: explore_name {
fields: [
field-or-set-specification,
field-or-set-specification,
...
]
}
|
היררכיה
fields |
ערך ברירת המחדל
ALL_FIELDS*
מקבל
סוגריים מרובעים שמכילים רשימה מופרדת בפסיקים של שדות או קבוצות
כללים מיוחדים
|
הגדרה
fields מאפשרת לכם לציין אילו שדות מניתוח יוצגו בממשק המשתמש של ניתוח. השדות האלה יכולים להיות בתצוגת הבסיס של הניתוח או בשדות שזמינים מהצירופים של הניתוח. אם לא משתמשים ב-fields, Looker חושף כברירת מחדל את כל השדות.
אפשר להשתמש ברשימת שדות באופן הבא: [view_name.field_a, view_name.field_b].
אפשר גם להפנות לקבוצת שדות (שמוגדרת בפרמטר set של תצוגה מפורטת), כמו [view_name.set_a*]. הכוכבית מציינת ל-Looker שאתם מתייחסים לשם של קבוצה ולא לשם של שדה.
בשני המקרים, חשוב לציין שהשדה או הקבוצה צריכים להיות בהיקף מלא. במילים אחרות, אתם צריכים לכלול גם את שם התצוגה וגם את שם השדה.
Looker יוצר באופן אוטומטי קבוצה בשם ALL_FIELDS*, שמכילה את כל השדות בתצוגת הבסיס ובצירופים של הכלי 'ניתוח נתונים'. האפשרות הזו שימושית במיוחד להחרגת מספר קטן של שדות לא רצויים, כמו בדוגמה הבאה:
explore: view_name {
fields: [ALL_FIELDS*, -joined_view_name.unwanted_field]
}
בנוסף, מערכת Looker יוצרת באופן אוטומטי קבוצות שמכילות את כל השדות בתצוגה נתונה, שאפשר להפנות אליהן באמצעות הפורמט view_name*. לדוגמה, החיפוש הבא ב-Explore כולל רק שדות בתצוגה customers:
explore: all_people {
fields: [customers*]
}
דוגמאות
הצגת השדה שנקרא name מהתצוגה customer ב'ניתוחים' customer:
explore: customer {
fields: [customer.name]
}
הצגת השדות name, address ו-age בלבד מהתצוגה customer ב-customer Explore:
explore: customer {
fields: [customer.name, customer.address, customer.age]
}
יוצג רק קבוצת השדות בexport_fields, מתוך התצוגה customer, בcustomer ניתוח:
explore: customer {
fields: [customer.export_fields*]
}
להחריג את השדה שנקרא status בתצוגה customer מהניתוח order:
explore: order {
fields: [ALL_FIELDS*, -customer.status]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
חשוב לדעת
אפשר להחריג פריטים ספציפיים או קבוצות של פריטים באמצעות fields עם explore
אפשר להשתמש ב-fields בפרמטר explore כדי להגדיר ALL_FIELDS* ואז להחריג שדות. לדוגמה:
explore: order {
fields: [
ALL_FIELDS*,
-customer.unwanted_field_a,
-customer.unwanted_field_b
]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
הצלחנו להפנות לשדות מהתצוגה המאוחדת customer בפרמטר fields ברמת הניתוח באמצעות התחביר view_name.field_name.
אפשר גם להחריג קבוצות מוגדרות של שדות באמצעות התחביר -:
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]
}
}
בפרמטר fields שהוא חלק מ-join אי אפשר להשתמש בערך ALL_FIELDS set
בדף הזה יש הפניה לפרמטר fields שהוא צאצא של explore. כשמשתמשים בפרמטר fields בצורה הזו, אפשר לגשת לערך ALL_FIELDS* ואז להחריג שדות לא רצויים, כמו שמוצג למעלה.
יש גם פרמטר fields שהוא צאצא של join. כשמשתמשים בהם בצורה הזו, אי אפשר להשתמש בערכת ALL_FIELDS*.
הפרמטר ALL_FIELDS מוגבל על ידי הפרמטר fields שהוא חלק מ-join
בדף הזה נסביר על fields כשהוא מוטמע בפרמטר explore. יש גם פרמטר דומה fields שמוטמע בתוך join. חשוב להבין את ההשלכות של החלת fields על שתי הרמות בו-זמנית.
קודם כל, המערכת מחילה את כל הפרמטרים fields בקטע join. כך נוצרת קבוצת השדות שאפשר לבחור מתוכה ב'ניתוח נתונים'. דוגמה:
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
במקרה כזה:
- כל השדות מ-
ordersיהיו זמינים וייכללו ב-ALL_FIELDS*. -
nameמ-usersיהיה זמין ויכלל ב-ALL_FIELDS*. - שדות אחרים ב-
usersלא יהיו זמינים או ייכללו בקבוצהALL_FIELDS*.
עכשיו, אם נוסיף פרמטר fields מתחת ל-explore, נוסיף הגבלה מעל הקבוצה הזו. נניח שעשינו את הפעולות הבאות:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
במקרה כזה:
- המוצר
priceמ-ordersיוצג כצפוי, כי הוא נמצא בקבוצהALL_FIELDS*שיצרנו. - ההודעה
addressמ-usersלא תוצג, כי היא לא נכללה כש-usersהצטרף (רקnameנכללה). - גם
nameמ-usersלא יופיע, כי לא הוספנו אותו לניתוח בשורהfields: [orders.price, users.address].