Consultas federadas de SAP Datasphere
Como analista de datos, puedes consultar datos relacionales en SAP Datasphere desde BigQuery mediante consultas federadas.
La Federación de SAP Datasphere permite que BigQuery consulte datos que se encuentran en SAP Datasphere en tiempo real, sin copiarlos ni moverlos.
Para ejecutar una consulta en SQL en SAP Datasphere, especifica esa consulta en SQL dentro de BigQuery en una función EXTERNAL_QUERY
. Luego, los resultados se transfieren de SAP Datasphere a BigQuery.
Limitaciones
- Solo puedes consultar vistas relacionales que están expuestas para el consumo. La consulta federada a través de
EXTERNAL_QUERY
no puede acceder a otros objetos de SAP Datasphere. - La latencia de la consulta federada puede ser bastante más alta que la misma consulta si se ejecutó directamente en SAP Datasphere.
- La primera consulta que usa la conexión de SAP Datasphere en un proyecto determinado podría tardar más de un minuto en ejecutarse.
- No se admiten pushdowns de SQL adicionales para SAP Datasphere.
- La consulta en SQL de SAP Datasphere debe especificar alias para las columnas que contienen resultados de funciones.
- Cuando los Controles del servicio de VPC restringen el uso de la API de Compute Engine en el proyecto de consulta, la consulta federada fallará.
Antes de comenzar
Asegúrate de que el administrador de BigQuery cree una conexión de SAP Datasphere y la haya compartido contigo.
Roles obligatorios
Para obtener los permisos que necesitas para consultar SAP Datasphere,
pídele a tu administrador que te otorgue el
rol de IAM de usuario de conexión de BigQuery (roles/bigquery.connectionUser
) en el proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Consulta los datos
Para enviar una consulta federada a SAP Datasphere desde una consulta de GoogleSQL, usa la función EXTERNAL_QUERY.
En el siguiente ejemplo, se muestra una consulta federada que se une a 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;
Visualiza un esquema de tabla de SAP Datasphere
En los siguientes ejemplos, se usa la función EXTERNAL_QUERY para recuperar 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 costo de ejecutar una consulta federada se basa en tres factores:
- El costo de procesamiento de la ejecución de la consulta en SAP Datasphere.
- El costo del ancho de banda de la transferencia de los resultados de la consulta de SAP Datasphere a BigQuery.
- El costo de procesamiento de la ejecución de la consulta en BigQuery.
Los costos relacionados con SAP Datasphere dependen del tipo de servicio de SAP que uses. Para limitar el costo del ancho de banda, te recomendamos que escribas la consulta en el EXTERNAL_QUERY
de modo que excluya todas las columnas y filas que no son necesarias para calcular el resultado final.
No se aplican costos adicionales por ejecutar consultas federadas en BigQuery. Para obtener más información sobre los precios de BigQuery, consulta Precios de BigQuery.
¿Qué sigue?
- Obtén más información sobre consultas federadas.
- Obtén más información sobre los tipos de datos no compatibles.