שאילתות מאוחדות ב-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 זמין במאמר תמחור.