התחברות ל-Spanner
חיבור ל-Spanner ב-BigQuery מאפשר למשתמשים לשלוח שאילתות על נתונים ב-Spanner בזמן אמת, בלי להעתיק או להעביר נתונים ל-BigQuery. אתם יכולים ליצור חיבור ל-Spanner ולשתף אותו עם משתמשים.
לפני שמתחילים
- מפעילים את BigQuery Connection API.
-
כדי לקבל את ההרשאות שנדרשות להתחברות ל-Spanner, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין של חיבורי BigQuery (
roles/bigquery.connectionAdmin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת חיבורים ל-Spanner
בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף BigQuery.
בחלונית נתונים, לוחצים על הוספת נתונים.
תיבת הדו-שיח Add data נפתחת.
בחלונית Filter By, בקטע Data Source Type, בוחרים באפשרות Databases.
אפשר גם להזין
Spannerבשדה Search for data sources.בקטע מקורות נתונים נבחרים, לוחצים על Google Cloud Spanner.
לוחצים על כרטיס הפתרון Google Cloud Spanner: BigQuery Federation.
בחלונית External data source, מזינים את הפרטים הבאים:
- בשדה Connection type, בוחרים באפשרות Cloud Spanner.
- בשדה Connection ID, מזינים מזהה למשאב החיבור. אפשר להשתמש באותיות, מספרים וקווים תחתונים.
- בשדה Location type, בוחרים מיקום (או אזור) ב-BigQuery שתואם לאזור של מקור הנתונים החיצוני.
- אופציונלי: בשדה Friendly name, מזינים שם ידידותי למשתמש בשביל החיבור, למשל
My connection resource. השם הידידותי יכול להיות כל ערך שיעזור לכם לזהות את משאב החיבור אם תצטרכו לשנות אותו בהמשך. - אופציונלי: בשדה Description, מזינים תיאור למשאב החיבור.
- בשדה Database name, מזינים את השם של מסד הנתונים ב-Spanner בפורמט הבא:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE" - אופציונלי: כדי לבצע קריאות במקביל, בוחרים באפשרות Read data in parallel. Spanner יכול לחלק שאילתות מסוימות לחלקים קטנים יותר, או למחיצות, ולאחזר את המחיצות במקביל. מידע נוסף זמין במאמר קריאת נתונים במקביל במסמכי התיעוד של Spanner. האפשרות הזו מוגבלת לשאילתות שהאופרטור הראשון שלהן בתוכנית הביצוע הוא אופרטור distributed union. שאילתות אחרות מחזירות שגיאה. כדי לראות את תוכנית הביצוע של שאילתה ב-Spanner, קראו את המאמר הסבר על האופן שבו Spanner מריץ שאילתות.
- אופציונלי: בשדה Database role, מזינים את השם של תפקיד במסד הנתונים של Spanner. אם השדה לא ריק, החיבור הזה שולח שאילתות ל-Spanner באמצעות תפקיד מסד הנתונים הזה כברירת מחדל. משתמשים עם בקרת גישה מפורטת ב-Spanner ששולחים שאילתות דרך החיבור הזה צריכים לקבל מהאדמין גישה לתפקיד הזה, ולתפקיד במסד הנתונים צריכה להיות הרשאת
SELECTבכל אובייקטי הסכימה שצוינו בשאילתות החיצוניות. למידע נוסף על בקרת גישה פרטנית, קראו את המאמר מידע על בקרת גישה פרטנית. - אופציונלי: כדי להפעיל את Data Boost, בוחרים באפשרות Use Spanner Data Boost. בעזרת Data Boost אתם יכולים להריץ שאילתות של ניתוח נתונים ולייצא נתונים, בלי להשפיע כמעט על עומסי העבודה הקיימים במכונה המוקצית של BigQuery. כדי להפעיל את Data Boost, בוחרים באפשרות Data Boost ו-Read data in parallel.
לוחצים על יצירת חיבור.
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
מפעילים את ה-method CreateConnection בשירות ConnectionService.
שיתוף חיבורים עם משתמשים
כדי לאפשר למשתמשים לשלוח שאילתות לגבי נתונים ולנהל חיבורים, אתם יכולים להקצות את התפקידים הבאים:
roles/bigquery.connectionUser: מאפשרת למשתמשים להשתמש בחיבורים כדי להתחבר למקורות נתונים חיצוניים ולהריץ עליהם שאילתות.
roles/bigquery.connectionAdmin: מאפשר למשתמשים לנהל חיבורים.
במאמר תפקידים והרשאות מוגדרים מראש תוכלו לקרוא מידע נוסף על תפקידים והרשאות של IAM ב-BigQuery.
בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף BigQuery.
החיבורים מופיעים בפרויקט בקבוצה שנקראת Connections.
בחלונית הימנית, לוחצים על Explorer:

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