בדף הזה מוסבר איך לקשר את Looker אל PrestoDB או אל Trino.
הצפנה של תנועה ברשת
מומלץ להצפין את תעבורת הנתונים ברשת בין אפליקציית Looker לבין מסד הנתונים. כדאי לשקול אחת מהאפשרויות שמתוארות בדף הפעלת גישה מאובטחת למסד נתונים.
יצירת חיבור Looker למסד הנתונים
בקטע Admin (ניהול) ב-Looker, בוחרים באפשרות Connections (חיבורים) ואז לוחצים על Add Connection (הוספת חיבור).
ממלאים את פרטי החיבור. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. מידע נוסף זמין בדף חיבור Looker למסד הנתונים. בהמשך מפורטות חלק מההגדרות:
Dialect (ניב): בוחרים באפשרות PrestoDB או Trino.
המותג PrestoSQL עבר מיתוג מחדש כ-Trino. אם אתם משתמשים בגרסה של Trino שקודמת לגרסה 352, בוחרים באפשרות PrestoSQL בתפריט הדיאלקט של Looker.
מארח: שם המארח של מסד הנתונים.
יציאה: היציאה של מסד הנתונים. יציאת ברירת המחדל היא 8080.
מסד נתונים: 'קטלוג' או 'מחבר', במונחים של Presto.
שם משתמש: שם המשתמש של המשתמש שיריץ שאילתות.
המידע הזה נשלח לשרת מסד הנתונים רק אם SSL מופעל.
סיסמה: הסיסמה של המשתמש שיריץ את השאילתות.
המידע הזה נשלח לשרת מסד הנתונים רק אם SSL מופעל.
סכימה: סכימת ברירת המחדל לשימוש כשלא מצוינת סכימה.
אימות: בוחרים באפשרות חשבון מסד נתונים או OAuth:
- בקטע Database Account (חשבון מסד נתונים) מציינים את Username (שם משתמש) ו-Password (סיסמה) של חשבון המשתמש במסד הנתונים שישמש להתחברות ל-Looker.
- אם רוצים להגדיר OAuth לחיבור, צריך להשתמש ב-OAuth.
הפעלת PDTs: משתמשים במתג הזה כדי להפעיל טבלאות נגזרות קבועות (PDTs). יוצגו שדות PDT נוספים והקטע PDT Overrides (שינויים ב-PDT) של החיבור.
מסד נתונים זמני: הסכימה לכתיבת PDT. (בגרסה 3.50 נוספה תמיכה ב-PDT ל-Presto. מידע נוסף על הגדרת Presto לתמיכה ב-PDT זמין בקטע הגדרת PrestoDB או Trino ל-PDT בדף הזה.
פרמטרים נוספים של JDBC: מוסיפים פרמטרים נוספים של JDBC. רשימת הפרמטרים ש-Looker תומך בהם מופיעה בקטע פרמטרים נתמכים של JDBC בדף הזה. מידע נוסף זמין במסמכי התיעוד של מנהל התקן JDBC של PrestoDB, מנהל התקן JDBC של Trino או מנהל התקן JDBC של Starburst.
SSL: מסמנים את התיבה כדי להפעיל חיבורי SSL.
אימות SSL: אפשר להתעלם מהשדה הזה. כל חיבורי ה-SSL ישתמשו ב-Java Truststore שמוגדר כברירת מחדל, אלא אם מציינים אחרת באמצעות פרמטרים של PrestoDB JDBC, Trino JDBC driver או Starburst JDBC driver. מזינים את הפרמטרים האלה בשדה Additional JDBC parameters (פרמטרים נוספים של JDBC).
כדי לוודא שהחיבור בוצע בהצלחה, לוחצים על בדיקה. מידע לפתרון בעיות זמין בדף בנושא בדיקת הקישוריות למסד הנתונים.
כדי לשמור את ההגדרות האלה, לוחצים על Connect (חיבור).
מידע נוסף על הגדרות החיבור זמין בדף התיעוד בנושא חיבור Looker למסד הנתונים.
הגדרת PDT ב-PrestoDB או ב-Trino
אין תמיכה ב-PDT בחיבורים שמשתמשים ב-OAuth.
התמיכה ב-PDT תלויה במחבר שבו אתם משתמשים עם PrestoDB או Trino . בקטע הזה מוסבר על הגדרות התצורה הנדרשות למסד נתונים זמני. בדוגמה הזו ההנחה היא שהמחבר שבו אתם משתמשים הוא hive.
קובץ המאפיינים של קטלוג Hive צריך לכלול כמה מאפייני הגדרה, שמתוארים בקטע הזה.
הדרישה הבאה נחוצה כי Presto שומר במטמון את התוצאות של Hive metastore, ו-Looker צריך להיות מסוגל לראות את הטבלאות באופן מיידי:
hive.metastore-cache-ttl = 0s
שני המאפיינים האלה נדרשים כי Looker צריך להיות מסוגל להשליך ולשנות את השם של טבלאות PDT:
hive.allow-rename-table=true
hive.allow-drop-table=true
לעיון, בשרתי הבדיקה הפנימיים של Presto אנחנו משתמשים בקובץ hive.properties הבא, שמשמש לכל סכימות Hive:
hive.s3.connect-timeout=1m
hive.s3.max-backoff-time=10m
hive.s3.max-error-retries=50
hive.metastore-cache-ttl = 0s
hive.metastore-refresh-interval = 5s
hive.s3.max-connections=500
hive.s3.max-client-retries=50
connector.name=hive-hadoop2
hive.s3.socket-timeout=2m
hive.s3.staging-directory=/mnt/tmp/
hive.s3.use-instance-credentials=true
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
hive.parquet.use-column-names=true
hive.allow-drop-table=true
hive.metastore.uri=thrift://<metastore-server>:9083
hive.storage-format=ORC
hive.allow-rename-table=true
הגדרת OAuth לחיבורים ל-Trino
Looker תומך ב-OAuth לחיבורים ל-Trino, כלומר כל משתמש Looker עובר אימות במסד הנתונים ומאשר ל-Looker להריץ שאילתות במסד הנתונים באמצעות חשבון המשתמש שלו ב-OAuth.
פרוטוקול OAuth מאפשר לאדמינים של מסדי נתונים לבצע את המשימות הבאות:
- ביקורת של משתמשי Looker שמריצים שאילתות על מסד הנתונים
- אכיפת בקרות גישה מבוססות-תפקידים באמצעות הרשאות ברמת מסד הנתונים
- שימוש באסימוני OAuth לכל התהליכים והפעולות שדורשים גישה למסד הנתונים, במקום להטמיע מזהים וסיסמאות של מסד הנתונים בכמה מקומות
- ביטול ההרשאה של משתמש מסוים ישירות דרך מסד הנתונים
בחיבורים ל-Trino שמשתמשים ב-OAuth, המשתמשים צריכים להיכנס שוב מדי פעם כשהטוקנים של OAuth פוקעים.
חשוב לשים לב לנקודות הבאות לגבי חיבורי OAuth ברמת מסד הנתונים:
- אם תוקף הטוקן של משתמש מסוג OAuth יפוג, זה ישפיע על כל התזמונים או ההתראות שבבעלותו. כדי למנוע את זה, מערכת Looker תשלח אימייל התראה לבעלים של כל תזמון ושל כל התראה לפני שתוקף אסימון ה-OAuth הפעיל הנוכחי יפוג. מערכת Looker תשלח את התראות האימייל האלה 14 ימים, 7 ימים ויום אחד לפני שתוקף האסימון יפוג. המשתמש יכול להיכנס לדף המשתמש שלו ב-Looker כדי לתת מחדש הרשאה ל-Looker לגשת למסד הנתונים, וכך למנוע שיבושים בלוחות הזמנים ובהתראות שלו. פרטים נוספים זמינים במאמר התאמה אישית של הגדרות חשבון משתמש.
- חיבורים למסדי נתונים שמשתמשים ב-OAuth הם 'לכל משתמש', ולכן גם מדיניות הקאשינג היא לכל משתמש ולא רק לכל שאילתה. כלומר, במקום להשתמש בתוצאות שמורות במטמון בכל פעם שאותה שאילתה מופעלת במהלך תקופת השמירה במטמון, Looker ישתמש בתוצאות שמורות במטמון רק אם אותו משתמש הפעיל את אותה שאילתה במהלך תקופת השמירה במטמון. מידע נוסף על שמירה במטמון זמין בדף התיעוד בנושא שמירת שאילתות במטמון.
- אין תמיכה בטבלאות נגזרות קבועות (PDT) בחיבורי Trino עם OAuth.
- כשמשתמש אדמין ב-Looker מבצע פעולת sudo בתור משתמש אחר, הוא משתמש באסימון הגישה של המשתמש הזה מסוג OAuth. אם תוקף אסימון הגישה של המשתמש פג, האדמין לא יכול ליצור אסימון חדש בשם המשתמש עם הרשאות הסודו. מידע על השימוש בפקודה
sudoמופיע בדף משתמשים. - כשנכנסים ל-Azure AD מ-Looker באמצעות OAuth, Looker לא מציג תיבת דו-שיח להבעת הסכמה מהמשתמש. כשמגדירים OAuth עם Looker, אתם נותנים הסכמה משתמעת למכונה של Looker לגשת לנתוני Trino שלכם.
רישום אפליקציה
כדי להפעיל את OAuth ב-Trino, קודם צריך לרשום אפליקציה באמצעות ספק זהויות נתמך. Looker תומך ב-Microsoft Entra ID (לשעבר Azure AD) רק עבור OAuth עם Trino.
דרישות מוקדמות
- צריך להיות לכם מינוי ל-Azure.
- צריכות להיות לכם הרשאות אדמין ב-Microsoft Entra ID.
כדי לרשום אפליקציה:
- עוברים אל Azure Portal ונכנסים באמצעות פרטי הכניסה.
- בסרגל החיפוש של Azure Portal, מחפשים את האפשרות Microsoft Entra ID ובוחרים אותה מתוך התוצאות.
- בשירות Microsoft Entra ID, לוחצים על New registration (רישום חדש) בקטע App registrations (רישומי אפליקציות) בקטגוריה Manage (ניהול).
- ממלאים את טופס ההרשמה באופן הבא:
- שם: נותנים לאפליקציה שם תיאורי, כמו
Looker Trino Connection. - Supported account types (סוגי חשבונות נתמכים): בוחרים את האפשרות המתאימה בהתאם לאופן שבו רוצים להגביל את הגישה. למקרה שימוש פנימי, אפשר לבחור באפשרות חשבונות רק בספרייה הארגונית הזו.
- Redirect URI: בוחרים בפלטפורמת Web ומזינים את כתובת ה-URI להפניה אוטומטית של Looker. הוא אמור להיראות כך:
https://YOUR_LOOKER_HOSTNAME/external_oath/redirect
- שם: נותנים לאפליקציה שם תיאורי, כמו
- לוחצים על הרשמה.
- אוספים את מזהה הלקוח, מזהה הדייר וסוד הלקוח כדי להזין אותם בהמשך בחיבור ל-Looker.
- אפשר למצוא את מזהה הלקוח ואת מזהה הדייר בדף סקירה כללית.
- אם אתם לא יודעים מהו הסוד של הלקוח, תצטרכו ליצור סוד חדש. בקטע Manage, לוחצים על Certificates & secrets ואז על New client secret.
- בקטע Manage (ניהול), לוחצים על Expose an API (חשיפת API).
- לצד Application ID URI (מזהה האפליקציה URI), לוחצים על Add (הוספה).
- מזינים את מזהה הלקוח. הפורמט הנדרש הוא:
api://CLIENT_ID.
לאחר מכן, פועלים לפי השלבים הבאים ב-Azure Portal כדי ליצור היקף חדש לשימוש עם Looker:
- בקטע Scopes defined by this API (היקפי גישה שהוגדרו על ידי ה-API הזה), לוחצים על Add a scope (הוספת היקף גישה).
מוסיפים שם היקף להיקף החדש. ב-Looker מצפים ששם ההיקף יהיה:
TrinoUsers.Read.All.השם
TrinoUsers.Read.Allמרמז על הרשאות לקריאה בלבד, אבל השם עצמו לא מגדיר או אוכף הרשאות כלשהן. חשוב לוודא שהגדרתם את ההיקף כך שתהיה גישת קריאה בלבד למסד הנתונים.מוסיפים שם מוצג ותיאור.
בתפריט הבחירה מי יכול להביע הסכמה?, בוחרים באפשרות אדמינים ומשתמשים.
לוחצים על הוספת היקף.
בקטע Authorized client applications (אפליקציות לקוח מורשות), לוחצים על Add a client application (הוספת אפליקציית לקוח).
מזינים את מזהה הלקוח ואת ההיקף החדש שיצרתם.
לוחצים על הוספת אפליקציה.
כדי להעניק ל-Looker את הרשאות ה-API הנדרשות, פועלים לפי השלבים הבאים:
- בקטע Manage (ניהול), לוחצים על API Permissions (הרשאות API).
- לוחצים על הוספת הרשאה.
- בחלק העליון, לוחצים על הכרטיסייה My APIs (ממשקי ה-API שלי).
- ברשימת רישומי האפליקציות, בוחרים את הרישום שיצרתם, למשל
Looker Trino Connection. - מסמנים את תיבת הסימון הענקת הרשאות.
- מסמנים את תיבת הסימון TrinoUsers.Read.All.
- לוחצים על הוספת הרשאה.
הגדרת מסד הנתונים לשימוש ב-OAuth
לאחר מכן, כדי להגדיר את מסד הנתונים של Trino לשימוש ב-OAuth, מוסיפים את השורות הבאות לקובץ config.properties של Trino. (מחליפים את חמש השורות הראשונות של משתנים באותיות רישיות בערכים משלכם).
YOUR_HTTPS_PORTPATH_TO_YOUR_SSL_CERTIFICATEYOUR_TENANT_IDYOUR_CLIENT_IDYOUR_SHARED_SECRET
# enable SSL for OAuth
http-server.https.enabled=true
http-server.https.port=YOUR_HTTPS_PORT
http-server.https.keystore.path=PATH_TO_YOUR_SSL_CERTIFICATE
# enable OAuth 2.0
http-server.authentication.type=oauth2
http-server.authentication.oauth2.issuer=https://sts.windows.net/YOUR_TENANT_ID/
http-server.authentication.oauth2.client-id=NA_required_but_not_used
http-server.authentication.oauth2.client-secret=NA_required_but_not_used
# turn off oidc discovery - Trino will inspect tokens locally instead
http-server.authentication.oauth2.oidc.discovery=false
# URLs that Trino requires for OAuth
http-server.authentication.oauth2.jwks-url=https://login.microsoftonline.com/common/discovery/v2.0/keys
http-server.authentication.oauth2.auth-url=NA_required_but_not_used
http-server.authentication.oauth2.token-url=NA_required_but_not_used
# add audience that matches the Azure AD's Application ID URI
http-server.authentication.oauth2.additional-audiences=api://YOUR_CLIENT_ID
# set shared-secret required for internal Trino communication when authentication is enabled, see: https://github.com/trinodb/trino/issues/12397
# can be generated with the following Linux command: openssl rand 512 | base64
internal-communication.shared-secret=YOUR_SHARED_SECRET
# optionally, allow some insecure http traffic
# http-server.authentication.allow-insecure-over-http=true
כניסה לחשבון כדי להריץ שאילתות
אחרי שמגדירים את חיבור מסד הנתונים לשימוש ב-OAuth, המשתמשים מתבקשים להיכנס ל-Microsoft Entra ID לפני שמריצים שאילתות. הנתונים האלה כוללים שאילתות מ'ניתוחים', מלוחות בקרה, מ'תצוגות' ומ-SQL Runner.
המשתמשים יכולים גם להיכנס ל-Microsoft Entra ID מהקטע OAuth Connection Credentials בדף Account.
כדי להיכנס ל-Microsoft Entra ID באמצעות Looker:
- לוחצים על תפריט המשתמש ב-Looker.
- לוחצים על חשבון.
- בדף חשבון, לוחצים על כניסה בקטע פרטי כניסה לחיבור OAuth.
בפעולה הזו תוצג תיבת דו-שיח להתחברות. מזינים את פרטי הכניסה ל-Microsoft Entra ID ולוחצים על Log In כדי לתת ל-Looker גישה לחשבון מסד הנתונים.
אחרי שנכנסים ל-Microsoft Entra ID דרך Looker, אפשר להתנתק או לאשר מחדש את פרטי הכניסה בכל שלב דרך הדף Account, כמו שמתואר בדף התיעוד Personalizing your user account.
חומרי עזר
מידע נוסף על הגדרת מחבר Hive זמין במאמרים PrestoDB Hive Connector, Trino Hive Connector או Starburst Hive Connector.
פרמטרים נתמכים של JDBC
בקטעים הבאים מפורטת רשימה של פרמטרים של JDBC שמותרים לכל דיאלקט:
פרמטרים של PrestoDB JDBC
ב-PrestoDB, Looker תומך בפרמטרים הבאים של JDBC בשדה Additional JDBC parameters (פרמטרים נוספים של JDBC) בחיבור. מידע על הפרמטרים האלה זמין במסמכי התיעוד של מסד הנתונים.
accessTokenapplicationNamePrefixcustomHeadersextraCredentialshttpProxyKerberosPrincipalKerberosRemoteServiceNameKerberosUseCanonicalHostnamepasswordprotocolsSessionPropertiessocksProxySSLSSLTrustStorePassworduser
פרמטרים של Trino JDBC
ב-Trino, Looker תומך בפרמטרים הבאים של JDBC בשדה Additional JDBC parameters (פרמטרים נוספים של JDBC) בחיבור. מידע על הפרמטרים האלה זמין במסמכי התיעוד של מסד הנתונים.
accessTokenapplicationNamePrefixclientInfoclientTagsdisableCompressionencodingexplicitPrepareexternalAuthenticationextraCredentialshttpProxyKerberosPrincipalKerberosRemoteServiceNameKerberosUseCanonicalHostnamepasswordrolessessionPropertiessessionUsersocksProxysourceSSLSSLKeyStoreTypeSSLTrustStorePasswordSSLTrustStoreTypeSSLVerificationtraceTokenuser
תמיכה בתכונות
כדי ש-Looker יתמוך בתכונות מסוימות, הדיאלקט של מסד הנתונים שלכם צריך לתמוך בהן גם כן.
התכונות הבאות נתמכות ב-PrestoDB החל מ-Looker 26.10:
| תכונה | האם יש תמיכה? |
|---|---|
| Looker (Google Cloud core) | |
| צבירה סימטרית | |
| טבלאות נגזרות | |
| טבלאות נגזרות מתמידות שמבוססות על SQL | |
| טבלאות נגזרות מתמידות מבוססות LookML | |
| תצוגות יציבות | |
| ביטול שאילתה | |
| טבלאות ציר שמבוססות על SQL | |
| אזורי זמן | |
| SSL | |
| סכומי ביניים | |
| פרמטרים נוספים של JDBC | |
| תלוי אותיות רישיות | |
| סוג מיקום | |
| סוג הרשימה | |
| מאון | |
| אחוזון נפרד | |
| SQL Runner Show Processes | |
| SQL Runner Describe Table | |
| SQL Runner Show Indexes | |
| SQL Runner Select 10 | |
| מספר הפעמים שהופעל SQL Runner | |
| SQL Explain | |
| פרטי כניסה של OAuth 2.0 | |
| תגובות להוספת הקשר | |
| איגום חיבורים | |
| רישומים מסוג HLL | |
| מודעות מצטברת | |
| המרות מצטברות של PDT | |
| אלפיות שנייה | |
| מיקרו-שניות | |
| תצוגות מהותיות | |
| מדדים של השוואה בין תקופות שונות | |
| ספירה משוערת של ערכים ייחודיים | |
| מודלים אנליטיים בתוך מסד הנתונים | |
| יומנים בהתאמה אישית |
התכונות הבאות נתמכות ב-Trino החל מ-Looker 26.10:
| תכונה | האם יש תמיכה? |
|---|---|
| Looker (Google Cloud core) | |
| צבירה סימטרית | |
| טבלאות נגזרות | |
| טבלאות נגזרות מתמידות שמבוססות על SQL | |
| טבלאות נגזרות מתמידות מבוססות LookML | |
| תצוגות יציבות | |
| ביטול שאילתה | |
| טבלאות ציר שמבוססות על SQL | |
| אזורי זמן | |
| SSL | |
| סכומי ביניים | |
| פרמטרים נוספים של JDBC | |
| תלוי אותיות רישיות | |
| סוג מיקום | |
| סוג הרשימה | |
| מאון | |
| אחוזון נפרד | |
| SQL Runner Show Processes | |
| SQL Runner Describe Table | |
| SQL Runner Show Indexes | |
| SQL Runner Select 10 | |
| מספר הפעמים שהופעל SQL Runner | |
| SQL Explain | |
| פרטי כניסה של OAuth 2.0 | |
| תגובות להוספת הקשר | |
| איגום חיבורים | |
| רישומים מסוג HLL | |
| מודעות מצטברת | |
| המרות מצטברות של PDT | |
| אלפיות שנייה | |
| מיקרו-שניות | |
| תצוגות מהותיות | |
| מדדים של השוואה בין תקופות שונות | |
| ספירה משוערת של ערכים ייחודיים | |
| מודלים אנליטיים בתוך מסד הנתונים | |
| יומנים בהתאמה אישית |
השלבים הבאים
אחרי שמקשרים את מסד הנתונים ל-Looker, צריך להגדיר את אפשרויות הכניסה למשתמשים.