Consultas federadas de Cloud SQL
Como analista de datos, puedes consultar datos de Cloud SQL desde BigQuery mediante consultas federadas.
La federación de BigQuery con Cloud SQL permite a BigQuery consultar datos alojados en Cloud SQL en tiempo real, sin tener que copiarlos ni transferirlos. La federación de consultas admite instancias de MySQL (2.ª generación) y PostgreSQL en Cloud SQL.
También puede usar Cloud Data Fusion o Datastream para replicar datos en BigQuery. Para obtener más información sobre cómo usar Cloud Data Fusion, consulta Replicar datos de MySQL en BigQuery.
Antes de empezar
- Asegúrate de que tu administrador de BigQuery haya creado una conexión de Cloud SQL y la haya compartido contigo.
-
Para obtener los permisos que necesitas para consultar una instancia de Cloud SQL, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Usuario de conexión de BigQuery (
roles/bigquery.connectionUser) en tu 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 Cloud SQL desde una consulta de GoogleSQL, usa la función EXTERNAL_QUERY.
Supongamos que almacena una tabla de clientes en BigQuery y una tabla de ventas en Cloud SQL, y quiere unir las dos tablas en una sola consulta. En el siguiente ejemplo, se hace una consulta federada a una tabla de Cloud SQL llamada orders y se combinan los resultados con 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(
'us.connection_id',
'''SELECT customer_id, MIN(order_date) AS first_order_date
FROM orders
GROUP BY customer_id''')