במאמר הזה מוסבר איך להגדיר את Google Cloud כדי לאפשר ל-SAP Business Data Cloud (BDC) לגשת לנתוני BigQuery בלי להעתיק אותם. כדי לעשות את זה, צריך להגדיר את נקודת הקצה של קטלוג Apache Iceberg REST בקטלוג זמן הריצה של Lakehouse for Apache Iceberg או במוצר נתונים של Knowledge Catalog לשיתוף עם SAP.
סקירה כללית על השילוב הזה ועל תרחישי השימוש שלו זמינה במאמר מידע על שילוב SAP BDC.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake and Dataplex APIs.
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.
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 ואת קובצי הנתונים. הוראות מפורטות מופיעות במאמר יצירת קטגוריות. כדי למנוע כשלים בפייפליין ההגדרות, כל המשאבים, כולל קטגוריית קצה עורפי, צריכים להיות באותו אזור.
- קטלוג Apache Iceberg REST: מגדירים נקודת קצה של קטלוג Apache Iceberg REST בקטלוג של Lakehouse runtime עם הפעלה של מכירת פרטי כניסה, שמכיל את מרחבי השמות והטבלאות שרוצים לשתף. הקטלוג הזה משתמש בקטגוריה של Cloud Storage כמחסן נתונים. הוראות מפורטות מופיעות במאמר הגדרת קטלוג REST של Iceberg.
- קטלוג חיבורים של Delta Sharing: צריך להכין קטלוג חיבורים רשום של Delta Sharing לחיבור SAP BDC. זהו אותו קטלוג שנוצר במהלך ההגדרה הראשונית לשיתוף נתונים מ-SAP BDC ל-BigQuery, ואין צורך ליצור קטלוג חדש. הוראות מפורטות מופיעות במאמר הגדרת Lakehouse חוצה עננים ל-SAP BDC.
- איחוד שירותי אימות הזהות של עומסי עבודה (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, פועלים לפי השלבים הבאים:
- מגדירים איחוד של Workload Identity: יוצרים מאגר וספק של Workload Identity Federation כדי ליצור יחסי אמון עם מנפיק OIDC של SAP BDC.
- הקצאת תפקידים לחשבון המשתמש המאוחד: הקצאת הרשאות לזהות המאוחדת כדי להציג את המטא-נתונים של הקטלוג ולנצל את מכסת השירות.
- פרסום נתונים: פרסום קטלוג Apache Iceberg REST או מוצר נתונים של Knowledge Catalog ב-SAP BDC באמצעות
gcloudCLI.
הגדרת איחוד שירותי אימות הזהות של עומסי עבודה
כדי לאפשר ל-SAP BDC לגשת למשאבי Lakehouse בלי לדרוש מפתחות של חשבונות שירות שיוצאו, צריך להגדיר איחוד שירותי אימות הזהות של עומסי עבודה (WIF). כך נוצר אמון בין Google Cloud לבין מנפיק OIDC של SAP BDC.
כדי להגדיר את מאגר הספקים ואת הספק של WIF:
קבלת ה-URI של המנפיק
מאחזרים את ה-URI של מנפיק OIDC מקטלוג החיבור של Delta Sharing. תצטרכו את ה-URI הזה כדי להגדיר את ספק ה-WIF.
gcloud alpha 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 API הנדרשים. אפשר לתת הרשאה ל-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
אפשר לפרסם קטלוג Apache Iceberg REST באמצעות Google Cloud console או Google Cloud CLI, או לפרסם מוצר נתונים של Knowledge Catalog שמכיל טבלאות Iceberg באמצעות ה-CLI של gcloud. אין תמיכה בפרסום של מוצר נתונים במסוף Google Cloud .
קטלוג REST של Iceberg
לפני שמפרסמים, צריך לוודא שלטבלאות Iceberg יש מפתחות ראשיים ולפחות שורה אחת, כי SAP BDC דורש את שניהם לשאילתות.
המסוף
נכנסים לדף Lakehouse Runtime Catalog במסוף Google Cloud .
בחלונית הניווט, מרחיבים את הפרויקט ובוחרים את Delta Catalog (קטלוג החיבורים) שבו רוצים להשתמש לפרסום.
לוחצים על פרסום מוצר נתונים.
מזינים את פרטי השיתוף הנדרשים, כולל בחירת קטלוג Iceberg REST לפרסום.
לוחצים על פרסום.
gcloud
מוודאים שנקודת הקצה של קטלוג Apache Iceberg REST קיימת ומקבלים את הפרטים שלה:
gcloud alpha biglake iceberg catalogs describe ICEBERG_CATALOG_ID \ --project="PROJECT_ID"
פרסום קטלוג Apache Iceberg REST ב-SAP BDC. שימו לב שקטלוג החיבורים, קטלוג Iceberg והקטגוריה הבסיסית של Cloud Storage חייבים להיות באותו אזור.
gcloud alpha 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"
אפשר למצוא את קטלוג ה-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: המזהה של ספק הזהויות של כוח העבודה. 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.
יוצרים את מוצר הנתונים:
gcloud alpha 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.מקשרים נכס של טבלת Iceberg Lakehouse למוצר הנתונים:
gcloud alpha 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"
כשמגדירים נכסים במוצר נתונים, לנכסי טבלה צריכים להיות מפתחות ראשיים ושורה אחת לפחות. כל נכסי הנתונים במוצר נתונים יחיד צריכים להשתייך לאותו קטלוג Apache Iceberg REST. מוצר נתונים יכול לכלול עד 50 טבלאות, והוא חייב לכלול לפחות נכס נתונים תקין אחד כדי לפרסם אותו. יכול להיות שייקח זמן עד שטבלאות Iceberg יופיעו במסוףGoogle Cloud .
אופציונלי: מאמתים את הנכסים במוצר הנתונים:
gcloud alpha dataplex data-products data-assets list \ --data_product="DATA_PRODUCT_ID" \ --location="LOCATION" \ --project="PROJECT_ID"
מפרסמים את מוצר הנתונים ב-SAP BDC. מוודאים שקטלוג החיבורים, מוצר הנתונים והמשאבים הבסיסיים נמצאים באותו אזור.
gcloud alpha 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: המזהה של ספק הזהויות של כוח העבודה. -
DATA_PRODUCT_ID: המזהה של מוצר הנתונים ב-Knowledge Catalog. -
LOCATION: המיקום של מוצר הנתונים ב-Knowledge Catalog. -
SAP_SHARE_NAME: השם של השיתוף ב-SAP BDC.
-
גישה לנתונים ב-SAP BDC Google Cloud
אחרי שמפרסמים את הנתונים ב-SAP BDC, אפשר לגשת לנתונים Google Cloud בסביבת SAP. מידע נוסף על התקנה ושימוש במוצרי נתונים ב-SAP כטבלאות מרוחקות זמין במאמר התקנת מוצרי נתונים במסמכי העזרה של SAP.