התאמה אישית של בלוקים של Looker

בדף הזה מפורטות שיטות מומלצות ודוגמאות לאופן ההתאמה של בלוקים של Cortex Framework Looker לדרישות העסקיות הספציפיות שלכם:

התקנה

יש כמה דרכים להתקין את Cortex Framework Looker Blocks, כמו שמפורט במסמכי Deploy Looker Blocks. עם זאת, אנחנו ממליצים לשכפל את המאגר כי זו השיטה הכי פשוטה להתאמה אישית של בלוקים לצרכים העסקיים שלכם.

ה-Cortex Framework Looker Blocks נוצרו בגישה שכבתית, שבה כל שכבה מוסיפה חלק לוגי מצטבר לשכבה הקודמת:

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

השימוש בשיפורים הוא המפתח לגישה השכבתית הזו ולהתאמה אישית. כדי לפעול לפי העיקרון DRY (אל תחזור על עצמך), נעשה שימוש ב-extends וב-constants. תוכן דינמי לתוויות, להצהרות SQL, ל-HTML ולמאפייני קישור נוצר באמצעות שפת התבניות Liquid.

שיטות מומלצות כלליות של Google:

ארגון קבצים ותיקיות

בבלוק של Looker, כל תיקייה מייצגת אוסף של סוגי אובייקטים (כמו תצוגות, Explore, מרכזי בקרה ועוד). כל אובייקט מוגדר בקובץ נפרד. תיקיית הבסיס של הפרויקט מכילה את קובצי המפתח הבאים:

  • קובץ .model
  • קובץ מניפסט
  • קובצי README וקובצי Markdown אחרים
  • קבצים מ-Marketplace (אם הבלוק זמין גם ב-Looker Marketplace)

מנהל הקבצים והתיקיות

איור 1. דוגמה לארגון תיקיות בתוך בלוק של Looker.

דגם

ניהול מודולרי של קבצים מאפשר לשמור על קובץ model של הפרויקט קטן באמצעות הפרמטרים הבאים:

  1. חיבור
  2. include

    סוגי הקבצים שכלולים הם:

    • רכיבים (קבוצות נתונים, named_value_formats כשזה רלוונטי)
    • ניתוחים (ניתוחים לא מוגדרים בקובץ המודל)
    • מרכזי בקרה

הצהרות include של התצוגות שנעשה בהן שימוש בבלוק מוגדרות בכל קובץ Explore בנפרד, ולא במיקום הזה, כמו בדוגמה הבאה:

connection: "@{CONNECTION_NAME}"

include: "/components/**/*.lkml"
include: "/explores/**/*.explore"
include: "/dashboards/**/*.dashboard"

מניפסט

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

  • שם החיבור
  • מזהה פרויקט
  • מערך נתונים לדיווח

ב-Cortex Framework Looker Blocks נעשה גם שימוש בקבועים כדי להגדיר את הדברים הבאים:

  • הצגת תוויות
  • תוויות של שדות
  • פורמטים של HTML
  • קישורים לכתובות URL
  • שמות לוחות הבקרה

בודקים את הקבועים שהוגדרו עבור בלוק של Looker ומשנים את הערכים בהתאם לצורך. השינויים יחולו בכל מקום שבו יש הפניה לקבוע.

מאפייני משתמש

כדי להשתמש בחלק מ-Looker Blocks, האדמין צריך להגדיר מאפייני משתמש במופע Looker. מאפייני המשתמשים האלה של שפת ברירת המחדל או המטבע מאפשרים לכם להתאים אישית את אופן הצגת לוחות הבקרה לכל משתמש או קבוצה. מידע נוסף על מאפייני המשתמשים הנדרשים מופיע בסקירה הכללית של כל בלוק.

תצוגות

התצוגות שנמצאות בתיקיית הבסיס הן אלה שנוצרו באופן אוטומטי באמצעות Create View from Table. הקבצים האלה השתנו באופן מינימלי:

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

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

בתיקיית הליבה, התצוגות מקבלות שם עם סיומת שמציינת את סוג התצוגה:

  • _rfn לחידוד.
  • _ext לצפייה שדורשת הרשאה.
  • _sdt לטבלה נגזרת שמבוססת על SQL.
  • _ndt לטבלה נגזרת מבוססת LookML ‏(NDT).
  • _pdt לטבלה נגזרת מתמידה (PDT).
  • _xvw כדי להפנות שדות מתצוגות מפורטות שונות.

דוגמה לסיומת

איור 2. דוגמה לסיומת שמציינת את סוג התצוגה.

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

הערות

איור 3. דוגמאות להערות בהגדרת תצוגה מפורטת.

רשומות חוזרות בתוך רשומות

בטבלאות בסיסיות שמכילות רשומות חוזרות מוטמעות, Looker יוצר תצוגות נפרדות כדי לבטל את ההטמעה של הרשומות האלה. לדוגמה, ב-Oracle EBS בלוק של Looker, הטבלה sales_orders מכילה מבנה חוזר מוטמע בשם lines. ‫Looker מתייחס אליהם כשתי תצוגות נפרדות: sales_orders ו-sales_orders__lines.

כדי להצטרף לרשומות האלה שלא מקוננות בתוך Explore, צריך להגדיר את הצירוף באמצעות המאפיין sql בשילוב עם הפקודה UNNEST.

UNNEST command

איור 4. דוגמה לצירוף באמצעות המאפיין sql בשילוב עם הפקודה UNNEST.

מידע נוסף זמין במאמר איך יוצרים מודל של נתוני BigQuery מקוננים ב-Looker.

בלוקי Looker של Cortex Framework מכילים הערות מפורטות בתצוגות ובאובייקטים אחרים. כדי לשפר את הניווט בקוד ואת ההבנה שלו, מומלץ להשתמש באפשרות Fold LookML (קיפול LookML) שזמינה בסביבת הפיתוח של LookML.

קיפול LookML

איור 5. לחיצה על Fold LookML (קיפול LookML).

הצגת LookML

איור 6. לחיצה כדי להרחיב את LookML.

קיפול נוסף

איור 7. לחיצה כדי לקפל שוב את LookML.

שדות

המונח field מתייחס לאובייקטים כמו dimension, ‏ measure, ‏ filter או parameter. בקטעים החדשים יותר האלה, פעלנו לפי העקרונות הבאים:

  1. השמות של המאפיינים הם בפורמט snake_case (אותיות קטנות וקו תחתון בין מילים). לדוגמה: customer_name.
  2. שמות העמודות מהטבלאות הבסיסיות משמשים לשמות המאפיינים. אפשר להחיל תוויות על מאפיינים כדי לתת להם שם שמתאים לעסק. לדוגמה, מאפיין בשם division_hdr_spart יכול להיות מסומן כ-"מזהה חלוקה".
  3. בטבלאות עם הרבה עמודות, השדות מוסתרים כברירת מחדל. בעזרת שיפור של התצוגה, מגדירים את המאפיין hidden לערך no עבור קבוצת המשנה של השדות שרוצים להציג ב-Explore. אם שדה מסוים לא מופיע כמו שציפיתם, אפשר לערוך את מאפיין השדה כדי לפתור את הבעיה.
  4. המאפיינים View_label ו-group_label משמשים לארגון שדות בתוך ניתוח ב-Explore, במקומות שבהם זה רלוונטי.
  5. לגבי שדות שמשמשים בכמה תצוגות מפורטות, מאפיינים כמו label מוגדרים בתצוגה מפורטת 'משותפת', שבהמשך מורחבת לתצוגות מפורטות אחרות. הגישה הזו מרכזת את ההגדרה של הנכס ומקדמת שימוש חוזר. כל השינויים הנדרשים מתבצעים בתצוגה 'משותפת', כדי להבטיח שהשינויים ישתקפו בכל התצוגות שבהן התצוגה 'משותפת' מורחבת.
  6. פרמטרים שמשמשים בכמה תרשימי Explore או שדות שמפנים לכמה תצוגות מוגדרים בתצוגה של שדות בלבד עם הסיומת _xvw. מידע נוסף זמין במאמר בנושא איך נמנעים מחוסר עקביות בדוחות של Explore.

דוגמאות לעריכה

בקטע הזה מופיעות דוגמאות להתאמות אישיות נפוצות.

ביטול ההסתרה של שדה

תצוגת הבסיס כוללת את כל המאפיינים מטבלה בסיסית. אם רוב המאפיינים לא צריכים להיות גלויים, נעשה שימוש בהיצרות כדי להסתיר את כל השדות כברירת מחדל. כדי לעשות זאת, צריך להגדיר את המאפיין fields_hidden_by_default כ-yes. הסתרנו את קבוצת המשנה של השדות שרלוונטיים ללוחות הבקרה של LookML שנכללו. בדוגמה הבאה, תצוגת הבסיס נקראת sales_orders ויש לה מאפיין שנקרא item_posnr.

view: sales_order {
  sql_table_name: reporting.sales_order ;;

  dimension: item_posnr {
    type: string
    sql: ${TABLE}.Item_POSNR
  }
}

השיפור של התצוגה הזו מוגדר בקובץ עם הסיומת _rfn. ההגדרה המדויקת קובעת את מאפיין התצוגה fields_hidden_by_default לערך yes, כלומר כל השדות מוסתרים בהתחלה. כדי להציג את השדה item_posnr בתצוגה, מגדירים את המאפיין hidden לערך no.

view: +sales_order {
   fields_hidden_by_default: yes

   dimension: item_posnr {
     hidden: no
   }
}

שינוי התווית של תצוגת הפרמטרים

כמה Looker Blocks משתמשים בקבוצה משותפת של פרמטרים שמוגדרים בקובץ עצמאי. לדוגמה, בלוק Oracle EBS משתמש בקובץ otc_common_parameters_xvw. בתצוגה הזו מופיעה התווית '🔍 מסננים', שמוגדרת כקבוע בקובץ המניפסט.

כדי לשנות את התווית:

  1. מאתרים את הקבוע label_view_for_filters בקובץ המניפסט.
  2. עורכים את הערך של הקבוע לתווית שבחרתם.
  3. שומרים את קובץ המניפסט. השינוי יתעדכן אוטומטית בכל מקום שבו נעשה שימוש בקבוע label_view_for_filters.
Manifest

constant: label_view_for_filters {
  value: "My Filters"
}

לחלופין, אפשר לעבור לתצוגה otc_common_parameters_xvw ולערוך את המאפיין label לערך הרצוי.

view: otc_common_parameters_xvw {
  label: "My Filters"
}

הוספת מדד חדש

אפשר להוסיף מדדים חדשים ישירות לסינון הרלוונטי. בדוגמה הבאה מוצג מדד חדש שנוסף לשיפור של הזמנות המכירה:

view: +sales_orders {

  measure: customer_count {
    type: count_distinct
    sql: ${customer_id}
   }
}

הוספת שכבת חידוד שנייה

אפשר ליצור שיפורים חדשים על בסיס שיפורים קיימים. לדוגמה, שימוש בפקודה הבאה, שבה sales_orders הוא שם של קובץ:sales_orders_rfn.viewaverage_sales

include: "/views/base/sales_orders"
view: +sales_orders {
  measure: average_sales {
    type: average
    sql: ${order_value}
  }
}

כדי ליצור קובץ שיפור שני:

  1. יוצרים קובץ חדש לשיפור הנתונים: נותנים לו את השם sales_orders_rfn2.view.
  2. כולל את קובץ השיפור הראשון: כל ההגדרות מ-sales_orders_rfn ייכללו ב-sales_orders_rfn2.
  3. עריכת מאפיין התווית: משנים את המאפיין label של average_sales ל-average spend או לתווית אחרת שתבחרו.
  4. הוספת מאפיין חדש: כוללים את הקוד של המאפיין החדש בקובץ sales_orders_rfn2.view.

    include: "/views/core/sales_orders_rfn.view"
    view: +sales_orders {
    
      measure: average_sales {
        label: "Average Spend"
      }
    
      dimension: customer_name_with_id {
        type: string
        sql: CONCAT(${customer_id},' ',${customer_name})
      }
    }
    
  5. הכללת קובץ שיפור שני ב-Explore: כל ההגדרות והשיפורים מ-sales_orders_rfn2 ייכללו ב-Explore.

    include: "/views/core/sales_orders_rfn2.view"
    explore: sales_orders {
    }
    

יצירת שכבת סינון חדשה

אפשר להחליף את העידון של כל תצוגת בסיס שמוגדרת ב-Cortex Framework בלוק של Looker אם היא לא עונה על הדרישות הספציפיות שלכם. אפשר לערוך ישירות את קובץ _rfn כדי להסיר הגדרות שדות לא נחוצות או להוסיף הגדרות חדשות.

אפשרות אחרת היא ליצור קובץ חדש של הגדרות מדויקות:

  1. יוצרים קובץ חדש לשיפור ההגדרות: נותנים לו את השם sales_invoices_rfn ושומרים אותו.
  2. הכללת תצוגת הבסיס: כל ההגדרות מתצוגת הבסיס sales_invoices ייכללו בתצוגה sales_invoices_rfn.
  3. הוספת ההתאמות האישיות שנבחרו: חשוב להגדיר גם מאפיין כמפתח ראשי.

    include: "/views/base/sales_invoices.view"
    
    view: +sales_invoices {
    
      fields_hidden_by_default: yes
    
      dimension: invoice_id {
        hidden: no
        primary_key: yes
        value_format_name: id
      }
    
      dimension: business_unit_name {
        hidden: no
        sql: CONCAT(${business_unit_id}, ":",${TABLE}.BUSINESS_UNIT_NAME) ;;
      }
    }
    
  4. כוללים את הזיקוק החדש ב-Explore: משתמשים בקובץ החדש בנכס include במקום בזיקוק שמופיע ב-Cortex Framework בלוק של Looker.

    include: "/views/my_customizations/sales_invoices_rfn.view"
    
    explore: sales_invoices {
    }
    

עריכת מסננים במרכז שליטה של LookML

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

עריכה של כל מרכזי הבקרה

כדי לשנות את סוג המסנן בכל לוחות הבקרה, מאתרים את קובץ התבנית שמגדיר את המסנן. עורכים את סוג המאפיין ui_config ואת מאפייני התצוגה לפי ההגדרות הרצויות. השינוי הזה יחול על כל מרכזי הבקרה שמרחיבים את התבנית. דוגמה לקובץ otc_template.dashboard:

- dashboard: otc_template
  extension: required

  filters:
  - name: customer_country
    title: "Sold to Customer: Country"
    type: field_filter
    default_value: ''
    allow_multiple_values: true
    required: false
    ui_config:
      type: dropdown_menu
      display: popover
    explore: countries_md
    field: countries_md.country_name_landx

עריכה של לוח בקרה ספציפי

כדי לשנות מסנן בלוח בקרה ספציפי, מאתרים את קובץ לוח הבקרה וכוללים את שם המסנן יחד עם המאפיינים שנבחרו שצריך לשנות. השינוי הזה יחול רק על לוח הבקרה הזה. לדוגמה, כדי לשנות את הכותרת, את סוג ממשק המשתמש ואת התצוגה של customer_country המסנן של otc_order_status.dashboard, רק המאפיינים האלה ייכללו בקובץ של לוח הבקרה. שאר המאפיינים יועברו בירושה מהתבנית המורחבת.

- dashboard: otc_order_status
  title: Order Status
  extends: otc_template

  filters:
  - name: customer_country
    title: "Customer Country"
    ui_config:
      type: dropdown_menu
      display: inline

מידע נוסף על יצירה ושינוי של מרכזי בקרה ב-LookML זמין במאמר יצירת מרכזי בקרה ב-LookML.