התחברות ל-SAP Datasphere

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

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

  1. מפעילים את BigQuery Connection API.

    להפעלת ה-API

  2. יוצרים משתמש במסד הנתונים של SAP Datasphere. שימו לב לשם המשתמש, לסיסמה, לשם המארח וליציאה של BigQuery שאליהם אתם מתחברים.

  3. מגדירים את הדייר ב-SAP Datasphere כך שיקבל תנועה מכתובות ה-IP שבחרתם, באחת מהדרכים הבאות:

    • מוסיפים את כל טווחי כתובות ה-IP של Google לרשימת ההיתרים "כתובות IP מהימנות" ב-SAP Datasphere.
    • פותחים את הדייר של SAP Datasphere לחיבורים מכל כתובות ה-IP על ידי הוספת 0.0.0.0/0 לרשימת ההיתרים.
    • מגדירים את החיבור באמצעות חיבורי רשת כדי ש-BigQuery יפתח את החיבור מכתובת IP סטטית.

    למידע נוסף על הגדרת הדייר ב-SAP Datasphere, קראו את המאמר הוספת כתובת IP לרשימת ההיתרים של כתובות ה-IP.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להתחברות ל-SAP Datasphere, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

הגדרת מחבר רשת

שאילתות לכמה מסדי נתונים יוצרות חיבור ישיר למסד הנתונים באמצעות BigQuery Connection API, ולכן צריך לאפשר תנועה מ- Google Cloud למנוע של מסד הנתונים. כדי לשפר את האבטחה, מומלץ לאפשר רק תנועה שמגיעה מהשאילתות שלכם ב-BigQuery. אפשר להגביל את התנועה באחת משתי דרכים:

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

שתי השיטות האלה נתמכות באמצעות שימוש בחיבורי רשת.

מגבלות

החיבורים עם חיבורי רשת כפופים למגבלות הבאות:

  • באזורים רגילים, מחברי הרשת צריכים להיות באותו אזור שבו נמצא החיבור. בחיבורים במיקום US שכולל מספר אזורים, מחבר הרשת צריך להיות באזור us-central1. בחיבורים במספר אזורים ב-EU, מחבר הרשת צריך להיות באזור europe-west4.
  • אי אפשר לערוך את חיבור הרשת אחרי שיוצרים אותו. כדי לשנות את ההגדרות, צריך ליצור מחדש את חיבור הרשת.
  • אי אפשר למחוק חיבורי רשת בלי ש-BigQuery ימחק את המשאבים שהוקצו. כדי להתחיל את תהליך המחיקה, פנו לתמיכה של BigQuery.

יצירת חיבור לרשת

כשיוצרים חיבור לאיחוד שאילתות, אפשר לציין מחבר רשת אופציונלי שמספק קישוריות לרשת של מסד הנתונים. כדי ליצור מחבר רשת, אפשר להגדיר כתובת IP סטטית או ליצור VPN. בשתי האפשרויות, מבצעים את הפעולות הבאות:

  1. אם עדיין אין לכם רשת VPC ורשת משנה, צרו רשת VPC ורשת משנה.

  2. בהתאם לשיטת הניתוב שבחרתם, מבצעים אחת מהפעולות הבאות:

  3. יוצרים חיבור לרשת באמצעות הרשת, האזור ורשת המשנה שיצרתם.

  4. אופציונלי: בהתאם למדיניות האבטחה של הארגון, יכול להיות שתצטרכו להגדיר את חומת האש של Google Cloud כדי לאפשר תעבורת נתונים יוצאת, על ידי יצירת כלל חומת אש עם ההגדרות הבאות:

    • מגדירים את היעדים לכל המופעים ברשת.
    • מגדירים את Destination IPv4 ranges לכל טווח כתובות ה-IP.
    • מגדירים את Specified protocols and ports ליציאה שבה משתמש מסד הנתונים.
  5. מגדירים את חומת האש הפנימית כך שתאפשר תעבורת נתונים נכנסת (ingress) מכתובת ה-IP הסטטית שיצרתם. התהליך הזה משתנה בהתאם למקור הנתונים.

חיבור BigQuery ל-SAP Datasphere

אפשר לקשר את BigQuery ל-SAP Datasphere במסוף Google Cloud או בכלי שורת הפקודה של BigQuery.

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית Explorer, לוחצים על Add data.

    תיבת הדו-שיח Add data נפתחת.

  3. בחלונית Filter By, בקטע Data Source Type, בוחרים באפשרות Databases.

    אפשר גם להזין SAP HANA בשדה Search for data sources.

  4. בקטע Featured data sources, לוחצים על SAP HANA.

  5. לוחצים על כרטיס הפתרון SAP HANA: BigQuery Federation.

  6. בתיבת הדו-שיח External data source:

    • בקטע Connection type, בוחרים באפשרות SAP HANA.
    • בשדה Connection ID, מזינים מזהה חיבור כדי לזהות את החיבור הזה.
    • בשדה Location type, מציינים את האזור של מערך הנתונים ב-BigQuery שרוצים לשלב עם הנתונים מ-SAP Datasphere. שאילתות שמשתמשות בחיבור הזה חייבות לפעול מהאזור הזה.
    • אופציונלי: בשדה Friendly name, מזינים שם ידידותי למשתמש בשביל החיבור, למשל My connection resource. השם הידידותי יכול להיות כל ערך שיעזור לכם לזהות את משאב החיבור אם תצטרכו לשנות אותו בהמשך.
    • אופציונלי: בשדה Description, מזינים תיאור למשאב החיבור.
    • בקטע Encryption, בוחרים באפשרות Google-managed encryption key או באפשרות Customer-managed encryption key (CMEK). השימוש ב-CMEK הוא אופציונלי.
    • בשדה Host:port: מזינים את המארח והיציאה של המכונה של מסד הנתונים של SAP, כפי שמוצג בקטע Database User Details במסוף האינטרנט של SAP Datasphere, בפורמט HOST:PORT.
    • אופציונלי: בשדה Network attachment, מזינים את הנתיב לחיבור הרשת שמגדיר את תצורת הרשת שמשמשת ליצירת חיבור ל-SAP Datasphere.
    • בשדה Username: מזינים את שם המשתמש של מסד הנתונים מהקטע Database User Details במסוף האינטרנט של SAP Datasphere. לדוגמה, MY_SPACE#BIGQUERY.
    • בשדה Password: מזינים את הסיסמה של המשתמש במסד הנתונים.
  7. לוחצים על יצירת חיבור.

BQ

מזינים את הפקודה bq mk עם הדגלים הבאים:

  bq mk \
  --connection \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  --connector_configuration '{
    "connector_id": "saphana",
    "endpoint": {
      "host_port": "HOST_PORT"
    },
    "authentication": {
      "username_password": {
        "username": "USERNAME",
        "password": {
          "plaintext": "PASSWORD"
        }
      }
    },
    "network": {
      "private_service_connect": {
        "network_attachment": "NETWORK_ATTACHMENT"
      }
    }
  }' \
  CONNECTION_ID

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

  • ‫LOCATION: מציינים את האזור של מערך הנתונים ב-BigQuery שרוצים לשלב עם הנתונים מ-SAP Datasphere. שאילתות שמשתמשות בחיבור הזה חייבות לפעול מהאזור הזה.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫HOST_PORT: מזינים את המארח והיציאה של המכונה של מסד הנתונים של SAP, כפי שמופיעים בקטע Database User Details במסוף האינטרנט של SAP Datasphere, בפורמט HOST:PORT.
  • ‫NETWORK_ATTACHMENT (אופציונלי): מזינים את מחבר הרשת בפורמט projects/{project}/regions/{region}/networkAttachments/{networkattachment}. בשדה הזה אפשר להגדיר את החיבור ל-SAP Datasphere כך ש-BigQuery יפתח את החיבור מכתובת IP סטטית.
  • ‫USERNAME: מזינים את שם המשתמש של מסד הנתונים מ-Database User Details במסוף האינטרנט של SAP Datasphere. לדוגמה: MY_SPACE#BIGQUERY.
  • ‫PASSWORD: מזינים את הסיסמה של המשתמש במסד הנתונים.
  • ‫CONNECTION_ID: מזינים מזהה חיבור כדי לזהות את החיבור הזה.

דגל אופציונלי:

  • ‫--kms_key_name: מפתח הצפנה בניהול הלקוח. אם לא מציינים את המדיניות, פרטי הכניסה מוגנים על ידי ברירת המחדל Google-owned and Google-managed encryption key.

הערה: אם הגדרתם את החיבור כך שישתמש בחיבור לרשת, אתם צריכים להריץ שאילתה מאוחדת ראשונית כדי לסנכרן את הפרויקט עם החיבור לרשת לפני שהוא יהפוך לפעיל באופן מלא.

שיתוף חיבורים עם משתמשים

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

  • ‫roles/bigquery.connectionUser: מאפשרת למשתמשים להשתמש בחיבורים כדי להתחבר למקורות נתונים חיצוניים ולהריץ עליהם שאילתות.

  • ‫roles/bigquery.connectionAdmin: מאפשר למשתמשים לנהל חיבורים.

במאמר תפקידים והרשאות מוגדרים מראש תוכלו לקרוא מידע נוסף על תפקידים והרשאות של IAM ב-BigQuery.

בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף BigQuery.

    כניסה ל-BigQuery

    הקישורים מופיעים בפרויקט בקבוצה שנקראת Connections.

  2. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

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

  3. לוחצים על הפרויקט, לוחצים על Connections ובוחרים חיבור.

  4. כדי לשתף חיבור, בחלונית פרטים לוחצים על שיתוף. לאחר מכן מבצעים את הפעולות הבאות:

    1. בתיבת הדו-שיח Connection permissions, משתפים את החיבור עם חשבונות משתמשים אחרים על ידי הוספה או עריכה של חשבונות משתמשים.

    2. לוחצים על Save.

BQ

אי אפשר לשתף חיבור באמצעות כלי שורת הפקודה של BigQuery. כדי לשתף חיבור, משתמשים במסוף Google Cloud או ב-BigQuery Connections API.

API

משתמשים בשיטה projects.locations.connections.setIAM בקטע של מאמרי העזרה של ה-API בנושא BigQuery Connections API בארכיטקטורת REST, ומספקים מכונה של המשאב policy.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.resourcenames.ResourceName;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import com.google.iam.v1.Binding;
import com.google.iam.v1.Policy;
import com.google.iam.v1.SetIamPolicyRequest;
import java.io.IOException;

// Sample to share connections
public class ShareConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    shareConnection(projectId, location, connectionId);
  }

  static void shareConnection(String projectId, String location, String connectionId)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ResourceName resource = ConnectionName.of(projectId, location, connectionId);
      Binding binding =
          Binding.newBuilder()
              .addMembers("group:example-analyst-group@google.com")
              .setRole("roles/bigquery.connectionUser")
              .build();
      Policy policy = Policy.newBuilder().addBindings(binding).build();
      SetIamPolicyRequest request =
          SetIamPolicyRequest.newBuilder()
              .setResource(resource.toString())
              .setPolicy(policy)
              .build();
      client.setIamPolicy(request);
      System.out.println("Connection shared successfully");
    }
  }
}

תמחור

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