Query federate SAP DataSpa
In qualità di analista di dati, puoi eseguire query sui dati relazionali in SAP Datasphere da BigQuery utilizzando query federate.
La federazione di SAP DataSphere di BigQuery consente a BigQuery di eseguire query sui dati che risiedono in SAP DataSfera in tempo reale, senza copiare o spostare dati.
Per eseguire una query SQL in SAP Datasphere, specifica la query SQL in BigQuery in una funzione EXTERNAL_QUERY
. I risultati vengono quindi trasferiti da SAP DataSfera a BigQuery.
Limitazioni
- Puoi eseguire query solo sulle viste relazionali esposte per il consumo. Altri oggetti in SAP DataSfera non sono accessibili per la 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.
- Non sono supportati ulteriori pushdown SQL per SAP DataSphere.
- 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 a SAP DataSpa e condiviso 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;
Visualizza uno schema della tabella SAP DataSpa
I seguenti esempi utilizzano la funzione EXTERNAL_QUERY per recuperare i metadati del database dal
Schema SYS
in SAP DataSfera.
-- 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 DataSfera.
- Il costo della larghezza di banda per il trasferimento dei risultati delle query da SAP DataSfera a in 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 pagina Prezzi.
Passaggi successivi
- Scopri di più sulle query federate.
- Scopri di più sui tipi di dati non supportati.