Föderierte SAP Datasphere-Abfragen
Als Datenanalyst können Sie relationale Daten in SAP Datasphere aus BigQuery mithilfe von föderierten Abfragen abfragen.
Mit der Föderation von BigQuery SAP Datasphere können Sie in BigQuery Daten in SAP Datasphere in Echtzeit abfragen, ohne Daten kopieren oder verschieben zu müssen.
Zum Ausführen einer SQL-Abfrage in SAP Datasphere 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 zur Nutzung freigegeben wurden. Andere Objekte in SAP Datasphere sind für die Abfrage, die über
EXTERNAL_QUERY
föderiert ist, nicht zugänglich. - Die Latenz von föderierten Abfragen kann merklich höher sein als die gleiche Abfrage, wenn sie direkt in SAP Datasphere ausgeführt wurde.
- Die Ausführung der ersten 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.
- Die SAP Datasphere SQL-Abfrage muss Aliasse für Spalten angeben, 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 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 zeigt eine föderierte Abfrage, die eine Tabelle in SAP Datasphere mit dem Namen ORDERS
und eine Tabelle in BigQuery namens mydataset.customers
verknüpft.
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 Schema SYS
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 Computing-Kosten für die Ausführung der Abfrage in SAP Datasphere.
- Die Bandbreitenkosten für die Übertragung der Abfrageergebnisse von SAP Datasphere nach BigQuery.
- Die Computing-Kosten für die Ausführung der Abfrage in BigQuery.
Die Kosten für SAP Datasphere hängen vom Typ des verwendeten SAP-Dienstes ab. Zur Begrenzung der Bandbreitenkosten empfehlen wir, die Abfrage so in EXTERNAL_QUERY
zu schreiben, dass alle Spalten und Zeilen ausgeschlossen sind, die zum Berechnen des Endergebnisses nicht benötigt werden.
Für die Ausführung von föderierten Abfragen in BigQuery fallen keine zusätzlichen Kosten an. Weitere Informationen zu den Preisen von BigQuery finden Sie unter Preise.