בניבים שתומכים בכך, התכונה של יומן מותאם אישית ב-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_day_num |
INTEGER |
התאריך המספרי בהתאמה אישית או היום הסידורי בשנה (למשל 1). |
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_day_num |
fiscal_year |
fiscal_year_num |
fiscal_period |
fiscal_period_num |
prev_week_num |
prev_day_num |
|---|---|---|---|---|---|---|---|
2023-12-25 |
359 |
FY2024 |
2024 |
P01 |
1 |
51 |
358 |
2023-12-26 |
360 |
FY2024 |
2024 |
P01 |
1 |
51 |
359 |
2024-01-01 |
1 |
FY2024 |
2024 |
P02 |
2 |
52 |
364 |
2024-01-02 |
2 |
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_day_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_day_num {
type: number
sql: ${TABLE}.fiscal_day_num ;;
}
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 מחיל מיון ברירת מחדל על שדה התאריך הראשון. המשתמש יכול לציין מיון נתונים שונה.
- מסננים של לוח שנה בהתאמה אישית: מאפיינים של לוח שנה בהתאמה אישית תומכים באפשרויות סינון ספציפיות, כמו ב-3 השנים האחרונות בהתאמה אישית או בתקופה הזו בהתאמה אישית. מידע נוסף זמין בקטע מסנני יומן בהתאמה אישית בדף התיעוד סינון והגבלת נתונים.
ניבים נתמכים של מסדי נתונים ליומנים בהתאמה אישית
בטבלה הבאה מפורט אילו ניבים תומכים ביומנים בהתאמה אישית בגרסה האחרונה של 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 | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 | |
| MongoSQL | |
| 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 |