Configuración inicial
Veamos los pasos para crear un pipeline muy sencillo de Dataflow SQL.
Para empezar, hay que crear algunas cosas:
- Una cuenta de usuario con los permisos de IAM correspondientes
- Un dataset de BigQuery donde crear las tablas
- Una tabla de BigQuery para almacenar los datos
- Un topic de Google Cloud Pub/Sub para la ingesta de datos.
Crear un dataset:
Crear una tabla en ese dataset:
Crear un topic de Pub/Sub:
Con todo listo, pasemos al nuevo motor de Dataflow SQL.
Para hacer el cambio, ve a Query settings:
Selecciona Cloud Dataflow engine:
Observa los nuevos recursos disponibles:
Para poder consultar el topic de Google Cloud Pub/Sub que acabamos de crear, hay que asignarle un esquema. Crearlo es bastante sencillo: tres campos string más el timestamp de entrada que Google Cloud Pub/Sub agrega por defecto.
Crear el esquema del topic:
Ya estamos listos para crear un job de Dataflow SQL.
Creación del job
Escribe una sentencia SQL sencilla, que correrá como un job de Dataflow.
Haz clic en "Create Cloud Dataflow" job. Ya podemos definir algunas ubicaciones de salida. Es una funcionalidad muy útil: permite guardar los resultados al terminar y aprovechar al máximo un proceso ETL.
Veamos el DAG de Dataflow que creamos desde SQL. Entra al historial de jobs en BigQuery:
Haz clic en el Job ID y se mostrará el DAG:
Es muy sencillo: aplica una sola transformación y luego vuelca los datos en una tabla de BigQuery mediante streaming inserts. Simple pero potente, un job de Dataflow ideal.
Probemos nuestro pipeline de streaming
Desde aquí ya podemos poner a prueba el pipeline que creamos. Enviemos algunos datos JSON de ejemplo al topic y veamos qué hace el pipeline.
El pipeline que creamos debería tomar estos datos JSON y guardar únicamente el campo "a" del JSON en nuestra tabla test.
¡Listo! Filtramos los datos entrantes desde Google Cloud Pub/Sub hacia una tabla en BigQuery sin tener que salir de BigQuery, y todo escrito en SQL.
Esto demuestra lo fácil que resulta configurar y desplegar pipelines de Dataflow con sintaxis Standard SQL. Hicimos una consulta muy básica, pero también es posible hacer otras más complejas.
Publicado originalmente en https://fluxengine.ltd .