Föderierte SAP Datasphere-Abfragen
Als Datenanalyst können Sie relationale Daten in SAP Datasphere mithilfe von föderierten Abfragen über BigQuery abfragen.
Mit der Föderation von BigQuery und SAP Datasphere kann BigQuery Daten in SAP Datasphere in Echtzeit abfragen, ohne Daten kopieren oder verschieben zu müssen.
Wenn Sie eine SQL-Abfrage in SAP Datasphere ausführen möchten, geben Sie diese SQL-Abfrage in BigQuery in einer EXTERNAL_QUERY
-Funktion an. Die Ergebnisse werden dann von SAP Datasphere nach BigQuery übertragen.
Beschränkungen
- Sie können nur relationale Ansichten abfragen, die für die Nutzung verfügbar gemacht wurden. Andere Objekte in SAP Datasphere sind für die über
EXTERNAL_QUERY
föderierte Abfrage nicht zugänglich. - Die Latenz der föderierten Abfrage ist möglicherweise deutlich höher als bei derselben Abfrage, wenn sie direkt in SAP Datasphere ausgeführt wird.
- Die erste Abfrage, die eine SAP Datasphere-Verbindung in einem bestimmten Projekt verwendet, kann mehr als eine Minute dauern.
- Für SAP Datasphere werden keine zusätzlichen SQL-Push-downs unterstützt.
- In der SAP Datasphere-SQL-Abfrage müssen Aliase für Spalten angegeben werden, die Funktionsergebnisse enthalten.
- Wenn die Verwendung der Compute Engine API im Abfrageprojekt durch VPC Service Controls eingeschränkt ist, schlägt die föderierte Abfrage fehl.
Hinweise
Achten Sie darauf, dass Ihr BigQuery-Administrator eine SAP Datasphere-Verbindung erstellt und für Sie freigegeben hat.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Verbindungsnutzer (roles/bigquery.connectionUser
) für das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Abfragen von SAP Datasphere benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Daten abfragen
Verwenden Sie die Funktion EXTERNAL_QUERY, um eine föderierte Abfrage aus einer GoogleSQL-Abfrage an SAP Datasphere zu senden.
Das folgende Beispiel ist eine föderierte Abfrage, mit der eine Tabelle in SAP Datasphere mit dem Namen ORDERS
und eine Tabelle in BigQuery mit dem Namen mydataset.customers
verknüpft werden.
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-Tabellenschema ansehen
In den folgenden Beispielen wird die Funktion EXTERNAL_QUERY verwendet, um Datenbankmetadaten aus dem SYS
-Schema in SAP Datasphere abzurufen.
-- 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''');
Preise
Die Kosten für die Ausführung einer föderierten Abfrage basieren auf drei Faktoren:
- Die Rechenkosten für die Ausführung der Abfrage in SAP Datasphere.
- Die Bandbreitenkosten für die Übertragung der Abfrageergebnisse von SAP Datasphere zu BigQuery.
- Die Rechenkosten für die Ausführung der Abfrage in BigQuery.
Alle Kosten im Zusammenhang mit SAP Datasphere hängen von der Art des von Ihnen verwendeten SAP-Dienstes ab. Um die Bandbreitenkosten zu begrenzen, empfehlen wir, die Abfrage in EXTERNAL_QUERY
zu schreiben, damit alle Spalten und Zeilen ausgeschlossen werden, die nicht für die Berechnung des Endergebnisses erforderlich sind.
Für die Ausführung föderierter Abfragen in BigQuery fallen keine zusätzlichen Kosten an. Weitere Informationen zu den Preisen von BigQuery finden Sie unter Preise.