Usage
view: view_name {
dimension_group: field_name { ... }
}
|
היררכיה
dimension_group |
מקבל
מזהה Looker (שישמש כחלק הראשון של השם של כל מאפיין שנוצר על ידי קבוצת המאפיינים)
כללים מיוחדים
|
הגדרה
הפרמטר dimension_group משמש ליצירה של קבוצת מאפיינים שמבוססים על זמן או על משך, בבת אחת. אתם מגדירים את קבוצת המאפיינים, והמערכת תיצור קבוצה של מאפיינים נפרדים עבור מרווחי זמן או מסגרות זמן שונים. לדוגמה, אפשר לציין קבוצת מאפיינים של type: time על סמך עמודת חותמת זמן, וקבוצת המאפיינים תיצור מאפיינים תואמים כדי להציג את הנתונים לפי זמן, תאריך, שבוע, שעה, רבעון ושנה.
הצורה והפונקציה של קבוצת המאפיינים משתנות בהתאם לערך type של קבוצת המאפיינים:
קבוצות מאפיינים של סוג משך
type: duration משמש בשילוב עם dimension_group כדי לחשב קבוצה של מאפייני משך זמן שמבוססים על מרווחי זמן.
הפורמט של קבוצת מאפיינים של type: duration הוא:
dimension_group: dimension_group_name {
type: duration
sql_start: SQL expression ;; # often this is a single database column
sql_end: SQL expression ;; # often this is a single database column
intervals: [interval, interval, …] # see following explanation for valid intervals
}
לקבוצות מאפיינים של type: duration:
הפרמטרים
sql_startו-sql_endמספקים ביטויי SQL שמגדירים את שעת ההתחלה ואת שעת הסיום של משך הזמן. פרטים נוספים מופיעים בקטע הגדרת ההתחלה והסיום של משך הזמן בדף הזה.הפרמטר
intervalsמציין יחידת זמן אחת או יותר שבהן צריך להשתמש כדי למדוד את הפרש הזמן. אפשרויות הבחירה מפורטות בקטע אפשרויות לפרק זמן בדף הזה.ערכי משך הזמן מעוגלים כלפי מטה למספר השלם הקרוב ביותר.
הפרמטר
datatypeהוא אופציונלי. אם קבוצת המאפיינים לא מבוססת על תאריך ושעה, אפשר לציין במקום זאת תקופה, חותמת זמן, תאריך או פורמט yyyymmdd. במקרה של קבוצות מאפיינים שלtype: duration, הפרמטרdatatypeחל גם על הפרמטריםsql_startו-sql_end, לכן חשוב לוודא שגםsql_startוגםsql_endהם מסוג הנתונים שצוין. פרטים נוספים על הפרמטרdatatypeמופיעים בקטע ציון מסד הנתוניםdatatypeבדף הזה.
למרות שהם לא מופיעים כאן, אפשר להשתמש בהרבה פרמטרים ברמת השדה גם עם קבוצות של מאפיינים.
לדוגמה, אם יש לכם עמודות של enrollment_date ו-graduation_date, אתם יכולים ליצור קבוצת מאפיינים של משך זמן כדי לראות כמה זמן התלמידים בילו בבית הספר, בחישוב של מרווחי זמן שבועיים ושנתיים:
dimension_group: enrolled {
type: duration
intervals: [week, year]
sql_start: ${TABLE}.enrollment_date ;;
sql_end: ${TABLE}.graduation_date ;;
}
בממשק המשתמש של כלי הניתוחים, ייווצר מאפיין קבוצה בשם משך ההרשמה, עם מאפיינים נפרדים בשם שבועות הרשמה ושנות הרשמה.
אפשרויות של מרווחי זמן
הפרמטר intervals מציין לקבוצת המאפיינים באילו יחידות של מרווח זמן להשתמש כדי למדוד את הפרש הזמן בין הזמן sql_start לבין הזמן sql_end. הפרמטר intervals נתמך רק בקבוצות של מאפיינים מסוג type: duration.
אם לא מציינים את intervals, קבוצת המאפיינים תכלול את כל המרווחים האפשריים.
אלה האפשרויות לפרמטר intervals:
| מרווח | תיאור | פלט לדוגמה |
|---|---|---|
day |
הפונקציה מחשבת את הפרש הזמן בימים. | 9 days |
hour |
הפונקציה מחשבת את הפרש הזמן בשעות. | 171 hours |
minute |
מחשבת את הפרש הזמן בדקות. | 10305 minutes |
month |
הפונקציה מחשבת את הפרש הזמן בחודשים. | 3 months |
quarter |
מחשבת את הפרש הזמן ברבעונים של השנה. | 2 quarters |
second |
הפונקציה מחשבת את הפרש הזמן בשניות. | 606770 seconds |
week |
הפונקציה מחשבת את הפרש הזמן בשבועות. | 6 weeks |
year |
מחשבת את הפרש הזמן בשנים. | 2 years |
הגדרת ההתחלה והסיום של משך זמן
בקיבוצי מאפיינים מסוג type: duration, הפרמטרים sql_start ו-sql_end מספקים את נתוני ההתחלה והסיום שמשמשים לחישוב הפרש הזמנים. השדות האלה יכולים לקבל כל ביטוי SQL תקין שמכיל נתונים בפורמט של חותמת זמן, תאריך ושעה, תאריך, ראשית זמן יוניקס (Unix epoch) או yyyymmdd. השדות sql_start ו-sql_end יכולים להכיל כל אחת מהאפשרויות הבאות:
- הפניה ל
rawטווח זמן מקבוצת מאפיינים קיימת שלtype: time - הפניה למאפיין
type: date_raw - ביטוי SQL שהוא חותמת זמן, כמו הפניה לעמודת SQL שהיא חותמת זמן
- ביטוי SQL ששולף שעה ממסד הנתונים, באמצעות הביטוי המתאים לדיאלקט
- הפניה לשדה LookML באמצעות
::datetimeאו::dateהפניה לסוג השדה
לדוגמה, נניח שיש לכם מאפיין בשם faa_event_date_raw שמכיל מידע על תאריך ושעה:
dimension: faa_event_date_raw {
type: date_raw
sql: ${TABLE}.event_date ;;
}
אתם יכולים ליצור קבוצת מאפיינים של type: duration שמחשבת את משך הזמן שחלף מאז תאריך האירוע של ה-FAA. כדי לעשות את זה, אפשר להשתמש במאפיין faa_event_date_raw כזמן ההתחלה של החישוב, ואז להשתמש בביטוי SQL של הניב שלכם לזמן הנוכחי כזמן הסיום של החישוב. הדוגמה הזו היא למסד נתונים של MySQL:
dimension_group: since_event {
type: duration
intervals: [hour, day]
sql_start: ${faa_event_date_raw} ;;
sql_end: CURRENT_TIMESTAMP();;
}
בממשק המשתמש של כלי הניתוחים, ייווצר קיבוץ מאפיינים בשם משך הזמן שעבר מאז האירוע, עם מאפיינים נפרדים בשם שעות שעברו מאז האירוע וימים שעברו מאז האירוע.
הפניה למרווחי זמן משדה LookML אחר
כדי להפנות לערך interval ב-dimension_group של type: duration, משתמשים בתחביר ${interval_fieldname}, בגרסת הרבים של הערך interval. לדוגמה, בדוגמה הבאה של LookML, המדד average_days_since_event משתמש ב-${days_since_event} כדי להפנות למרווח day בקבוצת המאפיינים since_event:
dimension_group: since_event {
type: duration
intervals: [hour, day, week, month, quarter, year]
sql_start: ${faa_event_date_raw} ;;
sql_end: CURRENT_TIMESTAMP();;
}
measure: average_days_since_event {
type: average
sql: ${days_since_event} ;;
}
שימוש בהפניות לסוגי שדות LookML בשדות משך
כדי ליצור שדה מותאם אישית של משך, אפשר לציין סוג הפניה ::date או ::datetime למאפיינים שמפנים אליהם בפרמטרים sql_start ו-sql_end של קבוצת מאפיינים מסוג type: duration. התחביר view_name.field_name::type, שמתואר בדף התיעוד Incorporating SQL and referring to LookML objects, מאפשר ליצור גרסה ::date או ::datetime של שדה בלי להמיר את ההפניות למאפיינים האלה למחרוזות.
לדוגמה, נניח שיש לכם קבוצת מאפיינים created של type: time עם מסגרות זמן של time, date, week, month ו-raw, שמוגדרות באופן הבא:
dimension_group: created {
type: time
timeframes: [time, date, week, month, raw]
sql: ${TABLE}.created_at ;;
}
באמצעות המאפיינים created_month ו-created_time, אפשר ליצור קבוצת מאפיינים של type: duration שמחשבת את משך הזמן בין תאריך מהשדה created_date לבין היום הראשון בחודש שבו התאריך הזה חל, במדידה של שבועות, ימים ושעות:
dimension_group: since_first_of_month {
type: duration
intervals: [week, day, hour]
sql_start: ${created_month::datetime} ;;
sql_end: ${created_time::datetime} ;;
}
בממשק המשתמש של התכונה 'ניתוח נתונים', נוצרת קבוצת מאפיינים בשם משך הזמן מאז תחילת החודש, עם המאפיינים שבועות מאז תחילת החודש, ימים מאז תחילת החודש ושעות מאז תחילת החודש. הגדרת סוג ההפניה ::datetime לשדות שאליהם יש הפניה בפרמטרים sql_start ו-sql_end מאפשרת להתייחס למאפיינים created_month ו-created_time כחותמות זמן ב-SQL שנוצר.
לדוגמה, נניח שמשתמש בוחר את המאפיינים תאריך היצירה ומספר הימים מאז תחילת החודש מתוך בורר השדות. אם אחד מהערכים שמוחזרים עבור Created Date הוא 2019-03-10, אז הערך שמוחזר עבור Days Since First of Month יהיה 9 days.
קבוצות של מאפיינים מסוג זמן
הפרמטר type: time משמש בשילוב עם dimension_group ועם הפרמטר timeframes כדי ליצור קבוצה של מאפיינים שמבוססים על זמן. לדוגמה, אפשר ליצור מאפיין של תאריך, שבוע וחודש על סמך עמודה אחת של חותמת זמן.
הפורמט של קבוצת מאפיינים של type: time הוא:
dimension_group: dimension_group_name {
type: time
timeframes: [timeframe, timeframe, …] # see following explanation for valid timeframes
sql: SQL expression ;; # often this is a single database column
datatype: epoch| timestamp | datetime | date | yyyymmdd # defaults to datetime
convert_tz: yes | no # defaults to yes
}
לקבוצות מאפיינים של type: time:
הפרמטר
timeframesהוא אופציונלי, אבל בדרך כלל לא מדלגים עליו. במאפיין הזה מציינים מסגרת זמן אחת או יותר שצריך ליצור באמצעות קבוצת המאפיינים. אם לא כוללים אתtimeframes, כל האפשרויות של טווחי הזמן יתווספו לקבוצת המאפיינים. אפשרויות הבחירה האפשריות מפורטות בקטע אפשרויות של מסגרת זמן בדף הזה.הפרמטר
sqlשל קבוצות המאפייניםtype: timeיכול לקבל כל ביטוי SQL תקין שמכיל נתונים בפורמט של חותמת זמן, תאריך ושעה, תאריך, ראשית זמן יוניקס (Unix epoch) או yyyymmdd.הפרמטר
datatypeהוא אופציונלי. אם קבוצת המאפיינים לא מבוססת על תאריך ושעה, אפשר לציין במקומה פורמט של תקופה, חותמת זמן, תאריך או yyyymmdd. הסבר מפורט יותר על המאפיין הזה מופיע בקטע הגדרת מסד הנתוניםdatatypeבדף הזה.הפרמטר
convert_tzהוא אופציונלי ומאפשר למנוע המרה אוטומטית של אזור הזמן. הסבר מפורט יותר מופיע בקטע המרות של אזורי זמן וconvert_tzבדף הזה.
למרות שהם לא מופיעים כאן, אפשר להשתמש בהרבה פרמטרים ברמת השדה גם עם קבוצות של מאפיינים.
לדוגמה, נניח שיש לכם עמודה בשם created_at שמכילה מידע על תאריך ושעה. אתם רוצים ליצור מאפיין של תאריך, שבוע וחודש על סמך התאריך והשעה האלה. תוכלו להשתמש:
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
בממשק המשתמש של כלי הניתוחים, ייווצרו שלושה מאפיינים עם השמות תאריך היצירה, שבוע היצירה וחודש היצירה. שימו לב איך השם dimension_group משולב עם טווחי התאריכים כדי ליצור את שמות המאפיינים.
אפשרויות של טווח זמן
הפרמטר timeframes נתמך רק בקבוצות של מאפיינים מסוג type: time. למאפייני קבוצה מסוג type: duration, צריך להשתמש במקום זאת בפרמטר intervals.
הפרמטר timeframes מציין לקבוצת המאפיינים אילו מאפיינים היא צריכה ליצור, והוא כולל את האפשרויות הבאות:
- מסגרות זמן מיוחדות
- מסגרות זמן
- מסגרות זמן של תאריכים
- מסגרות זמן שבועיות
- מסגרות זמן של חודש
- מסגרות זמן רבעוניות
- מסגרות זמן שנתיות
hourXמסגרות זמןminuteXמסגרות זמןmillisecondXמסגרות זמן
אם לא משתמשים בפרמטר timeframes לקבוצת מאפיינים של type: time, או אם משאירים את הפרמטר timeframes ריק (timeframes: []), הניתוח יכלול את קבוצת ברירת המחדל של מסגרות הזמן לקבוצת המאפיינים:
dateday_of_monthday_of_weekday_of_week_indexday_of_yearhourhour_of_dayminutemonthmonth_namemonth_numquarterquarter_of_yeartimetime_of_dayweekweek_of_yearyear
מסגרות זמן מיוחדות
מסגרות זמן
| מסגרת זמן | תיאור | פלט לדוגמה |
|---|---|---|
time |
התאריך והשעה של השדה הבסיסי (בדיאלקטים מסוימים של SQL מוצגת רמת דיוק גבוהה כמו זו שקיימת במסד הנתונים, ובדיאלקטים אחרים מוצגת רמת דיוק של שניות בלבד) | 2014-09-03 17:15:00 |
time_of_day |
השעה ביום | 17:15 |
hour |
השעה והתאריך נחתכים לשעה הקרובה ביותר | 2014-09-03 17 |
hour_of_day |
שעה שלמה ביום של השדה הבסיסי | 17 |
hourX |
הפונקציה מחלקת כל יום למרווחי זמן עם מספר השעות שצוין. | מידע נוסף זמין במאמר בנושא שימוש ב-hourX. |
minute |
השעה והתאריך נחתכים לדקה הקרובה ביותר | 2014-09-03 17:15 |
minuteX |
הפונקציה מחלקת כל שעה למרווחי זמן עם מספר הדקות שצוין. | מידע נוסף זמין במאמר בנושא שימוש ב-minuteX. |
second |
התאריך והשעה נחתכים לשנייה הקרובה ביותר | 2014-09-03 17:15:00 |
millisecond |
התאריך והשעה נחתכים למילי-שנייה הקרובה (בקטע תמיכה בניבים למילי-שניות ולמיקרו-שניות בדף הזה יש מידע על תמיכה בניבים). | 2014-09-03 17:15:00.000 |
millisecondX |
הפונקציה מפצלת כל שנייה למרווחים עם מספר אלפיות השנייה שצוין (בקטע תמיכה בניבים באלפיות שנייה ובמיקרו-שניות בדף הזה יש מידע על תמיכה בניבים). | מידע נוסף זמין במאמר בנושא שימוש ב-millisecondX. |
microsecond |
התאריך והשעה נחתכים למיקרו-שנייה הקרובה (בקטע תמיכה בניבים של אלפיות השנייה ומיקרו-שנייה בדף הזה יש מידע על תמיכה בניבים). | 2014-09-03 17:15:00.000000 |
מסגרות זמן של תאריכים
| מסגרת זמן | תיאור | פלט לדוגמה |
|---|---|---|
date |
התאריך של השדה הבסיסי | 2017-09-03 |
מסגרות זמן שבועיות
מסגרות זמן חודשיות
כדי להשתמש בfiscal_month_num timeframes, צריך להגדיר את הפרמטר fiscal_month_offset במודל.
מסגרות זמן רבעוניות
כדי להשתמש בפרקי הזמן fiscal_quarter ו-fiscal_quarter_of_year, צריך להגדיר את הפרמטר fiscal_month_offset במודל.
מסגרות זמן של שנה
| מסגרת זמן | תיאור | פלט לדוגמה |
|---|---|---|
year |
שנה שלמה של תאריך ושעה בסיסיים | 2017 |
fiscal_year |
שנת הכספים כמספר שלם של תאריך ושעה בסיסיים | FY2017 |
day_of_year |
יום בשנה | 143 |
week_of_year |
מספר השבוע בשנה | 17 |
כדי להשתמש בפרמטר fiscal_year timeframe, צריך להגדיר את הפרמטר fiscal_month_offset במודל.
שימוש ב-hourX
ב-hourX, X מוחלף ב-2, 3, 4, 6, 8 או 12.
כל יום יחולק למרווחי זמן עם מספר השעות שצוין. לדוגמה, הערך hour6 יפצל כל יום לפלחים של 6 שעות, שיופיעו באופן הבא:
2014-09-01 00:00:002014-09-01 06:00:002014-09-01 12:00:002014-09-01 18:00:00
לדוגמה, אם הערך של time הוא 2014-09-01 08:03:17, הערך של hour6 יהיה 2014-09-01 06:00:00.
שימוש ב-minuteX
ב-minuteX, X מוחלף ב-2, 3, 4, 5, 6, 10, 12, 15, 20 או 30.
כל שעה תחולק למרווחי זמן עם מספר הדקות שצוין. לדוגמה, הערך minute15 יפצל כל שעה לפלחים של 15 דקות, שיופיעו באופן הבא:
2014-09-01 01:00:002014-09-01 01:15:002014-09-01 01:30:002014-09-01 01:45:00
לדוגמה, אם הערך של time הוא 2014-09-01 01:17:35, הערך של minute15 יהיה 2014-09-01 01:15:00.
שימוש ב-millisecondX
ב-millisecondX, X מוחלף ב-2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250 או 500.
כל שנייה תחולק למרווחי זמן עם מספר אלפיות השנייה שצוין. לדוגמה, הערך millisecond250 יפצל כל שנייה לפלחים של 250 אלפיות השנייה, שיופיעו כך:
2014-09-01 01:00:00.0002014-09-01 01:00:00.2502014-09-01 01:00:00.5002014-09-01 01:00:00.750
לדוגמה, אם הערך של time הוא 2014-09-01 01:00:00.333, הערך של millisecond250 יהיה 2014-09-01 01:00:00.250.
המרות של אזורי זמן וconvert_tz
באופן כללי, חישובים של זמן (הפרשים, משכי זמן וכו') פועלים בצורה תקינה רק כשמבצעים פעולות על ערכי זמן שהומרו לאותו אזור זמן. לכן חשוב לזכור את אזורי הזמן כשכותבים LookML.
ב-Looker יש הגדרות שונות של אזורי זמן שממירות נתונים מבוססי-זמן בין אזורי זמן שונים. כברירת מחדל, Looker מבצע המרה של אזורי זמן. הפרמטר convert_tz נתמך בקבוצות מימדים מסוג type: time. אם אתם לא רוצים ש-Looker יבצע המרה של אזור זמן למאפיין או לקבוצת מאפיינים מסוימים, אתם יכולים להשתמש בפרמטר convert_tz שמתואר בדף התיעוד של הפרמטר convert_tz.
תמיכה בדיאלקטים של אלפיות השנייה ומיליוניות השנייה
Looker תומך בדיוק של מסגרת זמן עד למיקרו-שנייה, אבל חלק ממסדי הנתונים תומכים בדיוק של מסגרת זמן רק עד לשנייה. אם מסד נתונים נתקל בפרק זמן מדויק יותר ממה שהוא יכול לתמוך בו, הוא יעגל לשנייה הקרובה.
במהדורה האחרונה של 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 | |
| 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 |
במהדורה האחרונה של 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 | |
| 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 |
ציון מסד הנתונים datatype
הפרמטר datatype מאפשר לציין את סוג נתוני הזמן בטבלת מסד הנתונים שאתם מספקים לקבוצת המאפיינים, וכך לשפר את ביצועי השאילתה.
עבור קבוצות מאפיינים של type: time, הפרמטר datatype חל על הפרמטר sql של קבוצת המאפיינים.
במקרה של קבוצות מאפיינים מסוג type: duration, הפרמטר datatype חל גם על הפרמטרים sql_start וגם על sql_end, לכן חשוב לוודא שגם sql_start וגם sql_end הם מסוג הנתונים שצוין.
הפרמטר datatype מקבל את הערכים הבאים:
-
epoch: שדה של ראשית זמן SQL (כלומר, מספר שלם שמייצג את מספר השניות מראשית זמן יוניקס). -
date: שדה תאריך ב-SQL (כלומר, שדה שלא מכיל מידע על השעה ביום). -
datetime: שדה של תאריך ושעה ב-SQL. -
timestamp: שדה של חותמת זמן ב-SQL. -
yyyymmdd: שדה SQL שמכיל מספר שלם שמייצג תאריך בפורמט YYYYMMDD.
ערך ברירת המחדל של datatype הוא timestamp.
קבוצות של מאפיינים מסוג יומן בהתאמה אישית
אם הטמעתם לוחות שנה מותאמים אישית בפרויקט LookML, אתם יכולים להשתמש ב-type: custom_calendar בשילוב עם הפרמטר dimension_group כדי ליצור קבוצה של מאפיינים מבוססי-זמן על סמך טבלת לוח שנה מותאם אישית שהגדרתם במסד הנתונים. במאמר שימוש בלוחות שנה בהתאמה אישית ב-Looker מוסבר איך מגדירים לוחות שנה בהתאמה אישית בפרויקט של LookML.
הפורמט של קבוצת מאפיינים של type: custom_calendar הוא:
dimension_group: dimension_group_name {
type: custom_calendar
custom_timeframes: [custom_timeframe, custom_timeframe, …] # see the following section for valid custom timeframes
sql: SQL expression ;; # often this refers to a single database column
based_on_calendar: custom_calendar_view
}
לקבוצות מאפיינים של type: custom_calendar:
הפרמטר
custom_timeframesהוא אופציונלי. במאפיין הזה מציינים מסגרת זמן מותאמת אישית אחת או יותר שצריך ליצור עבור קבוצת המאפיינים. אם לא מציינים אתcustom_timeframes, קבוצת המאפיינים תיצור את כל מסגרות הזמן המותאמות אישית. בקטעcustom_timeframesבדף הזה מפורטים טווחי הזמן המותאמים אישית האפשריים.הפרמטר
sqlשל קבוצות המאפייניםtype: custom_calendarיכול לקבל כל ביטוי SQL תקין שמכיל נתונים בפורמט של חותמת זמן, תאריך ושעה, תאריך, ראשית זמן יוניקס (Unix epoch) או yyyymmdd.הפרמטר
based_on_calendarמציין את שם התצוגה של היומן המותאם אישית שיצרתם ב-LookML.הפרמטר
convert_tzהוא אופציונלי ומאפשר למנוע המרה אוטומטית של אזור הזמן. הסבר מפורט יותר מופיע בקטע המרות של אזורי זמן וconvert_tzבדף הזה.הפרמטר
datatypeהוא אופציונלי. אם קבוצת המאפיינים לא מבוססת על תאריך ושעה, אפשר לציין במקומה פורמט של תקופה, חותמת זמן, תאריך או yyyymmdd. הסבר מפורט יותר על המאפיין הזה מופיע בקטע הגדרת סוג הנתונים במסד הנתונים בדף הזה.
למרות שהם לא מופיעים כאן, אפשר להשתמש בהרבה פרמטרים ברמת השדה גם עם קבוצות של מאפיינים.
דוגמה לקבוצת מאפיינים של לוח שנה בהתאמה אישית בקובץ orders.view LookML:
view: orders
include: "/views/retail_custom_calendar.view"
dimension_group: created {
type: custom_calendar
sql: ${TABLE}.created_at ;;
custom_timeframes: [custom_year, custom_quarter]
based_on_calendar: retail_custom_calendar
}
שימו לב לרכיבים הבאים בקבוצה הזו של מאפיינים מותאמים אישית של יומן:
-
type: custom_calendar– קבוצת המאפיינים מוגדרת כסוג לוח שנה מותאם אישית. -
sql: ${TABLE}.created_at ;;– קבוצת המאפיינים משתמשת במידע על תאריך ושעה מהעמודהorders.created_atבמסד הנתונים. -
custom_timeframes: [custom_year, custom_quarter]– קבוצת המאפיינים תסומן בתווית Created Custom Calendar ותכלול מסגרות זמן עם התוויות Fiscal Year ו-Fiscal Quarter. מידע נוסף זמין במאמר בנושא תוויות לקבוצות של מאפייני תאריך מותאמים אישית. -
based_on_calendar: retail_custom_calendar– קבוצת המאפיינים תצטרף לנתונים מהלוח שנה המותאם אישית שהוגדר בתצוגהretail_custom_calendarשל פרויקט LookML, לנתונים בעמודהorders.created_atשל מסד הנתונים הזה, כדי לספק תוצאות של שאילתות באמצעות לוח השנה המותאם אישית. במאמר שימוש ביומנים בהתאמה אישית ב-Looker מוסבר איך מגדירים יומן בהתאמה אישית.
custom_timeframes
אם הגדרתם קבוצת מאפיינים כ-type: custom_calendar, ואתם לא רוצים לכלול בקבוצת המאפיינים את כל מסגרות הזמן האפשריות בהתאמה אישית, אתם יכולים להשתמש בפרמטר custom_timeframes כדי לציין אילו מסגרות זמן אתם רוצים לכלול בקבוצת המאפיינים. המערכת תומכת בטווחי הזמן הבאים בהתאמה אישית:
| לוח זמנים | תיאור | הנחות (לסוגים _num) |
|---|---|---|
|
התאריך הספציפי מתצוגת היומן. | |
|
היום המספרי מתוך תצוגת היומן. | ההנחה היא עד 371 ימים |
|
תקופה כללית ביומן (למשל ביומנים של 4-4-5). | |
|
הערך המספרי של התקופה המותאמת אישית. | החישוב מבוסס על 12 תקופות בשנה. |
|
הרבעון מתצוגת היומן. | |
|
הרבעון המספרי של השנה. | החישוב מבוסס על 4 רבעונים בשנה. |
|
תקופה עונתית מותאמת אישית. | |
|
הערך המספרי של העונה המותאמת אישית. | החישוב מבוסס על 2 עונות בשנה. |
|
השבוע בתצוגת היומן. | |
|
השבוע בשנה כמספר. | החישוב מבוסס על עד 53 שבועות בשנה. |
|
השנה מתצוגת היומן. | |
|
הערך המספרי של השנה המותאמת אישית. |
based_on_calendar
עבור קבוצות מאפיינים שמוגדרות כ-type: custom_calendar, הפרמטר based_on_calendar מציין את שם התצוגה של היומן המותאם אישית שיצרתם ב-LookML.
תוויות לקבוצות של מאפייני יומן מותאמים אישית
Looker יוצר תוויות של שדות מאפיינים ותוויות של קבוצות בכלי לבחירת שדות ב'ניתוח נתונים' בהתאם לפרמטרים label או group_label שבהם נעשה שימוש בקבוצת המאפיינים type: custom_calendar:
- ברירת מחדל (לא צוין
labelולאgroup_label):- Looker מקבץ את מסגרות הזמן של קבוצת המאפיינים תחת התווית של קבוצת המאפיינים שמוגדרת כברירת מחדל, שהיא השם של קבוצת המאפיינים בשרשור עם Custom Calendar (לדוגמה, Created Custom Calendar).
- Looker מוסיף את הקידומת Fiscal (פיסקלי) לכל שם של מסגרת זמן (לדוגמה, Fiscal Date, Fiscal Week, Fiscal Year).
group_labelבלבד:- Looker מקבץ את מסגרות הזמן של קבוצת המאפיינים מתחת לערך
group_labelשצוין. - מערכת Looker מוסיפה את השם של קבוצת המאפיינים ואת התחילית Fiscal לכל שם של מסגרת זמן (לדוגמה, Created Fiscal Date, Created Fiscal Week, Created Fiscal Year).
- Looker מקבץ את מסגרות הזמן של קבוצת המאפיינים מתחת לערך
labelבלבד:- Looker מקבץ את מסגרות הזמן של קבוצת המאפיינים תחת הערך
labelעם התוספת Custom Calendar (לדוגמה, אם קבוצת מאפיינים מוגדרת עםlabel: "My Label", מסגרות הזמן יקובצו תחת My Label Custom Calendar). - Looker מוסיף את הקידומת Fiscal (פיסקלי) לכל שם של מסגרת זמן (לדוגמה, Fiscal Date, Fiscal Week, Fiscal Year).
- Looker מקבץ את מסגרות הזמן של קבוצת המאפיינים תחת הערך
- אם מציינים גם את
group_labelוגם אתlabel:- Looker מקבץ את מסגרות הזמן של קבוצת המאפיינים מתחת לערך
group_labelשצוין. - Looker מוסיף את הערך
labelלכל מסגרת זמן (לדוגמה, אם קבוצת מאפיינים מוגדרת עםlabel: "My Label", מסגרות הזמן ייקראו My Label Date, My Label Week, My Label Year).
- Looker מקבץ את מסגרות הזמן של קבוצת המאפיינים מתחת לערך
התאמה לשוק המקומי של קבוצות מאפיינים
אפשר להשתמש בלוקליזציה של מודלים כדי להתאים אישית ולתרגם את השמות של מסגרות זמן, מרווחי זמן או מסגרות זמן בהתאמה אישית שנוצרים על ידי קבוצת מאפיינים. מידע נוסף זמין במאמר בנושא לוקליזציה של קבוצות מאפיינים.
דברים שכדאי לקחת בחשבון
צריך להפנות לקבוצות של מאפיינים באמצעות המאפיינים הנפרדים שלהן
קבוצת מאפיינים מייצגת קבוצה של מאפיינים, ולא רק מאפיין אחד, ולכן אי אפשר להתייחס אליה ישירות ב-LookML. במקום זאת, תצטרכו להפנות למאפיינים שהוא יוצר.
לדוגמה, קבוצת המאפיינים הזו:
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
כדי להפנות לאחד מהמאפיינים האלה בשדה אחר של LookML, משתמשים בהפניה ${created_date}, ${created_week} או ${created_month}. אם תנסו להשתמש רק ב-${created}, מערכת Looker לא תדע למה אתם מתכוונים ותציג שגיאה.
מאותה סיבה, לא מומלץ להשתמש בפרמטר primary_key בקבוצת מאפיינים אם מציינים יותר מ-timeframe.
טיפ מצוות הצ'אט: אנחנו מקבלים הרבה שאלות לגבי שגיאת האימות שיכולה להתרחש אם משתמשים ב-
primary_keyב-dimension_groupעם יותר מ-timeframeאחד. מידע נוסף זמין בפוסט לקהילה בנושא מסגרות זמן וקבוצות מאפיינים ב-Looker .
נתוני חותמת זמן שכוללים מידע על אזור הזמן
בחלק מהניבים של מסדי הנתונים יש אפשרויות של חותמות זמן שכוללות מידע על אזור הזמן. כך אפשר לאחסן נתוני חותמות זמן בשדה יחיד שעשוי לכלול כמה אזורי זמן. יכול להיות ששורה אחת של נתונים תאוחסן ב-UTC, ושורה אחרת תאוחסן לפי שעון החוף המזרחי. לדוגמה, במאמרי העזרה חותמת הזמן של Snowflake TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ יש מידע על האפשרויות של חותמת הזמן של דיאלקט Snowflake.
במקרה כזה, יכולות להתרחש שגיאות כש-Looker מבצע המרות של אזורי זמן. כדי להימנע מכך, בפרמטר sql של המאפיין, צריך להגדיר במפורש את נתוני חותמת הזמן לסוג חותמת זמן שלא מבצע המרה של אזור זמן. לדוגמה, בניב Snowflake, אפשר להשתמש בפונקציה TO_TIMESTAMP כדי להמיר את נתוני חותמת הזמן.
אפשר ליצור מאפיינים נפרדים של זמן או משך
אפשר ליצור מאפיין אחד לכל מסגרת זמן או משך זמן שרוצים לכלול, במקום ליצור את כולם בקובץ dimension_group אחד. בדרך כלל אין צורך ליצור מימדים נפרדים, אלא אם רוצים לשנות את מוסכמת השמות של מסגרות הזמן ב-Looker, או אם כבר חישבתם מראש עמודות זמן במסד הנתונים. מידע נוסף זמין במאמר בנושא סוגי מאפיינים, מסננים ופרמטרים.
אפשר לשנות את היום הראשון בשבוע
כברירת מחדל, השבועות ב-Looker מתחילים ביום שני. אפשר לשנות את זה באמצעות הפרמטר week_start_day ברמת המודל.
חשוב לזכור שהפונקציה week_start_day לא פועלת עם מסגרת הזמן week_of_year, כי מסגרת הזמן הזו מבוססת על תקן ISO, שמשתמש בשבועות שמתחילים ביום שני.
מסננים בהתאמה אישית ושדות בהתאמה אישית לא תומכים בכל מסגרות הזמן
המסגרות הזמניות timeframes day_of_week, fiscal_quarter_of_year, millisecond, millisecondX, microsecond, month_name, quarter_of_year ו-time_of_day לא נתמכות במסננים בהתאמה אישית או בשדות בהתאמה אישית.
במרווחי זמן של חודש, רבעון ושנה נספרות רק תקופות מלאות
במרווח month בקבוצת מאפיינים duration, חודש נחשב כחודש שעבר רק אם יום הסיום גדול מיום ההתחלה או שווה לו.
לדוגמה:
- ההפרש בחודשים בין 26 בספטמבר ל-25 באוקטובר באותה שנה הוא 0.
- ההפרש בין 26 בספטמבר ל-26 באוקטובר באותה שנה הוא חודש אחד.
המרווחים quarter ו-year פועלים לפי אותה לוגיקה.