שימוש חוזר בקוד באמצעות DRY LookML: הגדרה של רשימות שדות שאפשר להשתמש בהן שוב באמצעות הפרמטר set

אחת הדרכים להפוך את פרויקטי LookML ליעילים יותר ולקלים יותר לתחזוקה היא באמצעות הפרמטר set של LookML. הפרמטר set מאפשר לקבץ שדות שעשויים לחזור על עצמם לעיתים קרובות לאורך הפרויקט בפרמטר fields או בשדות של ניתוח מעמיק. אם משתמשים בקבוצה כדי לקבץ שדות חוזרים, יוצרים מקום אחד במודל שבו אפשר לתחזק את קבוצת השדות הזו.

בדף הזה מופיעות דוגמאות לשימוש בקבוצות LookML כדי לשפר את היעילות והתחזוקה של פרויקטים של LookML:

רכיבים

דרישות מוקדמות

דוגמה: הוספת אותם שדות של פירוט לכמה מדדים

נניח שאתם רוצים שהמשתמשים יוכלו להציג פרטים מפורטים יותר של משתמשים בכל מקום שבו הם רואים מדדי מכירות בניתוחים, בתצוגות או בלוחות בקרה. כך, אם הם יבחרו ערך במדד ספירה בממשק המשתמש של הניתוח, תיפתח שאילתה בשדות מזהה, עיר, מדינה ומחוז:

בחירה של ערך למדד Count (ספירה) פותחת שאילתה בשדות ID,‏ City (עיר),‏ State (מדינה) ו-Country (ארץ).

אתם יכולים ליצור קבוצה בשם 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.