יצירת חיבורים חוצי-עננים (cross-cloud)

קישורים חוצי-עננים הם קישורים ל-BigQuery שמאפשרים להעביר נתונים מ-Amazon Web Services‏ (AWS), מ-Microsoft Azure ומ-Salesforce Data 360 אל BigQuery כדי לשלוח שאילתות. החיבורים האלה הם חלופה לחיבורים רגילים ל-BigQuery שמשתמשים ב-BigQuery Omni, שבהם BigQuery פורס עובדי מחשוב קלים באזורים מרוחקים כדי שיהיה אפשר לשלוח שאילתות לנתונים בעננים אחרים בלי להעביר נתונים.

לעומסי עבודה יש יתרונות בחיבורים חוצי-עננים בהשוואה לחיבורים רגילים, מהסיבות הבאות:

  • עקביות בתכונות. כשאתם מעבירים את הנתונים שלכם מעננים אחרים ל-BigQuery, אתם מקבלים גישה ישירה ליכולות ה-AI של BigQuery, ל-Gemini Enterprise Agent Platform, לתצוגות מהותיות, לפונקציות בהגדרת המשתמש (UDF) ולתכונות אחרות שלא זמינות דרך חיבורים רגילים.
  • יעילות מבחינת עלות. עומסי עבודה שמשתמשים בחיבורים חוצי-עננים צורכים התחייבויות והזמנות רגילות של משבצות, וכך אין צורך לנהל קיבולות נפרדות של משאבי מחשוב.
  • שמירה חכמה במטמון. בזמן שהנתונים מועברים בין עננים, BigQuery שומר באופן אוטומטי קטעי נתונים במטמון באופן מקומי, כדי למנוע עמלות משמעותיות על תעבורת נתונים יוצאת חוצה-עננים (cross-cloud) בשאילתות הבאות. מידע נוסף זמין במאמר שמירה חכמה במטמון.

אם עומס העבודה שלכם כולל קטלוגים של Apache Iceberg או שאתם צריכים תמיכה בשאילתות במנועים אחרים מלבד BigQuery, כדאי להשתמש במקום זאת ביכולת הגישה לנתונים חוצי-עננים של Lakehouse ללא גבולות.

לפני שמתחילים

להקצות תפקידים של ניהול זהויות והרשאות גישה (IAM) ותפקידים של צד שלישי, שנותנים למשתמשים את ההרשאות הנדרשות כדי לבצע כל משימה במאמר הזה.

התפקידים הנדרשים ב-BigQuery

כדי לקבל את ההרשאות שנדרשות ליצירת חיבור חוצה-עננים, בקשו מהאדמין להקצות לכם את התפקיד אדמין ב-BigQuery ‏ (roles/bigquery.admin) ב-IAM בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

תפקידים נדרשים של צד שלישי

כדי לקבל את ההרשאות שדרושות ליצירת חיבור חוצה-עננים, ודאו שיש לכם את התפקידים הבאים של צד שלישי:

  • ב-AWS: תפקיד שמאפשר ליצור מדיניות ותפקידים של IAM בחשבון AWS.
  • ב-Azure: תפקיד שמאפשר לנהל רישומי אפליקציות ב-Microsoft Entra ID (Azure AD) ולהקצות תפקידים, כמו Storage Blob Data Reader, בחשבון היעד ב-Azure.

יצירת חיבורים חוצי-עננים ב-AWS

כדי ליצור חיבור חוצה-עננים ב-AWS:

  1. יוצרים מדיניות AWS IAM ל-BigQuery, כמו שעושים בחיבורים רגילים ל-BigQuery.
  2. יוצרים תפקיד AWS IAM ל-BigQuery, כמו שעושים בחיבורים רגילים ל-BigQuery.
  3. כדי ליצור משאב חיבור, משתמשים בפקודה bq mk --connection:

    bq mk --connection \
        --connection_type='AWS' \
        --location=LOCATION \
        --project_id=PROJECT_ID \
        --properties='{"accessRole":{"iamRoleId":"arn:aws:iam::AWS_ACCOUNT_ID:role/ROLE_NAME"}}' \
        CONNECTION_ID

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫LOCATION: מיקום סטנדרטי ב-BigQuery, ולא מיקום ב-BigQuery Omni. לקבלת הדרכה לבחירת אזור, ראו המלצות לאזורים.
    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • ‫AWS_ACCOUNT_ID: המזהה של משתמש AWS IAM מהשלב הקודם.
    • ‫ROLE_NAME: שם המדיניות של תפקיד AWS שבחרתם.
    • ‫CONNECTION_ID: מזהה שנותנים למשאב החיבור הזה.

    מידע נוסף על מאפייני החיבור של AWS זמין במאמר AwsProperties.

  4. כדי לרשום את פרטי חשבון השירות, משתמשים בפקודה bq show:

    bq show --connection \
        --location=LOCATION \
        PROJECT_ID.LOCATION.CONNECTION_ID
  5. מוסיפים מדיניות אמון לתפקיד ב-AWS באמצעות פרטי חשבון השירות, כמו שעושים בחיבורים רגילים ל-BigQuery.

אחרי שיצרתם את החיבור חוצה-העננים של AWS, אתם יכולים ליצור טבלאות ומערכי נתונים כדי לשלוח שאילתות לנתונים המרוחקים.

דוגמאות ל-AWS

בדוגמה הבאה נוצרת טבלה חיצונית כדי לשלוח שאילתות לקובצי Parquet ישירות מקטגוריה של Amazon Simple Storage Service (Amazon S3) באמצעות חיבור חוצה-עננים:

CREATE SCHEMA `my-project.aws_raw_data`
  OPTIONS (
    location = 'us-east4');

CREATE EXTERNAL TABLE `my-project.aws_raw_data.sales_parquet`
WITH CONNECTION `us-east4.my-aws-connection`
  OPTIONS (
    format = 'PARQUET',
    uris = ['s3://my-data-bucket/sales/year=2025/*']);

בדוגמה הבאה, מסד נתונים שלם מאוחד ב-BigQuery באמצעות AWS Glue עם חיבור חוצה-עננים:

CREATE EXTERNAL SCHEMA `my-project.aws_glue_data`
WITH CONNECTION `us-east4.my-aws-connection`
  OPTIONS (
    location = 'us-east4',
    external_source = 'aws-glue://arn:aws:glue:us-east-4:123456789:database/test_database');

מידע נוסף על קישור של AWS Glue זמין במאמר יצירה וניהול של מערכי נתונים מקושרים של AWS Glue.

יצירת חיבורים חוצי-עננים ב-Azure

כדי ליצור חיבור חוצה-עננים ל-Azure:

  1. יוצרים אפליקציה בדייר ב-Azure כמו שיוצרים חיבורים רגילים ל-BigQuery, ורושמים את מזהי האפליקציה (לקוח) והספרייה (דייר).
  2. מקצים תפקיד לאפליקציה ב-Azure, כמו שעושים בחיבורים רגילים ל-BigQuery.
  3. כדי ליצור משאב חיבור, משתמשים בפקודה bq mk --connection:

    bq mk --connection \
        --connection_type='Azure' \
        --tenant_id=TENANT_ID \
        --location=LOCATION \
        --federated_azure=true \
        --federated_app_client_id=APP_ID \
        --project_id=PROJECT_ID \
        CONNECTION_ID

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫TENANT_ID: מזהה הדייר של ספריית Azure שמכילה את חשבון Azure.
    • ‫LOCATION: מיקום סטנדרטי ב-BigQuery, ולא מיקום ב-BigQuery Omni. לקבלת הדרכה לבחירת אזור, ראו המלצות לאזורים.
    • ‫APP_ID: מזהה האפליקציה (הלקוח) ב-Azure.
    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • ‫CONNECTION_ID: מזהה שנותנים למשאב החיבור הזה.

    מידע נוסף על מאפייני החיבור של Azure זמין במאמר AzureProperties.

  4. כדי לרשום את פרטי חשבון השירות, משתמשים בפקודה bq show:

    bq show --connection \
        --location=LOCATION \
        PROJECT_ID.LOCATION.CONNECTION_ID
  5. מוסיפים פרטי כניסה מאוחדים באמצעות פרטי חשבון השירות, כמו שעושים בחיבורים רגילים ל-BigQuery.

אחרי שיצרתם את החיבור חוצה-העננים ל-Azure, אתם יכולים ליצור טבלאות ומערכי נתונים כדי לשלוח שאילתות לנתונים המרוחקים.

דוגמאות ל-Azure

בדוגמה הבאה נוצרת טבלה חיצונית כדי לשלוח שאילתות לקובצי Parquet ישירות ממאגר Azure Blob Storage באמצעות חיבור חוצה-עננים:

CREATE SCHEMA `my-project.azure_raw_data`
  OPTIONS (
    location = 'us-east4');

CREATE EXTERNAL TABLE `my-project.azure_raw_data.sales_parquet`
WITH CONNECTION `us-east4.my-azure-connection`
  OPTIONS (
    format = 'PARQUET',
    uris = ['azure://mystorageaccount.blob.core.windows.net/mycontainer/sales/year=2025/*']);

בדוגמה הבאה נוצרת טבלה חיצונית כדי לשלוח שאילתות לייצוא של קובצי CSV גולמיים ממאגר Blob Storage באמצעות חיבור חוצה-עננים:

CREATE EXTERNAL TABLE `my-project.azure_raw_data.daily_logs_csv`
WITH CONNECTION `us-east4.my-azure-connection`
  OPTIONS (
    format = 'CSV',
    skip_leading_rows = 1,
    uris = ['azure://mystorageaccount.blob.core.windows.net/mycontainer/logs/*.csv']);

יצירת חיבורים חוצי-עננים ב-Data 360

כדי ליצור קישור חוצה-עננים ב-Data 360, פועלים לפי השלבים לקישור מערך נתונים של Data 360 ל-BigQuery, אבל במקום ליצור את מערך הנתונים המקושר במיקום של BigQuery Omni, יוצרים אותו במיקום רגיל של BigQuery. להנחיות לבחירת אזור, ראו המלצות לאזורים.

אחרי שתעדכנו את השאילתות כך שישתמשו במערכי הנתונים החדשים, תוכלו למחוק את מערכי הנתונים המקושרים הקודמים ואת התצוגות המהותיות של BigQuery Omni.

המלצות לגבי האזור

כשבוחרים אזור סטנדרטי ב-BigQuery לחיבור חוצה-עננים, כדאי לבחור את האזור שהכי קרוב פיזית לנתונים כדי להשיג עלות אופטימלית ויעילות ביצועים.

בטבלה הבאה מפורטים אזורי AWS והאזורים המתאימים ביותר ב-BigQuery:

אזור AWS האזור הכי קרוב ב-BigQuery אזורים קרובים אחרים של BigQuery
us-east-1 us-east4 us-east1
us-east5
us-central1
us-east-2 us-east5 us-east4
us-east1
us-central1
us-west-1 us-west2 us-west4
us-west1
us-west3
us-west-2 us-west1 us-west3
us-west4
us-west2
ca-central-1 northamerica-northeast1 northamerica-northeast2
us-east4
us-east5
sa-east-1 southamerica-east1 southamerica-west1
us-east1
us-south1
eu-west-1 europe-west1 europe-west2
europe-west9
europe-west4
eu-west-2 europe-west2 europe-west1
europe-west9
europe-west4
eu-west-3 europe-west9 europe-west1
europe-west2
europe-west3
eu-central-1 europe-west3 europe-west4
europe-west1
europe-west6
eu-central-2 europe-west6 europe-west8
europe-west12
europe-west3
eu-north-1 europe-north1 europe-west4
europe-central2
europe-west1
eu-south-1 europe-west8 europe-west12
europe-west6
europe-west3
eu-south-2 europe-southwest1 europe-west9
europe-west1
europe-west8
me-central-1 me-central1 me-central2
me-west1
asia-south1
me-south-1 me-central2 me-central1
me-west1
asia-south1
af-south-1 europe-southwest1 me-central2
me-west1
europe-west1
ap-east-1 asia-east2 asia-east1
asia-southeast1
asia-northeast1
ap-northeast-1 asia-northeast1 asia-northeast2
asia-northeast3
asia-east1
ap-northeast-2 asia-northeast3 asia-northeast2
asia-northeast1
asia-east1
ap-northeast-3 asia-northeast2 asia-northeast1
asia-northeast3
asia-east1
ap-south-1 asia-south1 asia-south2
me-central1
asia-southeast1
ap-south-2 asia-south2 asia-south1
asia-southeast1
me-central1
ap-southeast-1 asia-southeast1 asia-southeast2
asia-east1
asia-south1
ap-southeast-2 australia-southeast1 australia-southeast2
asia-southeast2
asia-southeast1
ap-southeast-3 asia-southeast2 asia-southeast1
australia-southeast1
asia-east1

בטבלה הבאה מפורטים אזורים ב-Azure והאזורים המתאימים ביותר ב-BigQuery:

אזור ב-Azure האזור הכי קרוב ב-BigQuery אזורים קרובים אחרים של BigQuery
מזרח ארה"ב us-east4 us-east1
us-east5
us-central1
מזרח ארה"ב 2 us-east4 us-east1
us-east5
us-south1
מערב ארה"ב us-west1 us-west2
us-west3
us-west4
מערב ארה"ב 2 us-west1 us-west4
us-west3
us-west2
מערב ארה"ב 3 us-west4 us-west2
us-west3
us-west1
מרכז ארה"ב us-central1 us-east5
us-east4
us-east1
צפון מרכז ארה"ב us-east5 us-central1
us-east4
us-east1
דרום מרכז ארה"ב us-south1 us-east5
us-central1
us-east1
מרכז-מערב ארה"ב us-west3 us-central1
us-west4
us-west2
מרכז קנדה northamerica-northeast2 northamerica-northeast1
us-east5
us-east4
מזרח קנדה northamerica-northeast1 northamerica-northeast2
us-east4
us-east5
מערב אירופה europe-west4 europe-west1
europe-west3
europe-west9
צפון אירופה europe-west1 europe-west2
europe-west9
europe-west4
מרכז צרפת europe-west9 europe-west1
europe-west2
europe-west3
דרום צרפת europe-west9 europe-southwest1
europe-west8
europe-west1
גרמניה, מרכז-מערב europe-west3 europe-west4
europe-west1
europe-west6
צפון גרמניה europe-west3 europe-west4
europe-central2
europe-west2
צפון שווייץ europe-west6 europe-west8
europe-west12
europe-west3
מערב שווייץ europe-west6 europe-west9
europe-west8
europe-west3
דרום בריטניה europe-west2 europe-west1
europe-west9
europe-west4
מערב בריטניה europe-west2 europe-west1
europe-west9
europe-west4
מזרח נורווגיה europe-north1 europe-west4
europe-central2
europe-west1
מערב נורווגיה europe-north1 europe-west4
europe-central2
europe-west1
מרכז שוודיה europe-north1 europe-west4
europe-central2
europe-west1
מזרח אסיה asia-east2 asia-east1
asia-southeast1
asia-northeast1
דרום-מזרח אסיה asia-southeast1 asia-southeast2
asia-east1
asia-south1
מזרח יפן asia-northeast1 asia-northeast2
asia-northeast3
asia-east1
מערב יפן asia-northeast2 asia-northeast1
asia-northeast3
asia-east1
מרכז קוריאה asia-northeast3 asia-northeast2
asia-northeast1
asia-east1
מזרח אוסטרליה australia-southeast1 australia-southeast2
asia-southeast2
asia-southeast1
דרום מזרח אוסטרליה australia-southeast2 australia-southeast1
asia-southeast1
asia-east1
מרכז אוסטרליה australia-southeast1 australia-southeast2
asia-southeast2
asia-southeast1
מערב הודו asia-south1 asia-south2
me-central1
asia-southeast1
מרכז הודו asia-south1 asia-south2
me-central1
asia-southeast1
דרום הודו asia-south1 asia-south2
asia-southeast1
me-central1

המאמרים הבאים