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

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer מרחיבים את שם הפרויקט ואז לוחצים על Connections.
בדף Connections (חיבורים), לוחצים על Create connection (יצירת חיבור).
בשדה Connection type (סוג החיבור), בוחרים באפשרות Vertex AI remote models, remote functions, BigLake and Spanner (Cloud Resource) (מודלים מרוחקים של Vertex AI, פונקציות מרוחקות, BigLake ו-Spanner (משאב בענן)).
בשדה מזהה החיבור, מזינים שם לחיבור.
בקטע Location type, בוחרים מיקום לחיבור. החיבור צריך להיות ממוקם יחד עם משאבים אחרים, כמו מערכי נתונים.
לוחצים על יצירת קישור.
לוחצים על מעבר לחיבור.
בחלונית Connection info (פרטי התחברות), מעתיקים את מזהה חשבון השירות לשימוש בשלב מאוחר יותר.
SQL
משתמשים בהצהרה CREATE CONNECTION:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
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.
Terraform
משתמשים במשאב google_bigquery_connection.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה נוצר קישור למשאבים ב-Cloud בשם my_cloud_resource_connection באזור US:
כדי להחיל את הגדרות Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
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 Database Reader עם DataBoost (roles/spanner.databaseReaderWithDataBoost).
כדי להעניק גישה לתפקידים ברמת מסד הנתונים לחשבון השירות שהעתקתם קודם מהחיבור, פועלים לפי השלבים הבאים:
עוברים לדף Instances ב-Spanner.
לוחצים על שם המופע שמכיל את מסד הנתונים כדי לעבור לדף פרטי המופע.
בכרטיסייה סקירה כללית, מסמנים את תיבת הסימון של מסד הנתונים.
חלונית המידע מופיעה.לוחצים על Add principal.
בחלונית Add principals, בשדה New principals, מזינים את המזהה של חשבון השירות שהעתקתם קודם.
בשדה Select a role בוחרים באפשרות Cloud Spanner Database Reader with DataBoost role.
לוחצים על Save.
יצירה של קבוצת נתונים חיצונית
כדי ליצור מערך נתונים חיצוני:
המסוף
פותחים את הדף BigQuery במסוף Cloud de Confiance .
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית 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 (שימוש בקישור למשאבים ב-Cloud) כדי ליצור את קבוצת הנתונים החיצונית עם קישור.
משאירים את שאר הגדרות ברירת המחדל כמו שהן.
לוחצים על יצירת מערך נתונים.
SQL
משתמשים בהצהרה של שפת הגדרת נתונים (DDL) מסוג CREATE EXTERNAL SCHEMA.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
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. אחרי שיוצרים מערך נתונים, אי אפשר לשנות את המיקום שלו. - (Optional)
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. - (Optional)
CONNECTION_NAME: השם של הקישור למשאבים ב-Cloud.
Terraform
משתמשים במשאב google_bigquery_dataset.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה נוצר מערך נתונים חיצוני ב-Spanner:
כדי להחיל את הגדרות Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
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 תומכים בפרטי כניסה של משתמשי קצה (EUC). כלומר, הגישה לטבלאות Spanner ממערכי נתונים חיצוניים נשלטת על ידי Spanner. משתמשים יכולים לשלוח שאילתות לטבלאות האלה רק אם יש להם הרשאת גישה ב-Spanner.
בנוסף, מערכי נתונים חיצוניים ב-Spanner תומכים בהענקת הרשאות גישה. הענקת הרשאות גישה מפרידה בין הגישה לטבלאות Spanner לבין מערכי נתונים חיצוניים והגישה הישירה לטבלאות Spanner הבסיסיות. חיבור למשאב ב-Cloud שמשויך לחשבון שירות משמש לחיבור ל-Spanner. משתמשים יכולים לשלוח שאילתות לטבלאות האלה ב-Spanner ממערכי נתונים חיצוניים, גם אם לא הוענקה להם גישה ב-Spanner.
הצגת רשימת הטבלאות במערך נתונים חיצוני
כדי לראות רשימה של הטבלאות שזמינות לשאילתה במערך הנתונים החיצוני, אפשר לעיין במאמר בנושא הצגת רשימה של מערכי נתונים.
קבלת מידע על טבלה
כדי לקבל מידע על הטבלאות במערך הנתונים החיצוני, כמו פרטי הסכימה, אפשר לעיין במאמר בנושא קבלת מידע על טבלאות.
שאילת נתונים ב-Spanner
שליחת שאילתות לטבלאות במערכי נתונים חיצוניים זהה לשליחת שאילתות לטבלאות בכל מערך נתונים אחר ב-BigQuery. עם זאת, אין תמיכה בפעולות שינוי נתונים (DML).
שאילתות שמופעלות על טבלאות במערכי נתונים חיצוניים של Spanner משתמשות ב-Data Boost כברירת מחדל, ואי אפשר לשנות את זה. לכן, כדי להריץ שאילתות כאלה, צריך הרשאות נוספות.
יצירת תצוגה במערך נתונים חיצוני
אי אפשר ליצור תצוגה במערך נתונים חיצוני. עם זאת, אפשר ליצור תצוגה במערך נתונים רגיל שמבוססת על טבלה במערך נתונים חיצוני. מידע נוסף זמין במאמר יצירת תצוגות.
מחיקה של מערך נתונים חיצוני
מחיקה של מערך נתונים חיצוני זהה למחיקה של כל מערך נתונים אחר ב-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, אבל יש תמיכה בתצוגות חומריות לא מצטברות בגרסת בטא.
- אין תמיכה בשילוב עם קטלוג הידע. לדוגמה, אין תמיכה בפרופילי נתונים ובסריקות של איכות הנתונים.
- אין תמיכה בתגים ברמת הטבלה.
- ההשלמה האוטומטית של SQL לא פועלת עם טבלאות חיצוניות של Spanner כשכותבים שאילתות.
- אי אפשר להשתמש בסריקה באמצעות Sensitive Data Protection במערכי נתונים חיצוניים.
- אי אפשר לשתף מערכי נתונים חיצוניים באמצעות BigQuery sharing (לשעבר Analytics Hub).
- אם מערך הנתונים החיצוני של Spanner משתמש בפרטי כניסה של משתמשי קצה (EUC), אפשר ליצור תצוגה מורשית שמפנה למערך הנתונים החיצוני. עם זאת, כשמבצעים שאילתה בתצוגה הזו, פרטי המשתמש שביצע את השאילתה יישלחו אל Spanner.
- אם מערך הנתונים החיצוני של Spanner משתמש בקישור למשאבים ב-Cloud לצורך הקצאת הרשאות גישה, אפשר ליצור תצוגה מורשית או שגרה מורשית שמפנה למערך הנתונים החיצוני.