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 BigQuery-SAP Datasphere-Föderation 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 freigegeben sind. Andere Objekte in SAP Datasphere sind für die über
EXTERNAL_QUERY
zusammengeführte 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 Ausführung der ersten Abfrage, die in einem bestimmten Projekt die SAP Datasphere-Verbindung verwendet, kann mehr als eine Minute dauern.
- Für SAP Datasphere werden keine zusätzlichen SQL-Pushdowns unterstützt.
- In der SAP Datasphere-SQL-Abfrage müssen Aliasse 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.
Im folgenden Beispiel wird eine föderierte Abfrage verwendet, um eine Tabelle in SAP Datasphere mit dem Namen ORDERS
mit einer Tabelle in BigQuery mit dem Namen mydataset.customers
zu verknüpfen.
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 EXTERNAL_QUERY-Funktion 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 richten sich nach 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 mit SAP Datasphere verbundenen Kosten hängen von der Art des von Ihnen verwendeten SAP-Dienstes ab. Um die Bandbreitenkosten zu begrenzen, empfehlen wir, die Abfrage in der EXTERNAL_QUERY
zu schreiben, sodass alle Spalten und Zeilen ausgeschlossen werden, die nicht zum Berechnen des Endergebnisses erforderlich sind.
Für das Ausführen föderierter Abfragen in BigQuery fallen keine zusätzlichen Kosten an. Weitere Informationen zu den Preisen von BigQuery finden Sie unter Preise.