שימוש בהגדרות אזור הזמן

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

‫Looker ממיר נתונים מבוססי-זמן כשהוא יוצר SQL במהלך שאילתה של Look, ניתוח או לוח בקרה. נתוני הבסיס לא מושפעים, אלא תוצאות השאילתה מומרות באמצעות הגדרות אזור הזמן של Looker. זה גם אומר ששאילתות שמופעלות באמצעות SQL Runner לא ממירות נתונים מבוססי-זמן.

יש כמה הגדרות ב-Looker שקובעות איך להמיר נתונים שמבוססים על זמן:

אזור זמן במערכת

אזור הזמן של המערכת הוא אזור הזמן שהוגדר לשרת שבו פועל Looker. במסד הנתונים הפנימי של Looker, שבו מאוחסן המידע שזמין ב-Explores של פעילות המערכת, מאוחסנים נתונים מבוססי-זמן באזור הזמן של המערכת.

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

אם אתם צריכים לשנות את חותמות הזמן ב-Explore של פעילות המערכת, אתם יכולים להשתמש בחישובים בטבלה כדי ליצור עמודות עם חותמות זמן מותאמות. לדוגמה, כדי להמיר מ-UTC ל-EST, אפשר ליצור עמודה עם חישוב הטבלה add_hours(-5, ${time}).

שימו לב: החישובים בטבלה מתבצעים אחרי שהתוצאות של השאילתה מוחזרות, ולכן אי אפשר להשתמש בהם כדי לקבץ או לשנות את ציר הנתונים לפי רכיבי זמן ספציפיים (כמו שעה ביום או יום בשבוע). כדי לשנות את חותמות הזמן של פעילות המערכת לצורך יצירת תרשימים שדורשים ציר או קיבוץ לפי רכיבי זמן, צריך להשתמש במאפיינים מותאמים אישית. המאפיינים המותאמים אישית מעובדים לפני התצוגה החזותית, ולכן אפשר לקבץ אותם בצורה נכונה. לדוגמה, כדי להתאים את הנתונים מ-UTC ל-GMT-3, קודם צריך ליצור מאפיין מותאם אישית לזמן המותאם באמצעות ביטוי של Looker add_hours(-3, ${user_facts.last_ui_login_hour}). לאחר מכן יוצרים מאפיינים מותאמים אישית נוספים כדי לחלץ את היום בשבוע או השעה הנדרשים על סמך שדה הזמן המותאם הזה.

אזור הזמן של מסד הנתונים

כשמוסיפים חיבור למסד נתונים, מגדירים את הערך של אזור הזמן של מסד הנתונים בדף הגדרות החיבור.

ההגדרה הזו מייצגת את אזור הזמן שבו נמצא מסד הנתונים, שבדרך כלל הוא זמן אוניברסלי מתואם (UTC). הגדרת הערך הזה לכל דבר אחר מלבד אזור הזמן שמוגדר במסד הנתונים עלולה להוביל לתוצאות בלתי צפויות.

אזורי זמן ספציפיים למשתמש

ההגדרה הכי חשובה להמרת נתונים לפי שעה היא האפשרות User Specific Time Zones (אזורי זמן ספציפיים למשתמש), שנמצאת בדף General Settings (הגדרות כלליות) בקטע Admin (אדמין) ב-Looker.

אתם יכולים להפעיל או להשבית את האפשרות אזורי זמן ספציפיים למשתמש:

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

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

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

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

האפשרויות בתפריט הנפתח הזה הן:

  • אזור הזמן של כל משבצת (רק בלוחות בקרה): כל השאילתות מופעלות באזור הזמן שבו הן נשמרו.
  • אזור הזמן של הצופה: כל השאילתות מופעלות לפי הגדרת אזור הזמן הנוכחית של המשתמש.
  • רשימה של כל אזורי הזמן, שהמשתמשים יכולים לבחור מתוכה באופן ידני אם הם רוצים.

כברירת מחדל, כל השאילתות מוגדרות לפי אזור הזמן שבו הן נוצרו. במילים אחרות, אם דפנה יוצרת שאילתה עם אזור הזמן America/Los Angeles ושולחת אותה לאבי, אבי יראה את השאילתה עם אזור הזמן America/Los Angeles, גם אם אזור הזמן של אבי מוגדר כ-America/New York. באופן דומה, כשמבצעים פירוט, ברירת המחדל היא תמיד אזור הזמן שבו נוצרה השאילתה.

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

דברים שכדאי לקחת בחשבון לגבי אזורי זמן ספציפיים למשתמש

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

לדוגמה, השעות המדויקות שמרכיבות את תקופת הזמן last month יהיו שונות באזורי זמן שונים, ולכן משתמשים שנמצאים באזורי זמן שונים אבל מסננים לפי last month עשויים לראות ערכי נתונים שונים.

אזור הזמן של האפליקציה

אפשר להגדיר את ההגדרה אזור הזמן של האפליקציה בדף הגדרות כלליות בקטע ניהול ב-Looker.

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

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

אזור הזמן של השאילתות

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

אם משביתים את האפשרות אזורי זמן ספציפיים למשתמש, כל השאילתות של נתונים שמבוססים על זמן משתמשות באזור הזמן של השאילתה, ומערכת Looker ממירה את כל הנתונים שמבוססים על זמן מאזור הזמן של מסד הנתונים לאזור הזמן של השאילתה.

convert_tz פרמטר LookML

כברירת מחדל, Looker מבצע המרה של אזור הזמן. כדי להשבית את ההמרה של אזור הזמן בשדה ספציפי, אפשר להשתמש בפרמטר convert_tz LookML. לדוגמה:

dimension_group: created {
  type: time
  timeframes: [time, date]
  convert_tz: no
}

מידע נוסף מופיע בדף התיעוד של הפרמטר convert_tz.

sql פרמטר LookML

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

dimension_group: created {
 type: time
 timeframes: [time, date]
 sql: CONVERT_TZ(${TABLE}.created_at,'UTC','PST') ;;
}

הערות לגבי דיאלקט MySQL

כדי שפונקציית ההמרה של אזור הזמן ב-MySQL תפעל, צריך להגדיר טבלת אזורי זמן. אדמין יכול להריץ את הפקודה הזו. מידע נוסף זמין במסמכי התיעוד של MySQL.

הערות לגבי דיאלקט Postgres

‫Looker משתמש בהגדרת ה-driver כדי לבחור את אזור הזמן של היעד. הדבר הזה יכול להשפיע על אופן העיבוד של השאילתות ב-SQL Runner בהשוואה ל-pgAdmin, כי Looker ישתמש בתאריך ובשעה הנוכחיים באזור הזמן שנבחר.

תמיכה בניבים של מסדי נתונים להמרת אזורי זמן

כדי ש-Looker ימיר אזורי זמן בפרויקט 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
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