אחת הדרכים להפוך את פרויקטי LookML ליעילים יותר ולקלים יותר לתחזוקה היא באמצעות הפרמטר set של LookML. הפרמטר set מאפשר לקבץ שדות שעשויים לחזור על עצמם לעיתים קרובות לאורך הפרויקט בפרמטר fields או בשדות של ניתוח מעמיק. אם משתמשים בקבוצה כדי לקבץ שדות חוזרים, יוצרים מקום אחד במודל שבו אפשר לתחזק את קבוצת השדות הזו.
בדף הזה מופיעות דוגמאות לשימוש בקבוצות LookML כדי לשפר את היעילות והתחזוקה של פרויקטים של LookML:
- הוספת אותם שדות פירוט לכמה מדדים: מגדירים שדות פירוט לפרטים שהמשתמשים רוצים לראות בדרך כלל כשהם מציגים פירוט של נתוני צבירה.
- הכללה או השמטה של קבוצת שדות בניתוח: אפשר להתאים אישית את חוויית הניתוח למשתמשים ולפשט את רשימת השדות שהמשתמשים יכולים לבחור בכלי לבחירת שדות.
רכיבים
- הפרמטר
setב-LookML - הפרמטר
fieldsשל LookML (ל-Explores) - הפרמטר
drill_fieldsב-LookML (לשדות) - הפרמטר
drill_fieldsשל LookML (לתצוגות)
דרישות מוקדמות
דוגמה: הוספת אותם שדות של פירוט לכמה מדדים
נניח שאתם רוצים שהמשתמשים יוכלו להציג פרטים מפורטים יותר של משתמשים בכל מקום שבו הם רואים מדדי מכירות בניתוחים, בתצוגות או בלוחות בקרה. כך, אם הם יבחרו ערך במדד ספירה בממשק המשתמש של הניתוח, תיפתח שאילתה בשדות מזהה, עיר, מדינה ומחוז:

אתם יכולים ליצור קבוצה בשם user_details שכוללת את השדות id, city, state ו-country, ואז להפנות אליהם בכמה מדדים כדי שהמשתמשים יוכלו להסתעף לפרטים:
set: user_details {
fields: [id, city, state, country]
}
אפשר להשתמש בקבוצת user_details כדי להגדיר שדה להתעמקות בנתונים למדד count:
measure: count {
type: count
drill_fields: [user_details*]
}
בדוגמה הזו, התחביר [set_name*] מציין שהשדות בתוך user_details יופיעו בתוצאות השאילתה כשמבצעים פירוט של המדד Count.
אחר כך תוכלו להשתמש שוב בקבוצה הזו כדי ליצור שדות נוספים של התעמקות בנתונים. לדוגמה, אפשר להוסיף את קוד LookML drill_fields: [user_details*] למדדים order_count, total_sale_price ו-average_sale_price:
measure: order_count {
view_label: "Orders"
type: count_distinct
description: "Number of orders"
sql: ${order_id} ;;
drill_fields: [user_details*]
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
measure: average_sale_price {
type: average
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
בדומה למדד ספירה, כשמשתמש בוחר ערך למדד מספר ההזמנות, מחיר המבצע הכולל או מחיר המבצע הממוצע בממשק המשתמש של 'ניתוח נתונים', Looker פותח חלון שמכיל שאילתה בשדות מזהה, עיר, מדינה ומדינה.
אם רוצים לשנות משהו בשדות של הניתוח לעומק, כמו הוספה או הסרה של שדה, צריך רק לעדכן את קבוצת user_details.
אפשר גם להפנות לקבוצה בdrill_fields פרמטר של תצוגה כדי להגדיר שדות הסתעפות לכל המדדים בתצוגה הזו שעדיין לא הוגדרו להם שדות הסתעפות ברמת השדה.
דוגמה: הכללה או השמטה של קבוצת שדות מ-Explore
נניח שאתם רוצים לפשט את הכלי לבחירת שדות בדף 'ניתוח נתונים' למשתמשים מסוימים, על ידי החרגת שדות שלא חיוניים למשתמשים האלה.
לדוגמה, נניח שיש לכם תצוגת users שמכילה מידע על הלקוחות שלכם, כולל שדות של מזהה, שם פרטי, שם משפחה, אימייל וגיל, וגם שדות של מיקום כמו עיר, מדינה, מדינה ומיקוד. התצוגה users מצורפת ל-Explore orders:

מה קורה אם רוצים להחריג את השדות שם פרטי, שם משפחה, אימייל, גיל ומגדר מהתכונה 'ניתוח נתונים' עבור המשתמשים? אפשר ליצור קבוצה בשם user_info שבה מפורטים השדות שרוצים להחריג מהניתוח Orders:

קוד ה-LookML של קבוצת user_info ייראה כך:
set: user_info {
fields: [first_name, last_name, email, age, gender]
}
כדי להגדיר ניתוח הזמנות עם התווית הזמנות ללא נתוני משתמשים, מצטרפים לתצוגה users בניתוח orders. מוסיפים את קוד LookML fields: [ALL_FIELDS*, -users.user_info*] ל-orders Explore כדי לכלול את כל השדות מלבד השדות בערכה user_info מהתצוגה users:
explore: orders {
fields: [ALL_FIELDS*, -users.user_info*]
label: "Orders Without User Data"
join: users {
type: left_outer
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
מכיוון שהקבוצה user_details מוחרגת מהניתוח באמצעות התחביר -users.user_details* בפרמטר fields של הניתוח orders, התצוגה Orders בניתוח Orders Without User Data לא כוללת את השדות שמופיעים בקבוצה users_user.info בבורר השדות של הניתוח.
אפשר לעשות שימוש חוזר בקבוצת user_info כדי להשמיט את השדות האלה מממשק המשתמש של 'ניתוח נתונים' בכל ניתוח נתונים אחר שאליו מצורפת התצוגה users. אם רוצים לשנות משהו בuser_info, למשל להוסיף או להסיר שדה, צריך רק לעדכן את user_info.