Usage
explore: explore_name {
cancel_grouping_fields: [
fully_scoped_field,
fully_scoped_field,
...
]
}
|
היררכיה
cancel_grouping_fields |
ערך ברירת המחדל
ללא
אישור
סוגריים מרובעים שמכילים רשימה מופרדת בפסיקים של שמות שדות עם היקף מלא
כללים מיוחדים
|
הגדרה
cancel_grouping_fields מאפשרת לכם למנוע מ-Looker להוסיף פסקה של GROUP BY ל-SQL שהוא יוצר. אם המשתמש כולל אחד מהשדות שציינתם, Looker לא יבצע קיבוץ. הפונקציונליות הזו משמשת בדרך כלל לשיפור הביצועים של שאילתות בטבלאות גדולות מאוד. למעט במקרים נדירים וייחודיים, כדאי לכלול רק שדות שייחודיים לכל שורה בטבלה, כמו המפתח הראשי.
מכיוון שמדדים ב-Looker מייצגים פונקציות צבירה של SQL, שנדרש להן פסקה GROUP BY כדי לפעול, חשוב לדעת שהפונקציה cancel_grouping_fields לא תפעל עם שאילתות שכוללות מדדים. בנוסף, cancel_grouping_fields לא פועל כשמשתמשים ב-relationship: one_to_many או ב-relationship: many_to_many.
בנוסף, חשוב לציין שהשדות שציינתם צריכים להיות מוגדרים באופן מלא. כלומר, צריך לכתוב אותם כ-view_name.field_name ולא רק כ-field_name.
דוגמאות
לא לקבץ את התוצאות אם המשתמש בוחר באפשרות מזהה הזמנה בכלי לבחירת שדות:
explore: order {
cancel_grouping_fields: [order.id]
}
לא לקבץ את התוצאות אם המשתמש בוחר באפשרות מזהה הזמנה או גיבוב הזמנה בבורר השדות:
explore: order {
cancel_grouping_fields: [order.id, order.hash]
}
אם המשתמש בוחר באפשרות מזהה אדם או מזהה DNA בבורר השדות, לא מקבצים את התוצאות:
explore: person {
cancel_grouping_fields: [person.id, dna.id]
join: dna {
sql_on: ${person.dna_id} = ${dna.id} ;;
relationship: one_to_one
}
}
אתגרים נפוצים
cancel_grouping_fields דורש שמות שדות עם היקף מלא
אם כותבים רק את שם השדה, רוב הפרמטרים ב-Looker יניחו שם תצוגה, על סמך המקום שבו נעשה שימוש בפרמטר. ב-cancel_grouping_fields זה לא עובד ככה, וצריך לכתוב גם את שם התצוגה וגם את שם השדה.
לדוגמה, יכול להיות שתחשבו שהפעולה הבאה תעבוד, ושהערך id יפורש כמזהה ההזמנה שמופיע בכלי לבחירת שדות:
explore: order {
cancel_grouping_fields: [id]
}
אבל זה לא המצב, ותופיע שגיאה. במקום זאת, צריך לכתוב:
explore: order {
cancel_grouping_fields: [order.id]
}
cancel_grouping_fields מופעל כשבוחרים כל שדה שצוין, ולא כשבוחרים את כל השדות
אם מציינים יותר משדה אחד ב-cancel_grouping_fields, הקיבוץ יבוטל אם המשתמש יבחר כל שדה ברשימה. המשתמש לא צריך לבחור את כל השדות ברשימה. לכן, אי אפשר להשתמש במפתחות ראשיים של כמה עמודות עם cancel_grouping_fields.
חשוב לדעת
לא נדרש cancel_grouping_fields כדי ש-Looker יפעל בצורה תקינה. הוא משמש לשיפור שאילתות בטבלאות גדולות
כשכותבים SQL באופן ידני, רוב האנשים לא כוללים פסקה של GROUP BY אלא אם זה הכרחי. במקרים מסוימים, Looker גם נמנע מסעיפי GROUP BY מיותרים. אם אחד מהמאפיינים בשאילתה הוגדר כמפתח הראשי (באמצעות הפרמטר primary_key) של הניתוח שבו אתם משתמשים, סעיף GROUP BY יוסר.
עם זאת, יש מקרים שבהם מימד אחר – שלא מוגדר כמפתח הראשי – עדיין מגדיר שורה ייחודית. במקרים כאלה, יכול להיות ש-Looker ייצור GROUP BY מיותר, כי קיבוץ לפי מימדים הוא חלק מהותי באופן הפעולה של Looker. ברוב המקרים, זה לא יגרום לבעיות. התוצאות יופיעו כמו שציפיתם ובמהירות.
עם זאת, בטבלאות גדולות מאוד, סעיפי GROUP BY מיותרים עלולים להאריך את זמן השאילתה. זהו המצב האידיאלי לשימוש ב-cancel_grouping_fields.