שאילתות מאוחדות ב-SAP Datasphere

כאנליסטים של נתונים, אתם יכולים לשלוח שאילתות לנתונים יחסיים ב-SAP Datasphere מ-BigQuery באמצעות שאילתות מאוחדות.

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

כדי להריץ שאילתת SQL ב-SAP Datasphere, צריך לציין את שאילתת ה-SQL ב-BigQuery בפונקציה EXTERNAL_QUERY. לאחר מכן, התוצאות מועברות מ-SAP Datasphere ל-BigQuery.

מגבלות

  • אפשר להריץ שאילתות רק על תצוגות יחסיות שזמינות לשימוש. לא ניתן לגשת לאובייקטים אחרים ב-SAP Datasphere באמצעות השאילתה המאוחדת דרך EXTERNAL_QUERY.
  • יכול להיות שזמן האחזור של שאילתה לכמה מסדי נתונים יהיה גבוה משמעותית מזמן האחזור של אותה שאילתה אם היא תופעל ישירות ב-SAP Datasphere.
  • יכול להיות שהשאילתה הראשונה שמשתמשת בחיבור SAP Datasphere בפרויקט מסוים תימשך יותר מדקה.
  • אין תמיכה בהעברות של SQL נוספות ב-SAP Datasphere.
  • בשאלת ה-SQL של SAP Datasphere צריך לציין כינויים לעמודות שמכילות תוצאות של פונקציות.
  • אם השימוש ב-Compute Engine API בפרויקט השאילתה מוגבל על ידי VPC Service Controls, שאילתה לכמה מסדי נתונים תיכשל.

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

מוודאים שמנהל מערכת BigQuery יצר חיבור ל-SAP Datasphere ושיתף אותו איתכם.

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

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

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

שאילתות על נתונים

כדי לשלוח שאילתה לכמה מסדי נתונים ל-SAP Datasphere משאילתת GoogleSQL, משתמשים בפונקציה EXTERNAL_QUERY.

הדוגמה הבאה היא שאילתה לכמה מסדי נתונים שמצטרפת לטבלה ב-SAP Datasphere בשם ORDERS ולטבלה ב-BigQuery בשם mydataset.customers.

SELECT c.customer_id, c.name, rq.first_order_date
FROM mydataset.customers AS c
LEFT OUTER JOIN EXTERNAL_QUERY(
  'connection_id',
  '''SELECT CUSTOMER_ID, MIN(ORDER_DATE) AS first_order_date
     FROM ORDERS
     GROUP BY CUSTOMER_ID''') AS rq
  ON rq.customer_id = c.customer_id
GROUP BY c.customer_id, c.name, rq.first_order_date;

הצגת סכימת טבלה של SAP Datasphere

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

-- List all views in a schema.
SELECT * FROM EXTERNAL_QUERY(
  'connection_id',
  '''SELECT VIEW_NAME FROM SYS.VIEWS
     WHERE SCHEMA_NAME = 'MY_SCHEMA'''');
-- List all columns in a view.
SELECT * FROM EXTERNAL_QUERY(
  'connection_id',
  '''SELECT COLUMN_NAME, DATA_TYPE_NAME
     FROM SYS.VIEW_COLUMNS
     WHERE SCHEMA_NAME = 'MY_SCHEMA' AND
           VIEW_NAME = 'my_view'
     ORDER BY POSITION''');

תמחור

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

  • עלות המחשוב של הרצת השאילתה ב-SAP Datasphere.
  • עלות רוחב הפס של העברת תוצאות השאילתה מ-SAP Datasphere ל-BigQuery.
  • עלות המחשוב של הרצת השאילתה ב-BigQuery.

כל העלויות שקשורות ל-SAP Datasphere תלויות בסוג שירות SAP שבו אתם משתמשים. כדי להגביל את עלות רוחב הפס, מומלץ לכתוב את השאילתה ב-EXTERNAL_QUERY כך שהיא לא תכלול את כל העמודות והשורות שלא נדרשות לחישוב התוצאה הסופית.

אין עלות נוספת להרצת שאילתות מאוחדות ב-BigQuery. מידע נוסף על התמחור של BigQuery זמין במאמר תמחור.

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