Query federate di SAP Datasphere

In qualità di analista di dati, puoi eseguire query sui dati relazionali in SAP Datasphere da BigQuery utilizzando query federate.

La federazione BigQuery SAP Datasphere consente a BigQuery di eseguire query in tempo reale sui dati residenti in SAP Datasphere senza copiarli o spostarli.

Per eseguire una query SQL in SAP Datasphere, specifica la query SQL in BigQuery in una funzione EXTERNAL_QUERY. I risultati vengono poi trasferiti da SAP Datasphere a BigQuery.

Limitazioni

  • Puoi eseguire query solo sulle visualizzazioni relazionali esposte per il consumo. Gli altri oggetti in SAP Datasphere non sono accessibili alla query federata tramite EXTERNAL_QUERY.
  • La latenza delle query federate potrebbe essere notevolmente superiore a quella della stessa query se eseguita direttamente in SAP Datasphere.
  • L'esecuzione della prima query che utilizza la connessione SAP Datasphere in un determinato progetto potrebbe richiedere più di un minuto.
  • Per SAP Datasphere non sono supportati pushdown SQL aggiuntivi.
  • La query SQL di SAP Datasphere deve specificare gli alias per le colonne che contengono risultati di funzione.
  • Quando 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 la 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 Utente connessione BigQuery (roles/bigquery.connectionUser) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

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

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;

Visualizzare lo schema di una tabella SAP Datasphere

Gli esempi riportati di seguito 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 calcolo dell'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 calcolo dell'esecuzione della query in BigQuery.

Eventuali costi relativi a SAP Datasphere dipendono dal tipo di servizio SAP che utilizzi. Per limitare il costo della larghezza di banda, ti consigliamo di scrivere la query in EXTERNAL_QUERY in modo che escluda 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 ulteriori informazioni sui prezzi di BigQuery, consulta la sezione Prezzi.

Passaggi successivi