כדי לשלוח שאילתות לגבי הנתונים, צריך לחבר את המכונה של Looker (Google Cloud core) למסד נתונים. במדריך הזה מוסבר איך להשתמש בניבים נתמכים ולהגדיר אפשרויות חיבור ספציפיות.
במכונות שמשתמשות בחיבורים פרטיים, יכול להיות שתצטרכו לבצע הגדרות נוספות כדי לגשת למסדי נתונים. ההגדרה הספציפית תלויה בהגדרת הרשת של המכונה של Looker (Google Cloud core) שאיתה אתם עובדים.
הגדרת חיבור למסד נתונים
כדי לאפשר חקירת נתונים, צריך לחבר את Looker (Google Cloud core) למסד נתונים. ברשימת הניבים הנתמכים מפורטים הניבים שנתמכים ב-Looker (Google Cloud core).
אתם יכולים ליצור חיבור למסד נתונים בתוך מכונה של Looker (Google Cloud core) אם יש לכם אחת מההרשאות הבאות:
כדי לחבר את מסד הנתונים, אתם יכולים לפעול לפי המדריך הגדרת Looker שמופיע באופן דינמי במכונה של Looker (Google Cloud core), או לפי השלבים שמפורטים בדפי התיעוד הספציפיים לניב. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. בדף התיעוד קישור Looker למסד הנתונים מפורט מידע על שדות נפוצים בחלון הגדרת החיבור של Looker.
אם אתם רוצים להגדיר את החיבור של Looker (Google Cloud core) עם אחת מהאפשרויות הבאות, יש שלבים נוספים:
חיבורים פרטיים: אם במכונה של Looker (Google Cloud core) משתמשים בחיבורים פרטיים, צריך להגדיר Private Service Connect או גישה לשירותים פרטיים (בהתאם לסוג החיבור שבו משתמשים במכונה) כדי לחבר אותה לכל אחד מסוגי מסדי הנתונים הבאים:
- מסד נתונים ברשת אחרת ב- Google Cloud
- מסד נתונים שמתארח אצל ספק שירותי ענן אחר
- מסד נתונים מקומי
כדי להגדיר חיבור פרטי למסדי נתונים שמתארחים אצל ספקי שירותי ענן אחרים, ודאו שהפרויקט ב- Google Cloud מוגדר לנתב את התנועה לספקי שירותי הענן האלה כדי לאפשר חילופי נתונים. מידע נוסף על חיבור סביבות ענן זמין בדף התיעוד דפוסים לחיבור ספקי שירותי ענן אחרים אל Google Cloud.
אימות באמצעות Application Default Credentials למסדי נתונים של BigQuery ו-Cloud SQL: מכונות של Looker (Google Cloud core) יכולות להשתמש ב-Application Default Credentials (ADC) כדי לאמת את מסד הנתונים, כפי שמתואר בקטעים הבאים:
אימות למסד נתונים של BigQuery באמצעות OAuth: בחיבורים ל-BigQuery, Looker (Google Cloud core) יכול להשתמש בפרטי הכניסה של אפליקציית OAuth שבהם האדמין של Looker השתמש כשהוא יצר את המכונה של Looker (Google Cloud core). למידע נוסף, עיינו בקטע הגדרת אימות OAuth באמצעות BigQuery בדף הזה.
שימוש ב-Application Default Credentials כדי להתחבר למסד נתונים ב-BigQuery
מכונות של Looker (Google Cloud core) יכולות להשתמש בApplication Default Credentials (ADC) כדי לאמת כשאתם מגדירים חיבור למסד נתונים של BigQuery SQL סטנדרטי. כשמשתמשים ב-ADC, החיבור יאמת את מסד הנתונים באמצעות פרטי הכניסה של חשבון השירות של הפרויקט ב-Looker (Google Cloud core).
כדי להשתמש ב-ADC עם מסד נתונים של BigQuery, בוחרים באפשרות Application Default Credentials בשדה Authentication בדף Connection Settings של המכונה של Looker. התהליך המלא מפורט במאמר קישור Looker למסד נתונים של BigQuery.
אם במכונה של Looker (Google Cloud core) משתמשים בטבלאות נגזרות מתמידות עם מערך נתונים של BigQuery, צריך גם להקצות לחשבון השירות של Looker את התפקיד "עריכת נתונים ב-BigQuery" בניהול זהויות והרשאות גישה (IAM).
אם אתם מתחברים למסד נתונים של BigQuery שנמצא בפרויקט אחר מהמכונה של Looker (ליבה של Google Cloud), נדרשת הגדרה נוספת. אפשר לקרוא על כך בקטע שימוש ב-Application Default Credentials עם מסד נתונים של BigQuery בפרויקט אחר ב- Google Cloud .
התחזות לחשבון שירות
אם אתם רוצים לבצע אימות למסד הנתונים של BigQuery באמצעות חשבון שירות אחר, ולא באמצעות חשבון השירות של הפרויקט ב-Looker (Google Cloud core), אתם יכולים ליצור תהליך בקשה מועבר. כדי לעשות את זה, מזינים חשבון שירות אחר או שרשרת של חשבונות שירות שמופרדים בפסיקים בשדה Impersonated Service Account. חשבון השירות של Looker (Google Cloud core) משמש באופן אוטומטי כחשבון השירות הראשון בשרשרת, ואין צורך להוסיף אותו לשדה. חשבון השירות האחרון בשרשרת (שנקרא גם חשבון השירות שאליו מתחזים) הוא החשבון שמבצע אימות מול מסד הנתונים.
כשמשתמשים בהתחזות לחשבון שירות, צריך לבצע את הפעולות הבאות:
- מפעילים את Service Consumer Management API.
- חשוב לוודא שלכל חשבונות השירות בשרשרת, כולל חשבון השירות של הפרויקט ב-Looker (Google Cloud core), יש את הרשאות ה-IAM המתאימות.
- מוודאים שלחשבון השירות שהתחזיתם אליו יש את התפקיד "משתמש במשימות של BigQuery" ואת התפקיד "צפייה בנתונים של BigQuery". אם אתם צריכים לבדוק את המצבים והפעולות של השירות, או להשתמש במכסות ובחיוב מפרויקט צרכן, אתם צריכים גם את התפקיד צרכן השימוש בשירות.
- אם הפעלתם טבלאות נגזרות מתמידות (PDT) בחיבור, אתם צריכים להזין גם את כתובת האימייל של חשבון השירות המתחזה בשדה Service Account Email Address בקטע PDT Overrides. כך אפשר לוודא שתהליכי ה-PDT משתמשים בחשבון השירות שהתחזיתם אליו. למידע נוסף, עיינו בקטע הפעלת שינוי ידני של PDT בדף התיעוד קישור של Looker למסד הנתונים.
תגי מדיניות ב-BigQuery והסתרת מידע דינמית
כש-Looker (Google Cloud core) מתחבר ל-BigQuery באמצעות ADC או חשבון שירות, BigQuery לא מקבל את פרטי הכניסה של משתמשי Looker ספציפיים. מכיוון ש-BigQuery רואה רק זהות אחת לכל השאילתות, האבטחה המובנית ברמת העמודה של BigQuery (תגי מדיניות והסתרת מידע) לא יכולה להחיל כללי גישה או הסתרת מידע שונים על כל משתמש ב-Looker.
כדי להטמיע הסתרת מידע דינמית באמצעות Looker (Google Cloud core) ו-BigQuery, אפשר לבחור באחת מהאפשרויות הארכיטקטוניות הבאות:
- הסתרת מידע בשכבת האפליקציה (נתמכת ב-ADC ובחשבונות שירות): שומרים על חיבור יחיד למסד הנתונים שמשתמש ב-ADC או בחשבון שירות, ומחילים לוגיקה של הסתרת מידע בשכבה הסמנטית של LookML באמצעות הצהרות
CASE WHENב-LookML שמופעלות על ידי מאפייני משתמש שממופים מספק הזהויות שלכם. - מיסוך בשכבת מסד הנתונים (נדרש OAuth): מגדירים את החיבור בין Looker ל-BigQuery כך שישתמש ב-OAuth במקום ב-ADC. OAuth מעביר את פרטי הכניסה של כל משתמש קצה ישירות ל-BigQuery, וכך BigQuery יכול להעריך ולאכוף באופן מקורי את תגי המדיניות ואת כללי הסתרת הנתונים לכל משתמש.
שימוש ב-Application Default Credentials עם מסד נתונים של BigQuery בפרויקט אחר ב- Google Cloud
השלבים לשימוש ב-ADC למסד נתונים של BigQuery SQL סטנדרטי שנמצא מחוץ לפרויקט שמכיל את המכונה של Looker (Google Cloud core) זהים לשלבים להגדרת חיבור בתוך אותו פרויקט. עם זאת, לפני שתוכלו להגדיר את החיבור במכונה של Looker (Google Cloud core), לחשבון השירות של הפרויקט ב-Looker (Google Cloud core) צריכים להיות תפקידי ה-IAM הבאים:
- התפקיד "צפייה בנתונים ב-BigQuery" בפרויקט שמכיל את מערך הנתונים ב-BigQuery.
- התפקיד "משתמש במשימות של BigQuery" והתפקיד "Service Usage Consumer" בפרויקט לחיוב שמופיע בדף Connection Settings.
- אם במכונה של Looker (Google Cloud core) משתמשים בטבלאות נגזרות מתמידות (PDT) עם מערך נתונים של BigQuery, לחשבון השירות צריך להיות גם התפקיד "עריכת נתונים ב-BigQuery" בפרויקט שמכיל את מערך הנתונים של BigQuery.
אם לחשבון השירות של Looker (Google Cloud core) עדיין אין תפקידי IAM בפרויקט שמכיל את מערך הנתונים של BigQuery, צריך להשתמש בכתובת האימייל של חשבון השירות כשמקצים תפקידים בפרויקט הזה. כדי למצוא את כתובת האימייל של חשבון השירות, נכנסים לדף IAM במסוף Google Cloud ובוחרים באפשרות Include Google-provided role grants. הפורמט של כתובת האימייל יהיה service-<project number>@gcp-sa-looker.. משתמשים בכתובת האימייל הזו כדי להקצות את התפקידים המתאימים לחשבון השירות.
אחרי שנותנים את התפקידים המתאימים, פועלים לפי השלבים לשימוש ב-ADC.
עכשיו אפשר להשתמש ב-ADC עם מסד הנתונים הזה של BigQuery SQL סטנדרטי. הפרויקט שמצורף לחשבון השירות שצוין בדף Connection Settings ישמש לחיוב וגם כפרויקט ברירת המחדל.
שימוש ב-Application Default Credentials כדי להתחבר למסד נתונים של Cloud SQL
במכונות של Looker (Google Cloud core) אפשר להשתמש ב-ADC כדי לאמת חיבור למסד נתונים של Cloud SQL (Cloud SQL ל-PostgreSQL או Cloud SQL ל-MySQL). כשמשתמשים ב-ADC כדי לאמת את מסד הנתונים של Cloud SQL, הפרויקט ב- Google Cloud שבו פועל מסד הנתונים של Cloud SQL הוא הפרויקט שמחויב על שאילתות Looker.
בחיבורים של Looker ל-Cloud SQL שמשתמשים ב-ADC, ADC מתחזה לחשבון שירות או לשרשרת של חשבונות שירות כדי לגשת למסד הנתונים. כשיוצרים את החיבור של Looker למסד הנתונים, משתמשים בשדה IAM database username(s) כדי לציין את חשבון השירות, או את שרשרת חשבונות השירות, ש-ADC יתחזה אליהם. חשבון השירות של Looker שנוצר באופן אוטומטי כשיצרתם את המכונה של Looker (Google Cloud core) משמש באופן אוטומטי כחשבון השירות הראשון בשרשרת, ואין צורך להוסיף אותו לשדה.
אם אתם רוצים לאמת את מסד הנתונים של Cloud SQL באמצעות חשבון שירות אחר, ולא באמצעות חשבון השירות של Looker, אתם יכולים ליצור תהליך בקשה מואצל על ידי הזנת חשבון שירות אחר, או שרשרת של חשבונות שירות מופרדים בפסיקים, בשדה שמות משתמשים של מסד נתונים ב-IAM.
חשבון השירות האחרון בשרשרת (שנקרא גם חשבון השירות המתחזה) הוא החשבון שמאמת את מסד הנתונים, וצריך להוסיף אותו כמשתמש במסד הנתונים של Cloud SQL. אם אתם משתמשים בחשבון השירות של Looker כחשבון השירות האחרון בשרשרת (על ידי השארת השדה שמות משתמשים של מסד נתונים ב-IAM ריק), אתם צריכים להוסיף את חשבון השירות של Looker כמשתמש במסד הנתונים של Cloud SQL.
אלה השלבים הכלליים לחיבור מסד נתונים של Cloud SQL ל-PostgreSQL או של Cloud SQL ל-MySQL ל-Looker באמצעות ADC:
- מוסיפים את חשבון השירות שמתחזים אליו למסד הנתונים ב-Cloud SQL.
- הגדרת התחזות לחשבון שירות במסד הנתונים של Cloud SQL.
- מתחברים למסד הנתונים כדי להריץ פקודות הגדרה נוספות ל-Cloud SQL ל-PostgreSQL או ל-Cloud SQL ל-MySQL.
- יוצרים את החיבור של Looker למסד הנתונים.
הוספת חשבון השירות שבוצעה אליו התחזות למסד הנתונים ב-Cloud SQL
כשאתם יוצרים את החיבור של Looker למסד הנתונים, אתם משתמשים בשדה IAM database username(s) כדי לציין את חשבון השירות, או את שרשרת חשבונות השירות, ש-ADC יתחזה אליהם כדי לבצע פעולות במסד הנתונים. חשבון השירות האחרון בשרשרת ההתחזות נחשב לחשבון השירות שבוצעה אליו התחזות.
כדי להשתמש ב-ADC עם Cloud SQL, צריך להוסיף את חשבון השירות המתחזה למסד הנתונים של Cloud SQL:
- במקרה של ברירת המחדל, אם משאירים את השדה IAM database username(s) ריק, ADC יתחזה לחשבון השירות של Looker. במקרה הזה, חשבון השירות של Looker הוא חשבון השירות שמתחזים אליו, ולכן צריך להוסיף את חשבון השירות של Looker למסד הנתונים של Cloud SQL. בדף התיעוד יצירת מכונה של Looker (Google Cloud core) מוסבר על חשבון השירות של Looker ואיך אפשר לראות את כתובת האימייל של חשבון השירות של Looker.
- אם אתם מציינים חשבון שירות אחר מחשבון השירות של Looker, או אם אתם מציינים שרשרת של חשבונות שירות בשדה IAM database username(s), אתם צריכים להוסיף את חשבון השירות האחרון בשרשרת ההתחזות למסד הנתונים של Cloud SQL.
כדי להוסיף חשבון שירות למסד הנתונים של Cloud SQL, צריך להיות לכם תפקיד IAM של אדמין ב-Cloud SQL.
כדי להוסיף את חשבון השירות המתחזה למסד הנתונים ב-Cloud SQL, פועלים לפי ההליך "הוספת משתמש IAM או חשבון שירות למכונה של מסד הנתונים" בהתאם לניב של מסד הנתונים:
הגדרת התחזות לחשבון שירות במסד הנתונים של Cloud SQL
אחרי שיוצרים את משתמש Cloud SQL במסד הנתונים, צריך להגדיר את מסד הנתונים של Cloud SQL להתחזות לשירות:
- מפעילים את Cloud SQL Admin API.
- חשוב לוודא שלכל חשבונות השירות בשרשרת, כולל חשבון השירות של Looker, יש את ההרשאות המתאימות ב-IAM.
פועלים לפי ההוראות להקצאת תפקיד יחיד במסוף Google Cloud . מקצים את התפקידים הבאים ב-Cloud SQL לחשבון השירות המתחזה שהוספתם למסד הנתונים ב-Cloud SQL:
אם אתם מציינים חשבון שירות אחר מחשבון השירות של Looker, או אם אתם מציינים שרשרת של חשבונות שירות בשדה שמות משתמשים של מסד נתונים ב-IAM, אתם צריכים לתת לכל חשבון שירות בשרשרת את ההרשאה הבאה:
פקודות הגדרה נוספות ל-Cloud SQL ל-MySQL
ב-Cloud SQL ל-MySQL, צריך להתחבר למכונה של מסד הנתונים ולהריץ את הפקודה הבאה במסד הנתונים של Cloud SQL ל-MySQL:
GRANT ALL on DATABASE_NAME.* to 'DATABASE_USER'@'%'
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_NAME: שם מסד הנתונים.
- DATABASE_USER: שם המשתמש המקוצר של חשבון השירות המתחזה שהוספתם למסד הנתונים של Cloud SQL. הפורמט של חשבון השירות יהיה
service-<project number>@gcp-sa-looker.. מקצרים את שם המשתמש על ידי הסרת@וכל מה שמופיע אחריו. אחרי החיתוך, שם המשתמש ייראה כך:service-<project number>.
לדוגמה, אם שם המשתמש של חשבון השירות הוא service-12345678901@gcp-sa-looker. ושם מסד הנתונים הוא looker-test, הפקודה תהיה:
GRANT ALL on looker-test.* to 'service-12345678901'@'%'
פקודות הגדרה נוספות ל-Cloud SQL ל-PostgreSQL
ב-Cloud SQL ל-PostgreSQL, צריך להתחבר למכונה של מסד הנתונים ולהריץ כמה פקודות הגדרה במסד הנתונים של Cloud SQL ל-PostgreSQL:
- נותנים למשתמש הרשאות במסד הנתונים, כמו שמתואר בקטע משתמשים ואבטחה בדף התיעוד של PostgreSQL.
- מגדירים את נתיב החיפוש שבו Looker SQL Runner ישתמש כדי לאחזר מטא-נתונים ממסד הנתונים, כפי שמתואר בקטע הגדרת
search_pathבדף PostgreSQL במסמכי התיעוד של Looker.
יצירת החיבור מ-Looker (Google Cloud core) למסד הנתונים של Cloud SQL
כדי ליצור את החיבור בין Looker למסד הנתונים:
- בקטע Admin ב-Looker, בוחרים באפשרות Connections ולוחצים על Add Connection.
- בתפריט הנפתח Dialect, בוחרים באפשרות Google Cloud PostgreSQL, או באפשרות Google Cloud SQL ל-Cloud SQL ל-MySQL.
- בקטע Authentication, לוחצים על האפשרות Application Default Credentials.
בשדה IAM database username(s), מציינים את חשבון השירות או את שרשרת חשבונות השירות שאתם רוצים ש-ADC יתחזה אליהם כדי לבצע פעולות במסד הנתונים:
- אם אתם רוצים ש-Looker יאמת את מסד הנתונים של Cloud SQL באמצעות חשבון השירות של הפרויקט ב-Looker (Google Cloud core), השאירו את השדה הזה ריק.
- אם אתם רוצים ש-Looker יאמת את מסד הנתונים של Cloud SQL באמצעות חשבון שירות אחר, ולא באמצעות חשבון השירות של הפרויקט ב-Looker (Google Cloud core), אתם יכולים ליצור תהליך בקשה מועבר על ידי הזנת חשבון שירות אחר, או שרשרת של חשבונות שירות שמופרדים בפסיקים.
ממלאים את שאר פרטי החיבור. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. מידע נוסף זמין בדף התיעוד קישור Looker למסד הנתונים.
כדי לוודא שהחיבור הצליח, לוחצים על הכפתור בדיקת החיבור בקטע פרטי הסטטוס בתחתית הדף הגדרות החיבור.
אם ב-Looker מוצגת ההודעה Can Connect, לוחצים על Connect כדי ליצור את החיבור.
החיבור למסד הנתונים יתווסף לרשימה בדף Admin (ניהול) בקטע Connections (חיבורים) ב-Looker.
אחרי שמגדירים חיבור למסד נתונים, אפשר להגדיר פרויקט של LookML.
הגדרת אימות OAuth באמצעות BigQuery
כדי להגדיר אימות OAuth לחיבורים למסד נתונים של BigQuery במכונה של Looker (Google Cloud core):
- בקטע Authentication (אימות), בוחרים באפשרות OAuth. כברירת מחדל, Looker (Google Cloud core) משתמש בפרטי הכניסה של אפליקציית OAuth שבהם האדמין של Looker השתמש כשהוא יצר את המכונה של Looker (Google Cloud core). אתם לא צריכים ליצור או להזין באופן ידני מזהה לקוח וסוד.
- מוסיפים עוד כתובת URI להפניה אוטומטית בשדה Authorized redirect URIs בלקוח OAuth של המכונה (או יוצרים לקוח OAuth חדש עם פרטי הכניסה ומוסיפים כתובת URI להפניה אוטומטית). כתובת ה-URI להפניה אוטומטית צריכה להיות כתובת ה-URL של המכונה של Looker, ואחריה
/external_oauth/redirect. למידע נוסף, קראו את המאמר יצירת פרטי כניסה ל-OAuth בשביל BigQuery.
אם רוצים להזין ידנית פרטי כניסה אחרים של OAuth לחיבור הזה, מפעילים את המתג הגדרה ידנית של פרטי כניסה ל-OAuth ואז ממלאים את השדות מזהה לקוח ב-OAuth וסוד לקוח ב-OAuth. אם תזינו באופן ידני את פרטי הכניסה ל-OAuth, זה לא ישנה או יעדכן את פרטי הכניסה ששימשו ליצירת המכונה של Looker (Google Cloud core). כדי ליצור ולהשתמש בפרטי כניסה שונים, פועלים לפי השלבים שמפורטים במאמר הגדרת פרויקט של מסד נתונים ב-BigQuery ל-OAuth.
ניבים נתמכים ב-Looker (Google Cloud core)
בטבלה הבאה מפורטת התמיכה של Looker (Google Cloud core) בדיאלקטים של מסדי נתונים:
| ניב | יש תמיכה? |
|---|---|
| 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 | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 |
הוראות להגדרת מסד הנתונים
ההוראות זמינות לניבים הבאים של SQL: