Looker יכול להמיר נתונים שמבוססים על זמן לאזורי זמן שונים, כדי שיהיה קל יותר להבין אותם. המשתמשים יכולים לראות את תוצאות השאילתות וליצור מסננים עם נתונים שמבוססים על זמן, שמומרים לאזורי הזמן המקומיים שלהם. לדוגמה, משתמש בניו יורק שצופה בנתונים שנוצרו בקליפורניה לא צריך להחסיר שלוש שעות באופן ידני כדי לסנן את השאילתות או לפרש אותן.
Looker ממיר נתונים מבוססי-זמן כשהוא יוצר SQL במהלך שאילתה של Look, ניתוח או לוח בקרה. נתוני הבסיס לא מושפעים, אלא תוצאות השאילתה מומרות באמצעות הגדרות אזור הזמן של Looker. זה גם אומר ששאילתות שמופעלות באמצעות SQL Runner לא ממירות נתונים שמבוססים על זמן.
יש כמה הגדרות ב-Looker שקובעות איך להמיר נתונים שמבוססים על זמן:
- אזור הזמן של המערכת
- אזור הזמן של מסד הנתונים
- אזורי זמן ספציפיים למשתמש
- אזור הזמן של האפליקציה
- אזור הזמן של השאילתות
convert_tzפרמטר LookMLsqlפרמטר LookML
אזור זמן במערכת
אזור הזמן של המערכת הוא אזור הזמן שהוגדר לשרת שבו פועל Looker. במסד הנתונים הפנימי של Looker, שבו מאוחסן המידע שזמין ב-Explores של פעילות המערכת, מאוחסנים נתונים שמבוססים על זמן לפי אזור הזמן של המערכת.
אי אפשר להגדיר את אזור הזמן של המערכת דרך אפליקציית Looker. במקרים שבהם Looker מארח את המכונה, אזור הזמן של המערכת תמיד מוגדר ל-UTC. יכול להיות שמופעים שמתארחים אצל הלקוח נמצאים באזור זמן אחר של המערכת. שינוי אזור הזמן של המערכת הוא לא פשוט ולא מומלץ.
אם אתם צריכים לשנות את חותמות הזמן ב'ניתוח פעילות המערכת', אתם יכולים להשתמש בחישובים בטבלה כדי ליצור עמודות עם חותמות זמן מותאמות. לדוגמה, כדי להמיר מ-UTC ל-EST, אפשר ליצור עמודה עם חישוב הטבלה add_hours(-5, ${time}).
שים לב שמכיוון שחישובי טבלה מבוצעים לאחר החזרת תוצאות השאילתה, לא ניתן להשתמש בהם כדי לקבץ או לסובב נתונים לפי רכיבי זמן ספציפיים (כגון שעה ביום או יום בשבוע). כדי לשנות את חותמות הזמן של פעילות המערכת לצורך יצירת תרשימים שדורשים ציר או קיבוץ לפי רכיבי זמן, צריך להשתמש במאפיינים מותאמים אישית. ממדים מותאמים אישית מעובדים לפני ההדמיה, מה שמאפשר קיבוץ נכון. לדוגמה, כדי להתאים את הנתונים מ-UTC ל-GMT-3, קודם צריך ליצור מאפיין מותאם אישית לזמן המותאם באמצעות ביטוי של Looker add_hours(-3, ${user_facts.last_ui_login_hour}). לאחר מכן יוצרים מאפיינים מותאמים אישית נוספים כדי לחלץ את היום בשבוע או השעה הנדרשים על סמך שדה הזמן המותאם הזה.
אזור הזמן של מסד הנתונים
כשמוסיפים חיבור למסד נתונים, מגדירים את הערך של אזור הזמן של מסד הנתונים בדף הגדרות החיבור.
ההגדרה הזו מייצגת את אזור הזמן שבו נמצא מסד הנתונים שלכם, שבדרך כלל הוא זמן אוניברסלי מתואם (UTC). הגדרת ערך זה לכל דבר שאינו אזור הזמן שבו נמצא מסד הנתונים שלך עלולה להוביל לתוצאות בלתי צפויות.
אזורי זמן ספציפיים למשתמש
ההגדרה המשמעותית ביותר להמרת נתונים מבוססת זמן היא האפשרות אזורי זמן ספציפיים למשתמש, שנמצאת בדף הגדרות כלליות במקטע ניהול של Looker.
אתם יכולים להפעיל או להשבית את האפשרות אזורי זמן ספציפיים למשתמש:
- כשההגדרה הזו מופעלת, לכל משתמש ב-Looker מוקצה אזור זמן, ואזור הזמן הזה קובע איך תוצאות השאילתות ייראו.
- כאשר האפשרות הזו מושבתת, למשתמשים אין אזורי זמן בודדים שהוקצו לחשבונות שלהם. במקום זאת, כל השאילתות מופעלות באמצעות הערך של אזור הזמן של השאילתה.
אם האפשרות אזורי זמן ספציפיים למשתמש מופעלת, משתמש יכול להגדיר את אזור הזמן שלו בדף חשבון, או שמנהלי מערכת ב-Looker יכולים להקצות אזורי זמן למשתמשים בדף משתמשים. אם לא מוגדר אזור זמן עבור משתמש, חשבונם יהפוך להגדרה כברירת מחדל של אזור זמן של אפליקציה של Looker.
בכל פעם שמשתמש יוצר שאילתה, שאילתה זו נוצרת באזור הזמן של המשתמש. כתוצאה מכך, כששאילתה מחזירה נתונים מבוססי-זמן, Looker ממיר את הנתונים מאזור הזמן של מסד הנתונים לאזור הזמן של המשתמש. כאשר משתמש משתמש בערכי סינון הקשורים לזמן בשאילתה, Looker ממיר את ערכי הסינון לאזור הזמן של מסד הנתונים.
בנוסף, כאשר תפעילו אפשרות זו, Looker יציג תפריט נפתח של אזור זמן ב-Explores וב-Looks.

האפשרויות בתפריט הנפתח הזה הן:
- אזור הזמן של כל משבצת (רק בלוחות בקרה): כל השאילתות מופעלות באזור הזמן שבו הן נשמרו.
- אזור זמן של הצופה: כל השאילתות פועלות בהגדרת אזור הזמן הנוכחית של המשתמש.
- רשימה של כל אזור זמן בנפרד, שמשתמשים יכולים לבחור באופן ידני אם ירצו.
כברירת מחדל, כל השאילתות מוגדרות לפי אזור הזמן שבו הן נוצרו. במילים אחרות, אם מיכל יוצרת שאילתה עם אזור הזמן 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 | |
| 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 |