יצירת מערכי נתונים חיצוניים ב-Spanner
מערכי נתונים חיצוניים (שנקראים גם מערכי נתונים מאוחדים) מאפשרים לשלוח שאילתות לנתוני טרנזקציות ב-Spanner מ-BigQuery באמצעות GoogleSQL, בלי להעתיק או לייבא את הנתונים לאחסון ב-BigQuery. מערך נתונים חיצוני מקשר בין מערך נתונים של BigQuery לבין מסד נתונים קיים של GoogleSQL או PostgreSQL ב-Spanner. הטבלאות לקריאה בלבד משקפות באופן אוטומטי את הטבלאות והעדכונים במסד הנתונים הזה.
במאמר הזה מוסבר איך ליצור, לשלוח שאילתות ולנהל מערך נתונים חיצוני של Spanner.
ההרשאות הנדרשות
כדי לקבל את ההרשאה שנדרשת ליצירת מערך נתונים חיצוני, צריך לבקש מהאדמין להקצות לכם את התפקיד משתמש ב-BigQuery (roles/bigquery.user) ב-IAM.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה bigquery.datasets.create, שנדרשת כדי ליצור קבוצת נתונים חיצונית.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.
במאמר מבוא ל-IAM תוכלו לקרוא מידע נוסף על התפקידים וההרשאות של IAM ב-BigQuery.
שימוש בחיבור CLOUD_RESOURCE
אפשר להשתמש בחיבור CLOUD_RESOURCE במערכי נתונים חיצוניים של Spanner כדי לקיים אינטראקציה עם מסד הנתונים של Spanner, וכך לתת למשתמשים גישה לנתוני Spanner דרך BigQuery בלי לתת להם גישה ישירה למסד הנתונים של Spanner. מכיוון שחשבון השירות מהחיבור של CLOUD_RESOURCE מטפל באחזור הנתונים מ-Spanner, צריך רק לתת למשתמשים גישה למערך הנתונים החיצוני של Spanner.
לפני שיוצרים מערכי נתונים חיצוניים של Spanner באמצעות חיבור CLOUD_RESOURCE, צריך לבצע את הפעולות הבאות:
יצירת חיבור
כדי להתחבר ל-Spanner, אתם יכולים ליצור חיבור CLOUD_RESOURCE או להשתמש בחיבור קיים. חשוב ליצור את החיבור באותו מיקום שבו אתם מתכננים ליצור את מערך הנתונים החיצוני של Spanner.
המסוף
נכנסים לדף BigQuery.
בחלונית הימנית, לוחצים על Explorer:

אם החלונית הימנית לא מוצגת, לוחצים על Expand left pane כדי לפתוח אותה.
בחלונית Explorer, מרחיבים את שם הפרויקט ולוחצים על Connections.
בדף Connections, לוחצים על Create connection.
בשדה Connection type, בוחרים באפשרות Vertex AI remote models, remote functions, BigLake and Spanner (Cloud Resource).
בשדה מזהה החיבור, נותנים שם לחיבור.
בקטע Location type, בוחרים מיקום לחיבור. החיבור צריך להיות באותו מיקום כמו המשאבים האחרים, למשל מערכי נתונים.
לוחצים על יצירת חיבור.
לוחצים על מעבר לחיבור.
בחלונית Connection info, מעתיקים את מזהה חשבון השירות כדי להשתמש בו בשלב מאוחר יותר.
SQL
משתמשים בהצהרה CREATE CONNECTION:
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בעורך השאילתות, מזינים את ההצהרה הבאה:
CREATE CONNECTION [IF NOT EXISTS] `CONNECTION_NAME` OPTIONS ( connection_type = "CLOUD_RESOURCE", friendly_name = "FRIENDLY_NAME", description = "DESCRIPTION" );
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTION_NAME: שם החיבור בפורמטPROJECT_ID.LOCATION.CONNECTION_ID,LOCATION.CONNECTION_IDאוCONNECTION_ID. אם לא מציינים את הפרויקט או המיקום, הם מוסקים מהפרויקט ומהמיקום שבהם ההצהרה מופעלת. -
FRIENDLY_NAME(אופציונלי): שם תיאורי לחיבור. -
DESCRIPTION(אופציונלי): תיאור של החיבור.
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
בסביבה של שורת הפקודה, יוצרים חיבור:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
הפרמטר
--project_idמבטל את פרויקט ברירת המחדל.מחליפים את מה שכתוב בשדות הבאים:
-
REGION: אזור החיבור שלכם -
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance -
CONNECTION_ID: מזהה לחיבור
כשיוצרים משאב חיבור, BigQuery יוצר חשבון שירות ייחודי של המערכת ומשייך אותו לחיבור.
פתרון בעיות: אם מופיעה שגיאת החיבור הבאה, עדכנו את Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
-
מאחזרים ומעתיקים את מזהה חשבון השירות כדי להשתמש בו בשלב מאוחר יותר:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
הפלט אמור להיראות כך:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.s3ns-system.iam.gserviceaccount.com"}
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Terraform
משתמשים במשאב google_bigquery_connection.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה נוצר קישור למשאבים ב-Cloud בשם my_cloud_resource_connection באזור US:
כך מחילים את ההגדרות של Terraform בפרויקט ב- Cloud de Confiance :
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל ב- Cloud de Confiance שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Cloud de Confiance כדי להציג את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
אחרי שיוצרים את החיבור, פותחים אותו ומעתיקים את מזהה חשבון השירות בחלונית Connection info. המזהה הזה נדרש כשמגדירים הרשאות לחיבור. כשיוצרים משאב חיבור, BigQuery יוצר חשבון שירות ייחודי של המערכת ומשייך אותו לחיבור.
הגדרת גישה
אתם צריכים לתת לחשבון השירות שמשויך לחיבור החדש גישת קריאה למכונה או למסד הנתונים של Spanner. מומלץ להשתמש בתפקיד המוגדר מראש ב-IAM, "קורא מסדי נתונים של Cloud Spanner עם DataBoost" (roles/spanner.databaseReaderWithDataBoost).
כדי להעניק גישה לתפקידים ברמת מסד הנתונים לחשבון השירות שהעתקתם קודם מהחיבור, פועלים לפי השלבים הבאים:
נכנסים לדף Instances ב-Spanner.
לוחצים על שם המכונה שמכילה את מסד הנתונים כדי לעבור לדף Instance details.
בכרטיסייה Overview, מסמנים את התיבה של מסד הנתונים.
מופיע החלון Info panel.לוחצים על Add principal.
בחלונית Add principals, בשדה New principals, מזינים את מזהה חשבון השירות שהעתקתם קודם.
בשדה Select a role, בוחרים את התפקיד Cloud Spanner Database Reader with DataBoost.
לוחצים על Save.
יצירת מערך נתונים חיצוני
כדי ליצור קבוצת נתונים חיצונית:
המסוף
פותחים את הדף BigQuery במסוף Cloud de Confiance .
בחלונית הימנית, לוחצים על Explorer:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, בוחרים את הפרויקט שבו רוצים ליצור את מערך הנתונים.
לוחצים על View actions ואז על Create dataset.
בדף Create dataset, מבצעים את הפעולות הבאות:
- בשדה Dataset ID, מזינים שם ייחודי למערך הנתונים.
- בשדה Location type, בוחרים מיקום לקבוצת הנתונים, למשל
us-central1או מספר אזוריםus. אחרי שיוצרים את מערך הנתונים אי אפשר לשנות את המיקום. בקטע External Dataset:
- מסמנים את התיבה לצד קישור למערך נתונים חיצוני.
- בקטע External dataset type, בוחרים באפשרות
Spanner. - בשדה מקור חיצוני, מזינים את המזהה המלא של מסד הנתונים ב-Spanner בפורמט הבא:
projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE. לדוגמה:projects/my_project/instances/my_instance/databases/my_database. - אם רוצים, בשדה Database role מזינים את השם של תפקיד במסד הנתונים של Spanner. מידע נוסף על תפקידים במסד הנתונים שמשמשים ליצירת חיבורים ל-Spanner
- אם רוצים ליצור את מערך הנתונים החיצוני באמצעות חיבור, מסמנים את התיבה Use a Cloud Resource connection.
משאירים את שאר הגדרות ברירת המחדל כמו שהן.
לוחצים על Create dataset.
SQL
משתמשים בהצהרה של שפת הגדרת נתונים (DDL) של CREATE EXTERNAL SCHEMA.
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בעורך השאילתות, מזינים את ההצהרה הבאה:
CREATE EXTERNAL SCHEMA DATASET_NAME OPTIONS ( external_source = 'SPANNER_EXTERNAL_SOURCE', location = 'LOCATION'); /* Alternatively, create with a connection: */ CREATE EXTERNAL SCHEMA DATASET_NAME WITH CONNECTION
PROJECT_ID.LOCATION.CONNECTION_NAMEOPTIONS ( external_source = 'SPANNER_EXTERNAL_SOURCE', location = 'LOCATION');מחליפים את מה שכתוב בשדות הבאים:
-
DATASET_NAME: השם של מערך הנתונים החדש ב-BigQuery. -
SPANNER_EXTERNAL_SOURCE: השם המלא והתקין של מסד הנתונים ב-Spanner, עם קידומת שמזהה את המקור, בפורמט הבא:google-cloudspanner://[DATABASE_ROLE@]/projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE. לדוגמה:google-cloudspanner://admin@/projects/my_project/instances/my_instance/databases/my_databaseאוgoogle-cloudspanner:/projects/my_project/instances/my_instance/databases/my_database. -
LOCATION: המיקום של קבוצת הנתונים החדשה ב-BigQuery, לדוגמהus-central1. אחרי שיוצרים מערך נתונים, אי אפשר לשנות את המיקום שלו. -
CONNECTION_NAME(אופציונלי): השם של הקישור למשאבים ב-Cloud.
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
בסביבה של שורת הפקודה, יוצרים מערך נתונים חיצוני באמצעות הפקודה bq mk:
bq --location=LOCATION mk --dataset \ --external_source SPANNER_EXTERNAL_SOURCE \ DATASET_NAME
אפשר גם ליצור באמצעות חיבור:
bq --location=LOCATION mk --dataset \ --external_source SPANNER_EXTERNAL_SOURCE \ --connection_id PROJECT_ID.LOCATION.CONNECTION_NAME \ DATASET_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
LOCATION: המיקום של קבוצת הנתונים החדשה ב-BigQuery, לדוגמהus-central1. אחרי שיוצרים מערך נתונים, אי אפשר לשנות את המיקום שלו. אפשר להגדיר ערך ברירת מחדל למיקום באמצעות הקובץ.bigqueryrc. -
SPANNER_EXTERNAL_SOURCE: השם המלא והתקין של מסד הנתונים ב-Spanner, עם קידומת שמזהה את המקור, בפורמט הבא:google-cloudspanner://[DATABASE_ROLE@]/projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE. לדוגמה:google-cloudspanner://admin@/projects/my_project/instances/my_instance/databases/my_databaseאוgoogle-cloudspanner:/projects/my_project/instances/my_instance/databases/my_database. -
DATASET_NAME: השם של מערך הנתונים החדש ב-BigQuery. כדי ליצור מערך נתונים בפרויקט שאינו פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט לשם של מערך הנתונים בפורמט הבא:PROJECT_ID:DATASET_NAME. -
CONNECTION_NAME(אופציונלי): השם של הקישור למשאבים ב-Cloud.
Terraform
משתמשים במשאב google_bigquery_dataset.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה נוצר מערך נתונים חיצוני של Spanner:
כך מחילים את ההגדרות של Terraform בפרויקט ב- Cloud de Confiance :
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל ב- Cloud de Confiance שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Cloud de Confiance כדי להציג את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
API
מפעילים את השיטה datasets.insert עם משאב של מערך נתונים מוגדר ושדה externalDatasetReference למסד הנתונים של Spanner.
שימו לב: השמות של הטבלאות במערכי הנתונים החיצוניים לא תלויי אותיות רישיות.
כשיוצרים מערכי נתונים חיצוניים באמצעות חיבור CLOUD_RESOURCE, צריכה להיות לכם הרשאת bigquery.connections.delegate (זמינה בתפקיד אדמין של חיבורי BigQuery) בחיבור שבו משתמשים מערכי הנתונים החיצוניים.
שליטה בגישה לטבלאות
מערכי נתונים חיצוניים של Spanner תומכים בפרטי כניסה של משתמשים בחשבון Google. כלומר, הגישה לטבלאות Spanner ממערכי נתונים חיצוניים נשלטת על ידי Spanner. המשתמשים יכולים לשלוח שאילתות לטבלאות האלה רק אם יש להם גישה שניתנה ב-Spanner.
מערכי נתונים חיצוניים של Spanner תומכים גם בהענקת גישה. האצלת גישה מפרידה בין הגישה לטבלאות Spanner ממערכי נתונים חיצוניים לבין הגישה הישירה לטבלאות Spanner הבסיסיות. כדי להתחבר ל-Spanner, משתמשים בקישור למשאבים ב-Cloud שמשויך לחשבון שירות. המשתמשים יכולים לשלוח שאילתות לטבלאות האלה ב-Spanner ממערכי נתונים חיצוניים, גם אם לא ניתנה להם גישה ב-Spanner.
רשימה של טבלאות במערך נתונים חיצוני
כדי להציג את רשימת הטבלאות שזמינות לשאילתה במערך הנתונים החיצוני, ראו הצגת רשימה של מערכי נתונים.
קבלת מידע על הטבלה
כדי לקבל מידע על הטבלאות במערך הנתונים החיצוני, כמו פרטי הסכימה, ראו קבלת מידע על טבלאות.
שליחת שאילתות לגבי נתונים ב-Spanner
שליחת שאילתות לטבלאות במערכי נתונים חיצוניים זהה לשליחת שאילתות לטבלאות בכל מערך נתונים אחר של BigQuery. עם זאת, אין תמיכה בפעולות לשינוי נתונים (DML).
כברירת מחדל, שאילתות בטבלאות במערכי נתונים חיצוניים של Spanner משתמשות ב-Data Boost ואי אפשר לשנות את זה. לכן, כדי להריץ שאילתות כאלה צריך הרשאות נוספות.
תוצאות השאילתה מאוחסנות ב-BigQuery. כששולחים שאילתה ל-Spanner, תוצאות השאילתה נשמרות כברירת מחדל בטבלאות זמניות. אפשר גם לשמור אותן כטבלה חדשה ב-BigQuery, לצרף אותן לטבלאות אחרות או למזג אותן עם טבלאות קיימות באמצעות DML.
יצירת תצוגה בקבוצת נתונים חיצונית
אי אפשר ליצור תצוגה בקבוצת נתונים חיצונית. עם זאת, אתם יכולים ליצור תצוגה במערך נתונים רגיל שמבוססת על טבלה במערך נתונים חיצוני. מידע נוסף זמין במאמר יצירת תצוגות.
מחיקה של קבוצת נתונים חיצונית
מחיקה של מערך נתונים חיצוני זהה למחיקה של כל מערך נתונים אחר ב-BigQuery. מחיקה של מערכי נתונים חיצוניים לא משפיעה על טבלאות במסד הנתונים של Spanner. מידע נוסף זמין במאמר מחיקת מערכי נתונים.
יצירת תצוגה מהותית לא מצטברת על סמך טבלאות ממערך נתונים חיצוני
לפני שממשיכים, צריך ליצור את מערך הנתונים החיצוני הבסיסי של Spanner באמצעות חיבור CLOUD_RESOURCE.
אתם יכולים ליצור תצוגות מהותיות לא מצטברות שמפנות לטבלאות של מערכי נתונים חיצוניים ב-Spanner באמצעות האפשרות allow_non_incremental_definition.
בדוגמה הבאה נעשה שימוש בטבלה בסיסית של מערך נתונים חיצוני ב-Spanner:
/* You must create the spanner_external_dataset with a CLOUD_RESOURCE connection. */ CREATE MATERIALIZED VIEW sample_dataset.sample_spanner_mv OPTIONS ( enable_refresh = true, refresh_interval_minutes = 60, max_staleness = INTERVAL "24" HOUR, allow_non_incremental_definition = true) AS SELECT COUNT(*) cnt FROM spanner_external_dataset.spanner_table;
מגבלות
- המגבלות של שאילתות מאוחדות ב-BigQuery חלות גם כאן.
- ב-BigQuery אפשר לגשת רק לטבלאות מסכימת ברירת המחדל של Spanner. אין תמיכה בטבלאות מסכימות בעלות שם.
- מפתחות ראשיים וזרים שמוגדרים במסד הנתונים של Spanner לא גלויים ב-BigQuery.
- אם טבלה במסד נתונים של Spanner מכילה עמודה מסוג שלא נתמך ב-BigQuery, אי אפשר לגשת לעמודה הזו ב-BigQuery.
- אי אפשר להוסיף, למחוק או לעדכן נתונים או מטא-נתונים בטבלאות במערך נתונים חיצוני של Spanner.
- אי אפשר ליצור טבלאות, תצוגות או תצוגות מהותיות חדשות במערך נתונים חיצוני של Spanner.
- תצוגות
INFORMATION_SCHEMAלא נתמכות. - אי אפשר להשתמש בשמירת מטא-נתונים במטמון.
- הגדרות ברמת מערך הנתונים שקשורות לברירות המחדל של יצירת טבלאות לא משפיעות על מערכי נתונים חיצוניים, כי אי אפשר ליצור טבלאות באופן ידני.
- אין תמיכה ב-Write API וב-Read API.
- אין תמיכה באבטחה ברמת השורה, באבטחה ברמת העמודה ובאנונימיזציה של נתונים.
- אין תמיכה בתצוגות מהותיות מצטברות שמבוססות על טבלאות ממערכי נתונים חיצוניים של Spanner, אבל יש תמיכה בתצוגות מהותיות לא מצטברות בגרסת טרום-השקה (Preview).
- אין תמיכה בשילוב עם Knowledge Catalog. לדוגמה, אין תמיכה בפרופילי נתונים ובסריקות של איכות הנתונים.
- אין תמיכה בתגים ברמת הטבלה.
- ההשלמה האוטומטית של SQL לא פועלת עם טבלאות חיצוניות של Spanner כשכותבים שאילתות.
- אי אפשר להשתמש בסריקה עם Sensitive Data Protection במערכי נתונים חיצוניים.
- אי אפשר לשתף מערכי נתונים חיצוניים באמצעות BigQuery sharing (לשעבר Analytics Hub).
- אם מערך הנתונים החיצוני של Spanner משתמש בפרטי הכניסה של המשתמש בחשבון Google, אתם יכולים ליצור תצוגה מורשית שמפנה למערך הנתונים החיצוני. עם זאת, כששולחים שאילתה לתצוגה הזו, פרטי הכניסה לחשבון Google של משתמש בחשבון שמריץ את השאילתה נשלחים ל-Spanner.
- אם מערך הנתונים החיצוני של Spanner משתמש בקישור למשאבים ב-Cloud לצורך הקצאת גישה, אתם יכולים ליצור תצוגה מורשית או שגרה מורשית שמפנה למערך הנתונים החיצוני.