Query federate di SAP Datasphere

Le query federate in BigQuery consentono di eseguire query sui dati relazionali che risiedono in SAP Datasphere in tempo reale senza copiare o spostare i dati. Per eseguire una query in SAP Datasphere, specifica la query SQL all'interno di una funzione EXTERNAL_QUERY in BigQuery, che trasferisce i risultati da SAP Datasphere a BigQuery.

Limitazioni

  • Puoi eseguire query solo sulle viste relazionali esposte per l'utilizzo. Altri oggetti in SAP Datasphere non sono accessibili alla query federata tramite EXTERNAL_QUERY.
  • La latenza della query federata potrebbe essere notevolmente superiore rispetto alla stessa query se eseguita direttamente in SAP Datasphere.
  • La prima query che utilizza la connessione SAP Datasphere in un determinato progetto potrebbe richiedere più di un minuto per l'esecuzione.
  • Non sono supportati altri pushdown SQL per SAP Datasphere.
  • La query SQL di SAP Datasphere deve specificare gli alias per le colonne che contengono i risultati delle funzioni.
  • Se l'utilizzo dell'API Compute Engine nel progetto di query è limitato dai Controlli di servizio VPC, la query federata non andrà a buon fine.

Prima di iniziare

Assicurati che l'amministratore di BigQuery abbia creato una connessione SAP Datasphere e l'abbia condivisa con te.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire query su SAP Datasphere, chiedi all'amministratore di concederti il ruolo IAM BigQuery Connection User (roles/bigquery.connectionUser) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Esegui query sui dati

Per inviare una query federata a SAP Datasphere da una query GoogleSQL, utilizza la funzione EXTERNAL_QUERY.

L'esempio seguente è una query federata che unisce una tabella in SAP Datasphere denominata ORDERS e una tabella in BigQuery denominata 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;

Visualizza lo schema di una tabella SAP Datasphere

I seguenti esempi utilizzano la funzione EXTERNAL_QUERY per recuperare i metadati del database dallo schema SYS in 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''');

Prezzi

Il costo dell'esecuzione di una query federata si basa su tre fattori:

  • Il costo di computing per l'esecuzione della query in SAP Datasphere.
  • Il costo della larghezza di banda per il trasferimento dei risultati delle query da SAP Datasphere a BigQuery.
  • Il costo di computing per l'esecuzione della query in BigQuery.

Eventuali costi relativi a SAP Datasphere dipendono dal tipo di servizio SAP utilizzato. Per limitare il costo della larghezza di banda, ti consigliamo di scrivere la query in EXTERNAL_QUERY in modo da escludere tutte le colonne e le righe non necessarie per calcolare il risultato finale.

Non sono previsti costi aggiuntivi per l'esecuzione di query federate in BigQuery. Per saperne di più sui prezzi di BigQuery, consulta Prezzi.

Passaggi successivi