Consultas federadas de SAP Datasphere
Como analista de datos, puedes consultar datos relacionales de SAP Datasphere desde BigQuery mediante consultas federadas.
La federación de BigQuery con SAP Datasphere permite a BigQuery consultar datos alojados en SAP Datasphere en tiempo real, sin tener que copiarlos ni transferirlos.
Para ejecutar una consulta de SQL en SAP Datasphere, especifícala en BigQuery en una función EXTERNAL_QUERY
. A continuación, los resultados se transfieren de SAP Datasphere a BigQuery.
Limitaciones
- Solo puedes consultar vistas relacionales que estén expuestas para su uso. Otros objetos de SAP Datasphere no son accesibles para la consulta federada a través de
EXTERNAL_QUERY
. - La latencia de la consulta federada puede ser notablemente mayor que la de la misma consulta si se hubiera ejecutado directamente en SAP Datasphere.
- La primera consulta que utilice la conexión de SAP Datasphere en un proyecto determinado puede tardar más de un minuto en ejecutarse.
- No se admiten inserciones de SQL adicionales en SAP Datasphere.
- La consulta SQL de SAP Datasphere debe especificar alias para las columnas que contengan resultados de funciones.
- Si el uso de la API de Compute Engine en el proyecto de consulta está restringido por Controles de Servicio de VPC, la consulta federada fallará.
Antes de empezar
Asegúrate de que tu administrador de BigQuery haya creado una conexión de SAP Datasphere y la haya compartido contigo.
Roles obligatorios
Para obtener los permisos que necesitas para consultar SAP Datasphere, pide a tu administrador que te asigne el rol de gestión de identidades y accesos Usuario de conexión de BigQuery (roles/bigquery.connectionUser
) en el proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Consultar datos
Para enviar una consulta federada a SAP Datasphere desde una consulta de GoogleSQL, usa la función EXTERNAL_QUERY.
El siguiente ejemplo es una consulta federada que combina una tabla de SAP Datasphere llamada ORDERS
y una tabla de BigQuery llamada 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;
Ver el esquema de una tabla de SAP Datasphere
En los ejemplos siguientes se usa la función EXTERNAL_QUERY para obtener metadatos de la base de datos del esquema SYS
en 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''');
Precios
El coste de ejecutar una consulta federada se basa en tres factores:
- El coste de computación de ejecutar la consulta en SAP Datasphere.
- El coste del ancho de banda de la transferencia de los resultados de la consulta de SAP Datasphere a BigQuery.
- El coste de computación de la ejecución de la consulta en BigQuery.
Los costes relacionados con SAP Datasphere dependen del tipo de servicio de SAP que utilices. Para limitar el coste del ancho de banda, te recomendamos que escribas la consulta en EXTERNAL_QUERY
para que excluya todas las columnas y filas que no sean necesarias para calcular el resultado final.
No hay ningún coste adicional por ejecutar consultas federadas en BigQuery. Para obtener más información sobre los precios de BigQuery, consulta la página Precios.
Siguientes pasos
- Consulta información sobre las consultas federadas.
- Más información sobre los tipos de datos no admitidos