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