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.

Nächste Schritte