Google Cloud מאפשר לשתף נתונים מ-BigQuery עם SAP Business Data Cloud (BDC) בלי להעתיק אותם. כדי לפרסם נתונים ב-SAP BDC, צריך להגדיר נקודת קצה של קטלוג REST של Apache Iceberg בקטלוג הייעודי לזמן ריצה של Lakehouse, או להגדיר מוצר נתונים של Knowledge Catalog.
לסקירה כללית של השילוב הזה ותרחישי השימוש שלו, קראו את המאמר מידע על השילוב של SAP BDC.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake and Dataplex APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake and Dataplex APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- קטגוריה של Cloud Storage: יוצרים קטגוריה של Cloud Storage כדי לאחסן את המטא-נתונים ואת קובצי הנתונים של Iceberg. הוראות מפורטות מופיעות במאמר יצירת קטגוריות. כל המשאבים, כולל קטגוריית הקצה העורפי, חייבים להיות באותו אזור כדי למנוע כשלים בצינור עיבוד הנתונים של ההגדרות האישיות.
- נקודת קצה של קטלוג REST של Apache Iceberg: מגדירים נקודת קצה של קטלוג REST של Apache Iceberg בקטלוג הייעודי לזמן ריצה של Lakehouse, עם הפצה של פרטי כניסה, שמכיל את מרחבי השמות והטבלאות שרוצים לשתף. הקטלוג הזה משתמש בקטגוריה של Cloud Storage כמחסן שלו. הוראות מפורטות זמינות במאמר הגדרת נקודת הקצה של קטלוג REST של Apache Iceberg.
- קטלוג חיבורים של Delta Sharing: הכינו קטלוג חיבורים רשום של Delta Sharing לחיבור SAP BDC. זה אותו קטלוג שנוצר במהלך ההגדרה הראשונית לשיתוף נתונים מ-SAP BDC ל-BigQuery. אין צורך ליצור קטלוג חדש. הוראות מפורטות זמינות במאמר הגדרת חיבור חוצה-עננים ל-SAP Business Data Cloud.
- Workload Identity Federation (WIF): הכנה להגדרת WIF כך שייתן אמון במנפיק האימות של SAP BDC. אתם מגדירים את זה בקטע הבא.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרה של איחוד שירותי אימות הזהות של עומסי עבודה ולפרסום נתונים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
ניהול של איחוד שירותי אימות הזהות של עומסי עבודה:
אדמין של מאגר זהויות של עומסי עבודה ב-IAM (
roles/iam.workloadIdentityPoolAdmin) -
פרסום מוצרי נתונים:
אדמין של BigLake (
roles/biglake.admin) -
צפייה במטא-נתונים של הקטלוג (ניתנת לחשבון ה-WIF):
BigLake Viewer (
roles/biglake.viewer) -
צריכת מכסת שירות (ניתנת לחשבון המשתמש ב-WIF):
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
תהליך עבודה כללי
כדי לפרסם נתונים ב-SAP BDC, פועלים לפי השלבים הבאים:
- הגדרת איחוד שירותי אימות הזהות של עומסי עבודה: יוצרים מאגר וספק של איחוד שירותי אימות הזהות של עומסי עבודה כדי ליצור אמון עם מנפיק ה-OIDC של SAP BDC.
- הקצאת תפקידים לחשבון המשתמש המאומת: נותנים לזהות המאומתת הרשאות לצפייה במטא-נתונים של הקטלוג ולצריכת מכסת השירות.
- פרסום נתונים: מפרסמים את נקודת הקצה של קטלוג Apache Iceberg REST או מוצר נתונים של Knowledge Catalog ב-SAP BDC באמצעות ה-CLI של
gcloud.
הגדרה של איחוד שירותי אימות הזהות של עומסי עבודה
כדי לאפשר ל-SAP BDC לגשת למשאבים שלכם ב-Borderless Lakehouse בלי לייצא מפתחות של חשבונות שירות, צריך להגדיר את Workload Identity Federation (WIF). כך נוצר אמון בין Google Cloud לבין מנפיק ה-OIDC של SAP BDC.
כדי להגדיר את המאגר והספק של WIF:
איך מקבלים את ה-URI של המנפיק
מאחזרים את ה-URI של מנפיק ה-OIDC מקטלוג החיבורים של Delta Sharing. צריך את ה-URI הזה כדי להגדיר את ספק ה-WIF.
gcloud biglake delta-sharing catalogs describe CONNECTION_CATALOG_ID \ --project="PROJECT_ID"
בפלט הפקודה, מאתרים את השדה federatedIdentityIssuer שמכיל את ה-URI של המנפיק.
יצירת מאגר הזהויות של עומסי העבודה
יוצרים מאגר זהויות של עומסי עבודה כדי לקבץ זהויות חיצוניות.
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --display-name="POOL_DISPLAY_NAME" \ --project="PROJECT_ID"
יצירת ספק OIDC
יוצרים ספק OIDC במאגר כדי להגדיר אמון ולמפות הצהרות של אסימונים.
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER_URI" \ --attribute-mapping="google.subject=assertion.sub.split('://')[1].split('.')[0]" \ --project="PROJECT_ID"
הקצאת תפקידים לחשבון המשתמש המאומת
נותנים הרשאה לזהות המאוחדת מהמאגר המהימן לשלוח קריאות ל-Google APIs הנדרשים. אתם יכולים לאשר UUID ספציפי של נושא או את המאגר כולו.
כדי לאשר נושא ספציפי (מומלץ):
gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/biglake.viewer" \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/WIF_SUBJECT" gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/serviceusage.serviceUsageConsumer" \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/WIF_SUBJECT"
מחליפים את WIF_SUBJECT במזהה הייחודי האוניברסלי (UUID) שהונפק על ידי המנפיק בצד של SAP בשביל עומס העבודה.
כדי לאשר את כל הזהויות במאגר (פחות מגביל, מתאים לסביבות בדיקה):
gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/biglake.viewer" \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*" gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/serviceusage.serviceUsageConsumer" \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*"
פרסום נתונים ב-SAP BDC
אתם יכולים לפרסם נקודת קצה של קטלוג REST של Apache Iceberg או מוצר נתונים של Knowledge Catalog שמכיל טבלאות Iceberg באמצעות מסוף Google Cloud או Google Cloud CLI.
קטלוג REST של Iceberg
לפני הפרסום, ודאו שבטבלאות Iceberg מוגדרים מפתחות ראשיים באמצעות identifier-field-ids במטא-נתונים של טבלת Iceberg, ושיש לפחות שורה אחת, כי SAP BDC דורש את שניהם לשאילתות. כל עמודה שמוזכרת ב-identifier-field-ids צריכה להיות מוגדרת כ-required: true (לא ניתנת לאיפוס) בסכימה של Iceberg. אם בטבלה אין מפתחות ראשיים או שהיא מכילה שדות מפתח שניתן להגדיר כ-null, עיינו במאמר עדכון סכימת הטבלה של Iceberg למפתחות ראשיים כדי לעדכן אותם באמצעות BigLake API בארכיטקטורת REST.
המסוף
נכנסים לדף Lakehouse Runtime Catalog במסוף Google Cloud .
בחלונית הניווט, מרחיבים את הפרויקט ובוחרים את Delta Catalog (קטלוג החיבורים) שבו רוצים להשתמש לפרסום.
לוחצים על Publish Data Product.
מזינים את פרטי השיתוף הנדרשים, כולל בחירת קטלוג Iceberg REST לפרסום.
לוחצים על פרסום.
gcloud
מוודאים שנקודת הקצה של קטלוג REST של Apache Iceberg קיימת ומקבלים את הפרטים שלה:
gcloud biglake iceberg catalogs describe ICEBERG_CATALOG_ID \ --project="PROJECT_ID"
מפרסמים את נקודת הקצה של קטלוג Apache Iceberg REST ב-SAP BDC. שימו לב שקטלוג החיבור, קטלוג Iceberg והקטגוריה של Cloud Storage צריכים להיות באותו אזור.
gcloud biglake data-product-sharing publish \ --connection-catalog="projects/PROJECT_ID/catalogs/CONNECTION_CATALOG_ID" \ --share="SAP_SHARE_NAME" \ --sap-federated-identity-provider="projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \ --iceberg-catalog="projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID" \ --title="TITLE_TEXT" \ --short-description="SHORT_DESCRIPTION_TEXT" \ --description="DETAILED_DESCRIPTION_TEXT" \ --project="PROJECT_ID"
אפשר לגלות את נקודת הקצה (endpoint) של קטלוג REST של Apache Iceberg שפורסם ב-SAP BDC, ולהתקין אותה ב-SAP Datasphere כטבלה מרוחקת.
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTION_CATALOG_ID: קטלוג החיבורים הרשום של Delta Sharing שנוצר במהלך ההגדרה הראשונית לשיתוף נתונים מ-SAP BDC ל-BigQuery. הוא זהה לקטלוג של Delta Sharing שמוזכר בהוראות ההגדרה, ולא צריך ליצור קטלוג נוסף כדי לפרסם בחזרה. -
PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud . בדגל--sap-federated-identity-providerצריך להשתמש במספר הפרויקט, ולא במזהה הפרויקט. -
POOL_ID: מזהה המאגר של WIF. -
PROVIDER_ID: המזהה של ספק ה-WIF. -
TITLE_TEXTו-SHORT_DESCRIPTION_TEXT: ערכי התצוגה הנדרשים לשיתוף ב-SAP BDC. -
DETAILED_DESCRIPTION_TEXT: תיאור מפורט (אופציונלי). אל תזינו את אותו הטקסט בתיאור הקצר ובתיאור המפורט, כי SAP דוחה את זה. פעולת הפרסום תידחה גם אם התיאור המפורט מכיל את התיאור הקצר המדויק כמחרוזת משנה. לדוגמה, אם התיאור הקצר הואSales Data, התיאור המפורטLonger Sales Data detailsיידחה כי הוא מכיל אתSales Data. עם זאת, אפשר להוסיף תיאור מפורט של "מידע ארוך יותר על המכירות".
-
מוצר נתונים ב-Knowledge Catalog
לחלופין, אתם יכולים לפרסם מוצר נתונים של Knowledge Catalog. מוצר נתונים הוא אוסף לוגי של נכסי נתונים (כמו טבלאות או תצוגות) שנארזים יחד כדי לפתור בעיות עסקיות ספציפיות. במקום לפרסם קטלוג מלא, אתם יכולים לבחור טבלאות Apache Iceberg ספציפיות, לקבץ אותן למוצר נתונים ולפרסם את האוסף הזה ב-SAP BDC.
המסוף
נכנסים לדף Knowledge Catalog במסוף Google Cloud .
בתפריט הניווט, לוחצים על Data products.
לוחצים על מוצר הנתונים שרוצים לפרסם כדי לפתוח את דף הפרטים שלו.
לוחצים על שיתוף ובוחרים באפשרות פרסום ב-SAP.
בחלונית Publish Data Product to SAP, מגדירים את השדות הבאים:
- שם השיתוף: מזינים את שם השיתוף ב-SAP BDC.
- Delta catalog: בוחרים את קטלוג החיבורים הרשום של Delta Sharing.
- Workload identity: בוחרים או מזינים את ספק מאגר הזהויות של עומסי העבודה.
לוחצים על פרסום.
gcloud
יוצרים את מוצר הנתונים:
gcloud dataplex data-products create DATA_PRODUCT_ID \ --location="LOCATION" \ --display-name="TITLE_TEXT" \ --description="SHORT_DESCRIPTION_TEXT" \ --owner-emails="OWNER_EMAIL" \ --project="PROJECT_ID"
השדה
--display-nameממופה לשדהtitleב-SAP BDC, והשדה--descriptionממופה לשדהshort_description.מקשרים נכס של טבלת Apache Iceberg שמנוהל על ידי Lakehouse למוצר הנתונים:
gcloud dataplex data-products data-assets create DATA_ASSET_ID \ --data-product="DATA_PRODUCT_ID" \ --location="LOCATION" \ --resource="//biglake.googleapis.com/projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME" \ --project="PROJECT_ID"
כשמגדירים נכסים במוצר נתונים, לנכסי הטבלה חייבים להיות מפתחות ראשיים שמוגדרים באמצעות
identifier-field-idsבמטא-נתונים של טבלת Iceberg (כשכל עמודות המזהים מסומנות בתורrequired: true) ולפחות שורה אחת. אם בטבלה אין מפתחות ראשיים או שהיא מכילה שדות מפתח שניתנים לאיפוס, עיינו במאמר עדכון סכימת טבלה של Iceberg למפתחות ראשיים כדי לעדכן אותם באמצעות BigLake API בארכיטקטורת REST. כל נכסי הנתונים במוצר נתונים אחד חייבים להיות שייכים לאותו קטלוג REST של Apache Iceberg. מוצר נתונים יכול להכיל עד 50 טבלאות, וכדי לפרסם אותו הוא חייב להכיל לפחות נכס נתונים תקין אחד. יכול להיות שטבלאות Iceberg לא יופיעו מיד במסוף Google Cloud .אופציונלי: מאמתים את הנכסים במוצר הנתונים:
gcloud dataplex data-products data-assets list \ --data-product="DATA_PRODUCT_ID" \ --location="LOCATION" \ --project="PROJECT_ID"
מפרסמים את מוצר הנתונים ב-SAP BDC. חשוב לוודא שקטלוג החיבורים, מוצר הנתונים והמשאבים הבסיסיים נמצאים באותו אזור.
gcloud biglake data-product-sharing publish \ --connection-catalog="projects/PROJECT_ID/catalogs/CONNECTION_CATALOG_ID" \ --share="SAP_SHARE_NAME" \ --sap-federated-identity-provider="projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \ --data-product="projects/PROJECT_ID/locations/LOCATION/dataProducts/DATA_PRODUCT_ID" \ --project="PROJECT_ID"
אפשר למצוא את מוצר הנתונים שפורסם ב-SAP BDC ולהתקין אותו ב-SAP Datasphere כטבלה מרוחקת. ב-SAP BDC, מוצר הנתונים שפורסם מקבל את השם והתיאור הקצר שהוגדרו כשנוצר מוצר הנתונים ב-Knowledge Catalog.
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTION_CATALOG_ID: קטלוג החיבורים הרשום של Delta Sharing שנוצר במהלך ההגדרה הראשונית לשיתוף נתונים מ-SAP BDC ל-BigQuery. הוא זהה לקטלוג של Delta Sharing שמוזכר בהוראות ההגדרה, ולא צריך ליצור קטלוג נוסף כדי לפרסם בחזרה. -
PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud. ב-sap-federated-identity-providerצריך להשתמש במספר הפרויקט, ולא במזהה הפרויקט. -
POOL_ID: מזהה מאגר ה-WIF. -
PROVIDER_ID: המזהה של ספק ה-WIF. -
DATA_PRODUCT_ID: המזהה של מוצר הנתונים ב-Knowledge Catalog. -
LOCATION: המיקום של מוצר הנתונים ב-Knowledge Catalog. -
SAP_SHARE_NAME: השם של השיתוף ב-SAP BDC.
-
גישה לנתוני Google Cloud ב-SAP BDC
אחרי שמפרסמים את הנתונים ב-SAP BDC, אפשר לגשת לנתוני Google Cloud באופן מקורי בסביבת SAP. למידע נוסף על התקנה ושימוש במוצרי נתונים ב-SAP כטבלאות מרוחקות, קראו את המאמר Installing Data Products במסמכי התיעוד של SAP.
המאמרים הבאים
- פתרון בעיות בגישה ל-SAP BDC
- Installing Data Products במסמכי התיעוד של SAP.