שכבת המודלים הסמנטיים של Looker LookML מאפשרת למנתחי נתונים להגדיר מאפיינים, צבירות, חישובים ויחסי נתונים במסד נתונים של SQL. מודלים של LookML מאפשרים שימוש חוזר בקוד ושילוב עם Git. מודל LookML מובנה היטב מאפשר למשתמשים לבצע בעצמם ניתוח נתונים ודיווח בשירות עצמי.
מודל LookML הוא הבסיס לכל נתון שמבוקש מ-Looker, בין אם הבקשה מגיעה מממשק Looker Explore בממשק המשתמש של Looker, מתצוגה חזותית מוטמעת בפורטל של החברה או באפליקציית צד שלישי אחרת, או מאפליקציה בהתאמה אישית שפותחה באמצעות Looker API. ממשק Open SQL מספק גישה למודלים של LookML לכל אפליקציית צד שלישי שתומכת ב-Java Database Connectivity (JDBC). אפליקציות יכולות להתחבר למודל LookML כאילו היה מסד נתונים, וכך המשתמשים יכולים ליהנות מכל העבודה שמנתחי הנתונים שלהם ביצעו במודל LookML, תוך שימוש בכלים שהם הכי רגילים אליהם.
איך רכיבי פרויקט של LookML מוצגים בממשק Open SQL
כדי להבין איך Open SQL Interface חושף את הרכיבים של פרויקט LookML, חשוב להבין את המבנה של פרויקטים של LookML.
פרויקט LookML הוא אוסף של קבצים שמתארים את האובייקטים, את החיבורים למסד הנתונים ואת רכיבי ממשק המשתמש שמשמשים לביצוע שאילתות SQL ב-Looker (מידע נוסף זמין במאמר מונחים ומושגים ב-LookML). המושגים הבאים בפרויקט של LookML קשורים לממשק Open SQL:
- מודל LookML מציין חיבור למסד נתונים וחיפוש אחד או יותר. ממשק Open SQL מציג מודלים כסכימות של מסדי נתונים.
- ניתוח נתונים הוא קיבוץ לוגי של תצוגה מפורטת אחת או יותר, ושל קשרי הצירוף בין התצוגות המפורטות האלה. ממשק ה-SQL הפתוח מציג ניתוחים כטבלאות מסד נתונים.
- תצוגה מגדירה אוסף של שדות (גם מאפיינים וגם מדדים). תצוגה מבוססת בדרך כלל על טבלה במסד הנתונים או על טבלה נגזרת. תצוגות יכולות להכיל את העמודות מטבלת מסד הנתונים הבסיסית, וגם מאפיינים או מדדים מותאמים אישית שמשתמשי הקצה עשויים להזדקק להם. ממשק Open SQL מציג את השילוב של שם תצוגה ושם שדה כשם של עמודה במסד הנתונים. לדוגמה, המאפיין
idבתצוגהorder_itemsמוצג על ידי Open SQL Interface כעמודה במסד הנתונים שנקראתorder_items.id.
ב-Looker Explore אפשר להגדיר קשרי צירוף בין כמה תצוגות. יכול להיות שלתצוגה אחת יהיה שדה עם אותו שם כמו שדה בתצוגה אחרת, ולכן בממשק Open SQL, כשמפנים לעמודה, מציינים גם את שם התצוגה וגם את שם השדה. לכן, כששולחים שאילתות לממשק Open SQL, צריך להשתמש בפורמט הזה כדי להפנות לשם של עמודה:
`<view_name>.<field_name>`
לדוגמה, אם יש ניתוח נתונים מתקדם בשם order_items שמצטרף לתצוגה בשם customer עם תצוגה בשם product, ולשתי התצוגות האלה יש מאפיין id, תצטרכו להתייחס לשני השדות id כאל `customer.id` ו-`product.id`, בהתאמה. כדי להשתמש בשם המלא עם שם הניתוח גם כן, צריך להתייחס לשני השדות כאל `order_items`.`customer.id` ו-`order_items`.`product.id`. (במאמר שימוש בגרשיים הפוכים סביב מזהי מסדי נתונים מוסבר איפה צריך להוסיף את הגרשיים ההפוכים כשמפנים למזהי מסדי נתונים).
הגדרת ממשק Open SQL
כדי להשתמש בממשק Open SQL, מבצעים את השלבים הבאים:
- מוודאים שהחשבון עומד בדרישות.
- מורידים את קובץ מנהל ההתקן של Open SQL Interface JDBC.
בקטעים הבאים מפורטים השלבים האלה.
דרישות
כדי להשתמש בממשק Open SQL, צריך את הרכיבים הבאים:
- האפליקציה של צד שלישי שבה רוצים להשתמש (כמו Tableau, ThoughtSpot או אפליקציה בהתאמה אישית) צריכה להיות מסוגלת להתחבר למכונה של Looker. אפשר להשתמש בממשק Open SQL עם מופעי Looker שמתארחים אצל הלקוח, כל עוד מופע Looker מחובר לרשת באופן שמאפשר לאפליקציית הצד השלישי לגשת למופע Looker.
- פרויקט LookML שמשתמש בנתונים מחיבור ל-Google BigQuery. (בפרויקט LookML צריך להיות קובץ model שמציין חיבור ל-Google BigQuery בפרמטר
connection). - תפקיד משתמש ב-Looker שכולל את ההרשאה
exploreבמודל LookML שאליו רוצים לגשת באמצעות ממשק SQL פתוח.
הורדת מנהל ההתקן של Open SQL Interface JDBC
מנהל ההתקן של Looker Open SQL Interface JDBC נקרא avatica-<release_number>-looker.jar. אפשר להוריד את הגרסה העדכנית מ-GitHub בכתובת https://github.com/looker-open-source/calcite-avatica/releases.
מנהל ההתקן של JDBC מצפה לפורמט כתובת ה-URL הבא:
jdbc:looker:url=https://Looker instance URL
לדוגמה:
jdbc:looker:url=https://myInstance.cloud.looker.com
המחלקות של מנהל ההתקן JDBC הן:
org.apache.calcite.avatica.remote.looker.LookerDriver
אימות לממשק Open SQL
ממשק Open SQL תומך בשלוש שיטות לאימות:
OAuth
אפשר להגדיר לקוחות JDBC שתומכים ב-OAuth כך שישתמשו בשרת OAuth של מופע Looker. פועלים לפי השלבים להגדרת אימות OAuth:
- כדי שמופע Looker יוכל לזהות בקשות OAuth, צריך להשתמש בתוסף API Explorer כדי לרשום את לקוח ה-JDBC OAuth במופע Looker. הוראות מפורטות זמינות במאמר בנושא רישום אפליקציית לקוח OAuth.
- נכנסים ל-Looker באמצעות OAuth כדי לבקש אסימון גישה. דוגמה מופיעה במאמר ביצוע כניסה של משתמש באמצעות OAuth.
- משתמשים באובייקט Properties כדי להעביר את פרטי הכניסה של OAuth כשפותחים את חיבור ה-JDBC לממשק Open SQL.
הנה דוגמה לשימוש ב-DriverManager#getConnection(<String>, <Properties>`):
String access_token = getAccessToken() //uses the Looker OAuth flow to get a token
String URL = "jdbc:looker:url=https://myInstance.cloud.looker.com"
Properties info = new Properties( );
info.put("token", access_token);
Connection conn = DriverManager.getConnection(URL, info);
יצירת אסימון גישה באמצעות מפתחות API
במקום להשתמש בתהליך OAuth הרגיל כדי ליצור טוקן גישה, אתם יכולים לבצע את השלבים הבאים כדי להשתמש ב-Looker API ליצירת טוקן גישה שאפשר להעביר לדרייבר JDBC של Open SQL Interface:
- יוצרים מפתחות API למשתמש Looker כמו שמתואר בדף הגדרות אדמין – משתמשים.
משתמשים בנקודת הקצה של
loginAPI עבור מופע Looker. התשובה כוללת טוקן גישה בפורמטAuthorization: token <access_token>. זוהי דוגמה לפקודת curl שאפשר להשתמש בה כדי לשלוח את הבקשה הזו:curl -k -d "client_id=<client_id>&client_secret=<client_secret>" https://<looker_host>/login\מעבירים את הערך
<access_token>של התגובה כאסימון באובייקט Properties כדי להעביר את פרטי הכניסה של OAuth כשפותחים את חיבור ה-JDBC ל-Open SQL Interface.
מפתחות API
אפשר גם להשתמש במפתחות API לאימות במקום בשם משתמש ובסיסמה. מפתחות API נחשבים פחות מאובטחים מ-OAuth, והם עשויים להיות זמינים רק במהלך התצוגה המקדימה של Open SQL Interface. במאמר מפתחות API מוסבר איך ליצור מפתחות API למופע Looker.
משתמשים בחלק Client ID של מפתח Looker API בתור שם המשתמש. משתמשים בחלק Client Secret (סוד הלקוח) בתור הסיסמה.
הרצת שאילתות באמצעות ממשק SQL פתוח
כשמריצים שאילתות באמצעות Open SQL Interface, חשוב לפעול לפי ההנחיות הבאות:
- ממשק Open SQL מקבל שאילתות SQL שתואמות לתחביר של GoogleSQL.
- בממשק Open SQL צריך להשתמש בגרשיים (`) מסביב למזהים של מודל, Explore ושדה. מידע נוסף ודוגמאות זמינים במאמר בנושא שימוש בגרשיים הפוכים סביב מזהים של מסדי נתונים.
- ממשק Open SQL תומך ברוב האופרטורים של BigQuery.
- בממשק Open SQL, צריך להקיף את המדד (כולל גרשיים הפוכים) בפונקציה המיוחדת
AGGREGATE()כדי לציין את כל המדדים של LookML שנכללים בשאילתה. אפשר לעיין בקטע הגדרת מדדי LookML באמצעותAGGREGATE().
מגבלות על SQL
כששולחים שאילתות לממשק Open SQL, חשוב לשים לב למגבלות הבאות של SQL:
- ממשק Open SQL תומך רק בשאילתות
SELECT. ממשק Open SQL לא תומך בהצהרותUPDATEו-DELETE, או בכל הצהרה אחרת של שפת הגדרת נתונים (DDL), שפת טיפול בנתונים (DML) או שפת בקרת נתונים (DCL). - ממשק Open SQL לא תומך באופרטור
JOIN. - ממשק Open SQL לא תומך בקריאות לפונקציות אנליטיות (window function).
- ממשק Open SQL לא תומך בשאילתות משנה.
- ממשק Open SQL לא תומך בהמרה של אזורי זמן. לשדות התאריך והשעה במודל LookML יהיה הסוג
DATETIMEבאזור הזמן שמוגדר בהגדרות (אזור הזמן של המשתמש, אזור הזמן של האפליקציה או אזור הזמן של מסד הנתונים). - ממשק ה-SQL הפתוח לא תומך בסוגי הנתונים geography, JSON ו-time של BigQuery.
שימוש בגרשיים הפוכים סביב מזהי מסד נתונים
כששולחים שאילתות לממשק Open SQL, צריך להשתמש בגרש הפוך מסביב למזהים של סכימות, טבלאות ועמודות. כך מציינים רכיבים של מסד נתונים באמצעות גרשיים הפוכים עם מונחים של Looker:
- סכימה:
`<model_name>` - טבלה:
`<explore_name>` עמודה:
`<view_name>.<field_name>`
דוגמה לפורמט של הצהרה SELECT באמצעות הרכיבים האלה:
SELECT `view.field`
FROM `model`.`explore`
LIMIT 10;
ציון מדדים של LookML באמצעות AGGREGATE()
טבלאות של מסד נתונים מכילות בדרך כלל רק מאפיינים, נתונים שמתארים מאפיין יחיד לגבי שורה בטבלה. עם זאת, בפרויקטים של LookML אפשר להגדיר גם מאפיינים וגם מדדים. מדד הוא צבירה של נתונים בכמה שורות, כמו SUM, AVG, MIN או MAX. (יש תמיכה גם בסוגים אחרים של מדדים. ברשימה המלאה של סוגי המדדים הנתמכים ב-LookML אפשר לעיין בדף סוגי מדדים).
בממשק Open SQL, צריך להקיף את המדד (כולל גרשיים הפוכים) בפונקציה המיוחדת AGGREGATE() כדי לציין את כל המדדים של LookML שנכללים בשאילתה. לדוגמה, אפשר להשתמש בזה כדי לציין את המדד count מהתצוגה orders:
AGGREGATE(`orders.count`)
חובה להשתמש בפונקציה AGGREGATE() כדי לעטוף מדדים של LookML, בין אם המדד נמצא בסעיף SELECT, בסעיף HAVING או בסעיף ORDER BY.
אם אתם לא בטוחים אם שדה מסוים הוא מדד LookML, אתם יכולים להשתמש בשיטה DatabaseMetaData.getColumns כדי לגשת למטא-נתונים של פרויקט LookML. בעמודה IS_GENERATEDCOLUMN יופיע הערך YES לכל המדדים של LookML, והערך NO לכל המאפיינים של LookML. מידע נוסף זמין בקטע גישה למטא-נתונים של מסד נתונים.
ציון של שדות ופרמטרים של סינון בלבד באמצעות JSON_OBJECT
ממשק SQL פתוח תומך בפרמטרים ובשדות של סינון בלבד.
כשמריצים שאילתות באמצעות Open SQL Interface, אפשר להחיל פרמטרים ושדות סינון בלבד על השאילתה על ידי הכללת קריאה לבונה JSON_OBJECT בפורמט הבא:
JSON_OBJECT(
'<view>.<parameter name>', '<parameter value>',
'<view>.<filter name>', '<Looker filter expression>'
)
אובייקט ה-JSON יכול להכיל אפס או יותר צמדי מפתח-ערך של מסננים ואפס או יותר צמדי מפתח-ערך של פרמטרים.
- המפתח בקונסטרוקטור
JSON_OBJECTחייב להיות השם של שדה או פרמטר לסינון בלבד. - בשדות של סינון בלבד, הערך של כל מפתח צריך להיות ביטוי מסנן מסוג מחרוזת של Looker.
- בפרמטרים, הערך של כל מפתח חייב להיות ערך פשוט שמוגדר בהגדרה
parameter.
בקטעים הבאים מופיעות דוגמאות לשימוש בפרמטרים ובשדות של סינון בלבד באמצעות Open SQL Interface.
דוגמה לפרמטר
כדוגמה לשימוש ב-parameter עם Open SQL Interface, אם בתצוגה customers הוגדר פרמטר ב-Looker באופן הבא:
parameter: segment {
type: string
allowed_value: {
label: "Small (less than 500)"
value: "small_customers"
}
allowed_value: {
label: "Larger (greater than 10,000)"
value: "large_customers"
}
allowed_value: {
label: "Medium customers (Between 500 and 10,000)"
value: "medium_customers"
}
}
אפשר לשלוח את השאילתה הזו לממשק Open SQL כדי להחיל את ערך הפרמטר segment של medium_customers על השאילתה:
SELECT `customers.segment_size`,
AGGREGATE(`orders.total_amount`)
FROM `ecommerce`.`orders`(JSON_OBJECT(
'customers.segment', 'medium_customers'
))
GROUP BY `customers.state`, `customers.city`
HAVING AGGREGATE(`orders.count`) > 10
ORDER BY 3 DESC LIMIT 5;
ממשק SQL פתוח יעביר את ערך הפרמטר הזה לשאילתה ב-Looker, ומערכת Looker תחיל את הערך medium_customers על כל השדות בכלי 'ניתוח נתונים' שהוגדרו לשימוש בפרמטר segment. במאמר parameter מוסבר איך פרמטרים פועלים ב-Looker.
דוגמה לשדה סינון בלבד
אפשר להשתמש בשדה filter עם Open SQL Interface. לדוגמה, אם בתצוגה מפורטת products הוגדרו ב-Looker מאפיין ושדה סינון בלבד באופן הבא:
filter: brand_select {
type: string
}
dimension: brand_comparitor {
sql:
CASE
WHEN {% condition brand_select %} ${products.brand_name} {% endcondition %}
THEN ${products.brand_name}
ELSE "All Other Brands"
END ;;
}
אפשר להשתמש במסנן brand_select עם Open SQL Interface על ידי שליחת שאילתה כמו זו שבהמשך:
SELECT `products.brand_comparator`, `products.number_of_brands`,
AGGREGATE(`products.total_revenue`)
FROM `ecommerce`.`orders`(JSON_OBJECT(
'products.brand_select', '%Santa Cruz%'
))
GROUP BY `products.brand_comparator`
ORDER BY 3 DESC LIMIT 5;
ממשק SQL פתוח יחיל את ביטוי הסינון של מחרוזת Looker %Santa Cruz% על השאילתה ב-Looker. במאמר בנושא filter מוסבר איך שדות של סינון בלבד פועלים ב-Looker.
צריך לספק ערכים של always_filter או conditionally_filter בפסוקית WHERE או HAVING
ממשק Open SQL יכול לתמוך בניתוח נתונים עם always_filter או conditionally_filter, אבל לא עם שניהם.
אם הגדרתם את ה-Explore של LookML באמצעות always_filter או conditionally_filter, אתם צריכים להעביר ערכים לשדות המסנן בשאילתת ה-SQL כדי לפתוח את ממשק ה-SQL:
- אם הגדרת המסנן מציינת מאפיין אחד או יותר, צריך לכלול פסקה
WHEREבשאילתת ה-SQL לכל אחד מהמאפיינים של המסנן. - אם בהגדרת המסנן מצוין מדד אחד או יותר, צריך לכלול פסקה
HAVINGבשאילתת ה-SQL לכל אחד ממדדי המסנן.
לדוגמה, יש מודל faa שבו הגדרתם ניתוח LookML flights עם פרמטר always_filter שמציין את המאפיינים country ו-aircraft_category ואת המדד count, באופן הבא:
explore: flights {
view_name: flights
always_filter: {
filters: [country : "Peru" , aircraft_category : "Airplane", count : ">1"]
}
}
בשילוב עם שאילתה לממשק Open SQL, צריך להשתמש בסעיף WHERE כדי להעביר ערכים למאפייני המסנן, ובסעיף HAVING כדי להעביר ערך למסנן המדד למודל LookML, כמו בדוגמה הבאה:
SELECT
`flights.make`
FROM
`faa`.`flights`
WHERE `flights.country` = 'Ecuador' AND `flights.aircraft_category` = 'Airplane'
GROUP BY
1
HAVING `flights.count` > 2)
LIMIT 5
אם לא מעבירים ערכי מסננים לכל אחד מהמאפיינים והמדדים שצוינו בפרמטר always_filter, השאילתה תחזיר שגיאה. אותו עיקרון חל על מאפיינים ומדדים שצוינו בפרמטר conditionally_filter, אלא שאפשר להגדיר פרמטר conditionally_filter עם תת-פרמטר unless, כמו בדוגמה הבאה:
explore: flights {
view_name: flights
conditionally_filter: {
filters: [country : "Peru" , aircraft_category : "Airplane"]
unless: [count]
}
}
במקרה כזה, עליך לקבוע ערך מסנן לכל אחד מהמאפיינים והמדדים שצוינו בתת-הפרמטר filters של conditionally_filter, אלא אם כן אתה מציין מסנן בשדה בתת-הפרמטר unless. (פרטים על השימוש בתת-פרמטר unless מופיעים בדף התיעוד של conditionally_filter).
לדוגמה, כל אחת מהשאילתות הבאות לממשק Open SQL תתקבל. השאילתה הראשונה מספקת ערכי מסנן לשדות שצוינו בפרמטר המשני filters, והשאילתה השנייה מספקת ערך מסנן לשדה שצוין בפרמטר המשני unless:
SELECT
`flights.make`
FROM
`faa`.`flights`
WHERE `flights.country` = 'Ecuador' AND `flights.aircraft_category` = 'Airplane'
LIMIT 5
SELECT
`flights.make`
FROM
`faa`.`flights`
GROUP BY
1
HAVING `flights.count` > 2
דוגמה
הנה דוגמה לשאילתה שמשתמשת גם במאפיינים וגם במדדים. השאילתה הזו מאחזרת את המאפיינים state ו-city מהתצוגה customers ואת המדד total amount מהתצוגה orders. שני התצוגות האלה מצורפות ל-Explore orders במודל ecommerce. לערים שבהן יש יותר מ-10 הזמנות, התשובה לשאילתה הזו מציגה את 5 הערים המובילות לפי סכום ההזמנה:
SELECT `customers.state`, `customers.city`,
AGGREGATE(`orders.total_amount`)
FROM `ecommerce`.`orders`
GROUP BY `customers.state`, `customers.city`
HAVING AGGREGATE(`orders.count`) > 10
ORDER BY 3 DESC LIMIT 5;
גישה למטא-נתונים של מסד נתונים
ממשק Open SQL תומך בקבוצת משנה של ממשק DatabaseMetaData של JDBC סטנדרטי, שמשמש לקבלת מידע על מסד הנתונים הבסיסי. אפשר להשתמש בשיטות הבאות של ממשק DatabaseMetaData כדי לקבל מידע על מודל LookML:
האפשרות 'פתיחת ממשק SQL' מחזירה תוצאות רק למודלים, לניתוחים ולשדות שיש לכם גישה אליהם.
DatabaseMetadata.getSchemas
בטבלה הבאה מוסבר איך מודל LookML קשור למבני מסד הנתונים הסטנדרטיים בתגובה של שיטת הממשק DatabaseMetadata.getSchemas.
עמודת תגובה אחת (getSchemas) |
תיאור |
|---|---|
TABLE_SCHEM |
שם המודל ב-LookML |
TABLE_CATALOG |
(null) |
DatabaseMetadata.getTables
בטבלה הבאה מוסבר איך מודל LookML קשור למבני מסד הנתונים בתגובה של שיטת הממשק DatabaseMetaData.getTables. התגובה כוללת מטא-נתונים סטנדרטיים של JDBC וגם מטא-נתונים ספציפיים ל-Looker:
עמודת תגובה אחת (getTables) |
תיאור |
|---|---|
| מטא-נתונים סטנדרטיים של JDBC | |
TABLE_CAT |
(null) |
TABLE_SCHEM |
שם המודל ב-LookML |
TABLE_NAME |
שם ב-LookML Explore |
TABLE_TYPE |
הפונקציה תמיד מחזירה את הערך TABLE_TYPE |
REMARKS |
(null) |
TYPE_CAT |
(null) |
TYPE_SCHEM |
(null) |
TYPE_NAME |
מחרוזת שמייצגת את סוג הטבלה. הסוגים האפשריים הם TABLE, VIEW, SYSTEM TABLE, GLOBAL TEMPORARY, LOCAL TEMPORARY, ALIAS ו-SYNONYM. |
SELF_REFERENCING_COL_NAME |
(null) |
REF_GENERATION |
(null) |
| מטא-נתונים ספציפיים ל-Looker | |
DESCRIPTION |
תיאור |
LABEL |
תווית |
TAGS |
תגים |
CONDITIONALLY_FILTER_UNLESS |
רשימת השדות בפרמטר המשנה unless של הפרמטר conditionally_filter של כלי הניתוחים. אם לא צוינו שדות בפרמטר המשנה unless, או אם לא הוגדר פרמטר conditionally_filter לדוח, הערך הזה הוא null. |
DatabaseMetadata.getColumns
בטבלה הבאה מוסבר איך מודל LookML קשור למבני מסד הנתונים בתגובה של שיטת הממשק DatabaseMetaData.getColumns. התגובה כוללת מטא-נתונים סטנדרטיים של JDBC וגם מטא-נתונים ספציפיים ל-Looker:
עמודת תגובה אחת (getColumns) |
תיאור |
|---|---|
| מטא-נתונים סטנדרטיים של JDBC | |
TABLE_CAT |
(null) |
TABLE_SCHEM |
שם המודל ב-LookML |
TABLE_NAME |
שם הניתוח ב-LookML |
COLUMN_NAME |
שם השדה ב-LookML בפורמט `<view_name>.<field_name>`. לדוגמה, `orders.amount`. |
DATA_TYPE |
קוד java.sql.Types של העמודה. לדוגמה, שדות של Looker yesno הם קוד מסוג SQL 16 (BOOLEAN). |
TYPE_NAME |
מחרוזת שמייצגת את סוג הנתונים של העמודה. עבור סוג שהמשתמש מגדיר (UDT), שם הסוג מוגדר במלואו. |
COLUMN_SIZE |
מספר שלם שמייצג את המספר המקסימלי של תווים או בייטים שאפשר לאחסן בעמודה. |
BUFFER_LENGTH |
(null) |
DECIMAL_DIGITS |
מספר שלם שמייצג את קנה המידה של הנתונים: מספר הספרות משמאל לנקודה העשרונית, עבור סוגי נתונים רלוונטיים, או מספר הספרות השבריות. הערך Null מוחזר עבור סוגי נתונים שבהם DECIMAL_DIGITS לא רלוונטי. |
NUM_PREC_RADIX |
מספר שלם שמייצג את הבסיס (radix) של הנתונים (בדרך כלל 10 או 2). |
NULLABLE |
מספר שלם שמציין אם מותרים ערכי null:
|
REMARKS |
(null) |
COLUMN_DEF |
(null) |
SQL_DATA_TYPE |
(null) |
SQL_DATETIME_SUB |
(null) |
CHAR_OCTET_LENGTH |
לסוגי נתונים של תווים, מספר שלם שמייצג את המספר המקסימלי של בייטים בעמודה. |
ORDINAL_POSITION |
המספר הסידורי של השדה ב-Explore (המאפיינים והמדדים מעורבבים יחד בסדר אלפביתי לפי שם התצוגה, ואז לפי שם השדה) |
IS_NULLABLE |
הפונקציה תמיד מחזירה את הערך YES |
SCOPE_CATALOG |
(null) |
SCOPE_SCHEMA |
(null) |
SCOPE_TABLE |
(null) |
SOURCE_DATA_TYPE |
(null) |
IS_AUTOINCREMENT |
(null) |
IS_GENERATEDCOLUMN |
YES למדדים, NO למאפיינים |
| מטא-נתונים ספציפיים ל-Looker | |
DIMENSION_GROUP |
השם של קבוצת המאפיינים אם השדה הוא חלק מקבוצת מאפיינים. אם השדה לא שייך לקבוצת מאפיינים, הערך הזה הוא null. |
DRILL_FIELDS |
רשימה של שדות פירוט שהוגדרו למאפיין או למדד, אם יש כאלה |
FIELD_ALIAS |
כינוי לשדה, אם יש |
FIELD_CATEGORY |
האם השדה הוא dimension או measure |
FIELD_DESCRIPTION |
השדה description |
FIELD_GROUP_VARIANT |
אם השדה מוצג מתחת לתווית קבוצת שדות, התו FIELD_GROUP_VARIANT יציין את השם הקצר יותר של השדה שמוצג מתחת לתווית הקבוצה. |
FIELD_LABEL |
שדה label |
FIELD_NAME |
שם המאפיין או המדד |
LOOKER_TYPE |
סוג השדה LookML של המאפיין או המדד |
REQUIRES_REFRESH_ON_SORT |
האם צריך לרענן את שאילתת ה-SQL כדי למיין מחדש את הערכים בשדה (TRUE), או שאפשר למיין מחדש את הערכים בשדה בלי לרענן את שאילתת ה-SQL (FALSE). |
SORTABLE |
האם אפשר למיין את השדה (TRUE) או אי אפשר למיין אותו (FALSE) |
TAGS |
השדה tags |
USE_STRICT_VALUE_FORMAT |
האם השדה משתמש בפורמט ערך מדויק (TRUE) או לא (FALSE) |
VALUE_FORMAT |
מחרוזת Value format בשדה |
VIEW_LABEL |
הצגת התווית של השדה |
VIEW_NAME |
השם של התצוגה המפורטת שבה השדה מוגדר בפרויקט של LookML |
HIDDEN |
האם השדה מוסתר בבורר השדות ב-Explores (TRUE), או שהשדה גלוי בבורר השדות ב-Explores (FALSE). |
ALWAYS_FILTER |
ערך ברירת המחדל של הפרמטר always_filter שמוגדר בשדה. אם השדה לא שייך לפרמטר always_filter, הערך שלו הוא null. |
CONDITIONALLY_FILTER |
ערך ברירת המחדל של הפרמטר conditionally_filter שמוגדר בשדה. אם השדה לא שייך לפרמטר conditionally_filter, הערך שלו הוא null. |
זיהוי שאילתות של Open SQL Interface בממשק המשתמש של Looker
אדמינים ב-Looker יכולים להשתמש בממשק המשתמש של Looker כדי לזהות אילו שאילתות נוצרו מממשק ה-SQL הפתוח:
- בדף הניהול Queries, השאילתות מממשק ה-SQL הפתוח מקבלות את הערך SQL Interface בSource. הערך User יציג את השם של משתמש Looker שהריץ את השאילתה. כדי להציג מידע נוסף על שאילתה, אפשר ללחוץ על הלחצן פרטים של השאילתה. בתיבת הדו-שיח פרטים, אפשר ללחוץ על שאילתת ממשק SQL כדי לראות את שאילתת ה-SQL שנשלחה אל Looker מממשק ה-SQL הפתוח.
בניתוח של היסטוריית פעילות המערכת, לשאילתות מממשק ה-SQL הפתוח יש ערך מקור של sql_interface. הערך של User Email יציג את כתובת האימייל של משתמש Looker שהריץ את השאילתה. אפשר לעבור ישירות להיסטוריה ולסנן לפי sql_interface על ידי הוספת כתובת מופע Looker לתחילת כתובת ה-URL הזו:
https://Looker instance URL/explore/system__activity/history?fields=history.source,history.completed_date&f[history.source]=%22sql_interface%22
מאגר תלויות של צד שלישי
הקישור הבא מספק גישה למאגר שמתארח ב-Google לתלות של צד שלישי שמשמשת את מנהל ההתקנים של Looker JDBC:
https://third-party-mirror.googlesource.com/looker_sql_interface/+/refs/heads/master/third_party/