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 conexión a SAP Datasphere se puede realizar desde cualquier dirección IP externa que pertenezca a Google Cloud, y esa dirección IP puede cambiar con el tiempo. Como resultado, debes agregar todas las direcciones IP externas de Google Cloud a la lista de entidades permitidas en 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.
  • 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.

Antes de comenzar

Asegúrate de que el administrador de BigQuery cree una conexión de SAP Datasphere y la haya compartido contigo.

Funciones obligatorias

Para obtener los permisos que necesitas para consultar SAP Datasphere, pídele a tu administrador que te otorgue el rol de IAM 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.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Consulta 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?