בניבים שתומכים בכך, התכונה 'יומן מותאם אישית' ב-Looker מאפשרת להגדיר יומן מותאם אישית במסד הנתונים, כמו יומן פיסקאלי או יומן קמעונאי ספציפי, ואז להחיל את היומן על קבוצת מאפיינים מבוססת-תאריך במודל LookML. לאחר מכן, המשתמשים יוכלו ליצור שאילתות ב'ניתוח נתונים' באמצעות מסגרות הזמן המותאמות אישית, כמו custom_week ו-custom_period, כאילו היו מסגרות זמן רגילות.
דרישות מוקדמות
לפני שמשתמשים בלוחות שנה מותאמים אישית, חשוב לוודא שמתקיימים התנאים המוקדמים הבאים:
- צריך חיבור ל-Looker לדיאלקט שתומך בלוחות שנה בהתאמה אישית.
- צריך ליצור טבלת יומן במסד הנתונים, ואז ליצור ממנה מודל כתצוגה ב-Looker. Looker משתמש בטבלת היומן במסד הנתונים כדי לחשב מסגרות זמן בהתאמה אישית. מידע נוסף זמין בקטע יצירת טבלת לוח שנה במסד הנתונים.
- פרויקט של LookML צריך להשתמש בסביבת זמן הריצה החדשה של LookML. אם התכונה מדור קודם Use Legacy LookML Runtime מופעלת במופע שלכם, אתם צריכים להוסיף את ההצהרה
new_lookml_runtime: yesלקובץ המניפסט של הפרויקט.
יצירת יומן בהתאמה אישית
כדי להטמיע לוח שנה בהתאמה אישית, צריך לבצע את השלבים הכלליים הבאים שמתוארים בקטעים הבאים:
- יצירת טבלת יומן במסד הנתונים
- הגדרה של תצוגת יומן בהתאמה אישית ב-LookML
- יצירה של קבוצת מאפיינים מותאמת אישית של תאריכים
יצירת טבלת יומן במסד הנתונים
כדי לחשב תאריכים ביומנים מותאמים אישית, Looker צריך טבלת יומן ייעודית במסד הנתונים, שמגדירה את מסגרות הזמן המותאמות אישית. בטבלה צריכה להיות עמודה של תאריך ההתייחסות שמשתמשת בתאריך הסטנדרטי ביומן. מערכת Looker מצמידה את טבלת היומן לטבלאות הנתונים (כמו טבלת orders) על סמך עמודת תאריך ההפניה.
שמות העמודות בטבלת היומן הם גמישים. כשמגדירים את תצוגת היומן המותאמת אישית ב-LookML, משתמשים בבלוק calendar_definition כדי למפות את העמודות במסד הנתונים לשמות סטנדרטיים של מסגרות זמן מותאמות אישית.
הדוגמה הבאה היא של סכימת טבלה לטבלת יומן בשם fiscal_calendar_table.
| שם עמודה | סוג הנתונים | תיאור |
|---|---|---|
reference_date |
DATE |
התאריך ביומן בתבנית רגילה (למשל 2023-01-01). משמש להצטרפות. צריך להיות מפתח ייחודי או מפתח ראשי. |
fiscal_year |
VARCHAR |
השנה הפיסקלית (למשל, FY2023). |
fiscal_year_num |
INTEGER |
השנה הפיסקלית המספרית (למשל, 2023). |
fiscal_quarter_of_year |
VARCHAR |
הרבעון הפיסקלי (למשל 'FQ1'). |
fiscal_quarter_of_year_num |
INTEGER |
הרבעון הפיסקלי המספרי (למשל 1). |
fiscal_week_of_year |
VARCHAR |
השבוע הפיסקלי בשנה (למשל, Week01, FW01). |
fiscal_week_of_year_num |
INTEGER |
השבוע הפיסקלי בשנה (כמספר, למשל 1). |
fiscal_period_of_year |
VARCHAR |
שם מותאם אישית של תקופה (למשל, P01). |
fiscal_period_of_year_num |
INTEGER |
התקופה המספרית המותאמת אישית (למשל 1). |
season |
VARCHAR |
שם מותאם אישית של עונה (לדוגמה, 'חורף'). |
season_num |
INTEGER |
מספר העונה המותאם אישית (למשל 1). |
prev_week_num |
INTEGER |
הערך הסידורי של השבוע הקודם (למשל 52 או 53). מערכת Looker צריכה את הערך הזה כדי לחשב מדדים של תקופה לעומת תקופה במקרים שבהם השבוע הנוכחי הוא 1 והשבוע הקודם ביומן הוא לא 52. השימוש ב-prev_week_num נדרש רק אם רוצים להשתמש במדדים של השוואה לתקופה מקבילה עם יומנים מותאמים אישית, ורק אם ביומן המותאם אישית אין 52 שבועות. |
prev_day_num |
INTEGER |
הערך הסידורי של היום הקודם (לדוגמה, 364 או 371). Looker צריך את הערך הזה כדי לחשב מדדים של תקופה לתקופה במקרים שבהם היום הנוכחי הוא 1 והיום הקודם בלוח השנה הוא לא 364. השימוש ב-prev_day_num נדרש רק אם רוצים להשתמש במדדים של השוואה לתקופה קודמת עם יומנים מותאמים אישית, ורק אם ביומן המותאם אישית אין 364 ימים. |
כדי להמחיש, הנה כמה שורות לדוגמה מהטבלה fiscal_calendar_table:
reference_date |
fiscal_year |
fiscal_year_num |
fiscal_period |
fiscal_period_num |
prev_week_num |
prev_day_num |
|---|---|---|---|---|---|---|
2023-12-25 |
FY2024 |
2024 |
P01 |
1 |
51 |
358 |
2023-12-26 |
FY2024 |
2024 |
P01 |
1 |
51 |
359 |
2024-01-01 |
FY2024 |
2024 |
P02 |
2 |
52 |
364 |
2024-01-02 |
FY2024 |
2024 |
P02 |
2 |
52 |
1 |
הגדרת תצוגת יומן מותאמת אישית ב-LookML
אחרי שיוצרים טבלת יומן במסד הנתונים, צריך ליצור תצוגת LookML כדי ליצור מודל של טבלת היומן במסד הנתונים.
קובץ תצוגת היומן בהתאמה אישית צריך לכלול את הפרטים הבאים:
- הפרמטר
sql_table_nameשמפנה לטבלת היומן המותאמת אישית במסד הנתונים. - הבלוק
calendar_definitionלמיפוי העמודות בטבלה לסוגים של טווחי זמן מותאמים אישית ב-Looker. - פרמטרים של
dimensionכדי ליצור מודל של העמודות בטבלת היומן המותאם אישית במסד הנתונים.
זו דוגמה לקובץ תצוגה שנקרא fiscal_calendar.view.lkml ומציג את הדוגמה fiscal_calendar_table:
view: fiscal_calendar {
sql_table_name: fiscal_calendar_table ;;
calendar_definition: {
reference_date: reference_date
timeframe_mapping: {
custom_year: fiscal_year
custom_quarter: fiscal_quarter_of_year
custom_date: fiscal_date
custom_week: fiscal_week_of_year
custom_period: fiscal_period_of_year
custom_season: season
}
timeframe_ordinal_mapping: {
custom_year: fiscal_year_num
custom_quarter: fiscal_quarter_of_year_num
custom_date: fiscal_date_num
custom_week: fiscal_week_of_year_num
custom_period: fiscal_period_of_year_num
custom_season: season_num
}
previous_ordinal_mapping: {
custom_week: prev_week_num
custom_date: prev_day_num
}
}
dimension: reference_date {
type: date
primary_key: yes
sql: ${TABLE}.reference_date ;; # Assuming column name is reference_date
}
dimension: fiscal_date {
type: string
sql: FORMAT_TIMESTAMP('%Y-%m-%d', ${TABLE}.reference_date) ;;
}
dimension: fiscal_year {
type: string
sql: ${TABLE}.fiscal_year ;;
}
dimension: fiscal_year_num {
type: number
sql: ${TABLE}.fiscal_year_num ;;
}
# ... other dimensions for quarters, weeks, periods, seasons, etc. ...
# Example placeholder dimensions for unused timeframes
dimension: season {
type: string
sql: 'N/A' ;;
hidden: yes
}
dimension: season_num {
type: number
sql: 0 ;;
hidden: yes
}
}
פרטים על הפרמטרים של calendar_definition זמינים בדף הפרמטרים של calendar_definition.
יצירת קבוצה של מאפייני תאריך מותאמים אישית
אחרי שיוצרים טבלת יומן במסד הנתונים ומגדירים את טבלת היומן של מסד הנתונים ב-LookML, אפשר ליצור קבוצת מאפיינים של type: custom_calendar שמבוססת על תצוגת היומן בהתאמה אישית.
לדוגמה, הנה תצוגה מקדימה של קובץ בשם orders.view.lkml שמגדיר קבוצת מאפיינים מותאמים אישית של יומן.
include: "/views/fiscal_calendar.view"
view: orders {
sql_table_name: public.orders ;;
dimension_group: created {
type: custom_calendar
# Optional list of allowed timeframes
custom_timeframes: [
custom_date,
custom_week,
custom_year
]
sql: ${TABLE}.created_at ;;
based_on_calendar: fiscal_calendar # This links to your calendar view
}
}
בעזרת קוד LookML הזה, Looker תיצור באופן אוטומטי קבוצה חדשה של מסגרות זמן מותאמות אישית עבור קבוצת המאפיינים created (כמו 'שנה מותאמת אישית של יצירה', 'שבוע מותאם אישית של יצירה'). לאחר מכן המשתמשים יכולים להשתמש בשדות האלה כדי לחקור, לדווח ולסנן.
פרטים על יצירת קבוצת מאפיינים ללוחות שנה מותאמים אישית מופיעים בדף התיעוד בנושא dimension_group.
דברים שכדאי לקחת בחשבון
חשוב לשים לב למגבלות הבאות שחלות על לוחות שנה בהתאמה אישית:
- מדדים מסוננים: אין תמיכה בלוחות שנה מותאמים אישית למדדים מסוננים: אי אפשר להפנות למאפיין של לוח שנה מותאם אישית בפרמטר
filtersשל מדד. - מסננים מתקדמים: אין תמיכה בלוחות שנה מותאמים אישית במסננים מתקדמים: אי אפשר להפנות למאפיין של לוח שנה מותאם אישית בביטויי מסננים ב-Looker.
- צבירות סימטריות: בתרחישים מורכבים מסוימים של צירוף, יכול להיות שלא תהיה תמיכה מלאה בצבירות סימטריות בשאילתות שכוללות מאפייני לוח שנה בהתאמה אישית.
- מילוי מאפיינים: ל-Looker אין אפשרות למלא מאפיינים בתאריכים חסרים במאפייני לוח שנה מותאמים אישית.
- סינון מעבר לגבולות היומן: אם מחילים מסנן על טווח זמן מותאם אישית שכולל תאריך שלא מופיע ביומן, יכול להיות שיוחזרו תוצאות לא צפויות. הסיבה לכך היא החישוב האריתמטי של המספרים הסודרים שמשמש לחישוב תחילת התקופה.
- מסנני
OR: אי אפשר להשתמש במסנניORבשאילתות עם לוחות שנה מותאמים אישית. - התנהגות המרת אזור הזמן: Looker מכבד את הסמנטיקה הקיימת של המרת אזור הזמן. כלומר, אם אזור הזמן של מסד הנתונים זהה לאזור הזמן של השאילתה, לא יתבצע המרה של אזור הזמן. אם הם שונים, Looker יחיל את ההמרה של אזור הזמן. כדי לשנות את ההתנהגות הזו, מציינים
convert_tz: noבקבוצת המאפיינים של לוח השנה בהתאמה אישית. - מיון ברירת מחדל: Looker מחיל מיון ברירת מחדל על שדה התאריך הראשון כשבוחרים שדות מותאמים אישית של לוח שנה. אחר כך המשתמש יכול לציין מיון שונה של הנתונים.
- מסננים מותאמים אישית של יומן: מאפיינים מותאמים אישית של יומן תומכים באפשרויות סינון ספציפיות, כמו is in the last 3 custom years או is this custom period. מידע נוסף זמין בקטע מסננים מותאמים אישית של יומן בדף התיעוד בנושא סינון והגבלת נתונים.
ניבים נתמכים של מסדי נתונים ליומנים בהתאמה אישית
בטבלה הבאה מפורטים הניבים שתומכים ביומנים בהתאמה אישית בגרסה האחרונה של Looker:
| דיאלקט | האם יש תמיכה? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |