חיבור ל-Spanner
אדמינים ב-BigQuery יכולים ליצור חיבור כדי לגשת לנתונים ב-Spanner. החיבור הזה מאפשר למנתחי נתונים להריץ שאילתות על נתונים ב-Spanner.
לפני שמתחילים
- מפעילים את BigQuery Connection API.
-
כדי לקבל את ההרשאות שנדרשות לחיבור ל-Spanner, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין של חיבור BigQuery (
roles/bigquery.connectionAdmin) בפרויקט. להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת חיבורים ל-Spanner
בוחרים באחת מהאפשרויות הבאות:
המסוף
עוברים לדף BigQuery.
בחלונית Explorer, לוחצים על Add data.
תיבת הדו-שיח הוספת נתונים נפתחת.
בחלונית Filter By, בקטע Data Source Type, בוחרים באפשרות Databases.
אפשרות אחרת היא להזין
Spannerבשדה חיפוש מקורות נתונים.בקטע מקורות נתונים מומלצים, לוחצים על Google Cloud Spanner.
לוחצים על כרטיס הפתרון Google Cloud Spanner: BigQuery Federation.
בחלונית מקור נתונים חיצוני, מזינים את הפרטים הבאים:
- בשדה Connection type (סוג החיבור), בוחרים באפשרות Cloud Spanner.
- בשדה מזהה החיבור, מזינים מזהה למשאב החיבור. מותר להשתמש באותיות, במספרים ובקווים תחתונים.
- בשדה Location type, בוחרים מיקום (או אזור) ב-BigQuery שתואם לאזור של מקור הנתונים החיצוני.
- אופציונלי: בשדה שם ידידותי, מזינים שם ידידותי לחיבור, כמו
My connection resource. השם הידידותי יכול להיות כל ערך שיעזור לכם לזהות את משאב החיבור אם תצטרכו לשנות אותו בהמשך. - אופציונלי: בשדה Description, מזינים תיאור למשאב החיבור הזה.
- בשדה שם מסד הנתונים, מזינים את השם של מסד הנתונים של Spanner בפורמט הבא:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE" - אופציונלי: כדי לבצע קריאות מקבילות, בוחרים באפשרות קריאת נתונים במקביל. Spanner יכול לחלק שאילתות מסוימות לחלקים קטנים יותר, או למחיצות, ולאחזר את המחיצות במקביל. מידע נוסף זמין במאמר קריאת נתונים במקביל במסמכי התיעוד של Spanner. האפשרות הזו מוגבלת לשאילתות שבהן האופרטור הראשון בתוכנית הביצוע הוא אופרטור של איחוד מבוזר. שאר השאילתות מחזירות שגיאה. כדי לראות את תוכנית הביצוע של שאילתת Spanner, אפשר לעיין במאמר הסבר על אופן הביצוע של שאילתות ב-Spanner.
- אופציונלי: בשדה Database role (תפקיד במסד הנתונים), מזינים את השם של תפקיד במסד נתונים של Spanner. אם לא משאירים את השדה ריק, כברירת מחדל, החיבור הזה שולח שאילתות ל-Spanner באמצעות תפקיד מסד הנתונים הזה. משתמשים ב-Spanner עם בקרת גישה ברמת גרנולריות גבוהה ששולחים שאילתות דרך החיבור הזה צריכים לקבל מהאדמין שלהם גישה לתפקיד הזה, ולתפקיד במסד הנתונים צריכה להיות הרשאת
SELECTלכל אובייקטי הסכימה שצוינו בשאילתות חיצוניות. מידע על בקרת גישה פרטנית זמין במאמר מידע על בקרת גישה פרטנית. - אופציונלי: כדי להפעיל את Data Boost, בוחרים באפשרות Use Spanner Data Boost (שימוש ב-Spanner Data Boost). Data Boost מאפשר לכם להריץ שאילתות ניתוח ולייצא נתונים כמעט ללא השפעה על עומסי העבודה הקיימים במופע BigQuery שהוקצה. כדי להפעיל את Data Boost, בוחרים באפשרות Data Boost ואז באפשרות קריאת נתונים במקביל.
לוחצים על יצירת קישור.
BQ
כדי ליצור את הקישור, משתמשים בפקודה bq mk עם הדגל --connection.
bq mk --connection \ --connection_type=CLOUD_SPANNER \ --properties='PROPERTIES' \ --location=LOCATION \ --display_name='FRIENDLY_NAME' \ --description 'DESCRIPTION' \ CONNECTION_ID
מחליפים את מה שכתוב בשדות הבאים:
PROPERTIES: אובייקט JSON עם השדות הבאים:
"database": מסד הנתונים של Spanner לחיבורמציינים כמחרוזת בפורמט הבא:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE".
"use_parallelism": (אופציונלי) אםtrue, החיבור הזה מבצע קריאות מקבילותערך ברירת המחדל הוא
false. מערכת Spanner יכולה לחלק שאילתות מסוימות לחלקים קטנים יותר, או למחיצות, ולאחזר את המחיצות במקביל. מידע נוסף זמין במאמר קריאת נתונים במקביל במסמכי התיעוד של Spanner. האפשרות הזו מוגבלת לשאילתות שהאופרטור הראשון שלהן בתוכנית הביצוע הוא אופרטור distributed union. שאר השאילתות מחזירות שגיאה. כדי לראות את תוכנית הביצוע של שאילתת Spanner, אפשר לעיין במאמר הסבר על אופן הביצוע של שאילתות ב-Spanner.
"database_role": (אופציונלי) אם השדה לא ריק, החיבור הזה שולח שאילתות ל-Spanner באמצעות תפקיד מסד הנתונים הזה כברירת מחדל. משתמשים ב-Spanner עם בקרת גישה ברמת גרנולריות גבוהה ששולחים שאילתות דרך החיבור הזה צריכים לקבל מהאדמין שלהם גישה לתפקיד הזה, ולתפקיד במסד הנתונים צריכה להיות הרשאתSELECTלכל אובייקטי הסכימה שצוינו בשאילתות חיצוניות.אם לא מציינים תפקיד, החיבור מאומת באמצעות תפקידים מוגדרים מראש ב-IAM עבור Spanner, ולחשבון המשתמש שמריץ שאילתות באמצעות החיבור הזה צריך להיות מוקצה תפקיד
roles/spanner.databaseReaderב-IAM.מידע על בקרת גישה פרטנית זמין במאמר מידע על בקרת גישה פרטנית.
"useDataBoost": (אופציונלי) אםtrue, החיבור הזה מאפשר למשתמשים להשתמש בData Boost. התכונה Data Boost מאפשרת למשתמשים להריץ שאילתות מאוחדות בקיבולת מחשוב נפרדת ועצמאית, ששונה ממופעים שהוקצו, כדי למנוע השפעה על עומסי עבודה קיימים. כדי להפעיל את Data Boost, מגדירים את"useDataBoost"ל-trueואת"use_parallelism"ל-true.כדי להשתמש ב-Data Boost, לחשבון המשתמש שמריץ שאילתות עם החיבור הזה צריכה להיות הרשאה
spanner.databases.useDataBoost. ההרשאה הזו כלולה כברירת מחדל בתפקידיםroles/spanner.adminו-roles/spanner.databaseAdmin.
LOCATION: מיקום ב-BigQuery שתואם לאזור של מקור הנתונים החיצוני.
CONNECTION_ID: מזהה של משאב החיבורמזהה החיבור יכול להכיל אותיות, מספרים וקווים תחתונים. אם לא מספקים מזהה חיבור, BigQuery יוצר מזהה ייחודי באופן אוטומטי.
בדוגמה הבאה נוצר משאב חיבור חדש בשם
my_connection_id.bq mk --connection \ --connection_type='CLOUD_SPANNER' \ --properties='{"database":"projects/my_project/instances/my_instance/databases/database1"}' \ --project_id=federation-test \ --location=us \ my_connection_id
API
מבצעים קריאה ל-CreateConnection בשירות ConnectionService.
שיתוף חיבורים עם משתמשים
אתם יכולים להקצות את התפקידים הבאים כדי לאפשר למשתמשים לשלוח שאילתות לנתונים ולנהל חיבורים:
roles/bigquery.connectionUser: מאפשר למשתמשים להשתמש בחיבורים כדי להתחבר למקורות נתונים חיצוניים ולהריץ עליהם שאילתות.
roles/bigquery.connectionAdmin: מאפשר למשתמשים לנהל את החיבורים.
במאמר תפקידים והרשאות מוגדרים מראש יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.
בוחרים באחת מהאפשרויות הבאות:
המסוף
עוברים לדף BigQuery.
החיבורים מופיעים בפרויקט בקבוצה שנקראת Connections (חיבורים).
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
לוחצים על הפרויקט, לוחצים על Connections (חיבורים) ובוחרים חיבור.
בחלונית פרטים, לוחצים על שיתוף כדי לשתף חיבור. לאחר מכן מבצעים את הפעולות הבאות:
בתיבת הדו-שיח Connection permissions, מוסיפים או עורכים חשבונות משתמשים כדי לשתף את החיבור עם חשבונות משתמשים אחרים.
לוחצים על Save.
BQ
אי אפשר לשתף חיבור עם כלי שורת הפקודה של BigQuery. כדי לשתף חיבור, משתמשים במסוף Google Cloud או בשיטה BigQuery Connections API.
API
משתמשים בשיטה projects.locations.connections.setIAM בקטע BigQuery Connections API בארכיטקטורת REST הפניית API ומספקים מופע של משאב policy.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
המאמרים הבאים
- מידע נוסף על סוגי חיבורים שונים
- מידע נוסף על ניהול חיבורים
- מידע על שאילתות מאוחדות
- איך שולחים שאילתות לנתוני Spanner