Ejecuta tus primeras instrucciones de SQL con Google Cloud Dataflow

1. Introducción

Cloud-Dataflow.png

Google Cloud Dataflow

Última actualización: 26 de mayo de 2020

¿Qué es Dataflow?

Dataflow es un servicio administrado para ejecutar una amplia variedad de patrones de procesamiento de datos. En la documentación de este sitio, se muestra cómo implementar tus canalizaciones de procesamiento de datos por lotes y de transmisión con Dataflow, incluidas las instrucciones para usar las funciones del servicio.

El SDK de Apache Beam es un modelo de programación de código abierto que te permite desarrollar canalizaciones de transmisión y por lotes. Creas tus canalizaciones con un programa de Apache Beam y, luego, las ejecutas en el servicio de Dataflow. La documentación de Apache Beam proporciona información conceptual detallada y material de referencia para el modelo de programación de Apache Beam, los SDK y otros ejecutores.

Transmite análisis de datos con velocidad

Dataflow permite desarrollar canalizaciones de transmisión de datos de forma rápida y simplificada con una latencia de datos más baja.

Simplifica las operaciones y la administración

Permite que los equipos se enfoquen en programar en lugar de administrar clústeres de servidores, ya que el enfoque sin servidores de Dataflow quita la sobrecarga operativa de las cargas de trabajo de ingeniería de datos.

Reduce el costo total de propiedad

Dataflow combina el ajuste de escala automático de los recursos con las capacidades de procesamiento por lotes con optimización del costo, por lo que puede ofrecer una capacidad prácticamente ilimitada para que administre las cargas de trabajo estacionales y con incrementos bruscos sin gastar de más.

Funciones clave

Administración de recursos automatizada y rebalanceo dinámico de trabajos

Dataflow automatiza el aprovisionamiento y la administración de los recursos de procesamiento para minimizar la latencia y maximizar el uso, de modo que no tengas que iniciar instancias ni reservarlas de forma manual. La partición de trabajo también está automatizada y optimizada para volver a balancear dinámicamente las tareas atrasadas. No es necesario buscar “teclas de acceso rápido” o preprocesar los datos de entrada.

Ajuste de escala automático horizontal

El ajuste de escala automático horizontal de los recursos de los trabajadores para alcanzar una capacidad de procesamiento óptima tiene como resultado una mejor relación general entre precio y rendimiento.

Programación flexible de recursos a un bajo precio para el procesamiento por lotes

A fin de procesar de forma flexible la hora de la programación de los trabajos, como los nocturnos, la programación flexible de recursos (FlexRS) ofrece un precio más bajo para el procesamiento por lotes. Estos trabajos flexibles se posicionan en una cola que garantiza su recuperación para ejecutarlos en un período de seis horas.

Qué ejecutarás como parte de esto

En este codelab, comenzarás a usar Dataflow SQL. Para ello, enviarás una instrucción de SQL a través de la IU de Dataflow SQL. A continuación, explorarás la canalización en ejecución con la IU de supervisión de Dataflow.

Qué aprenderás

  • Cómo enviar una instrucción de SQL como un trabajo de Dataflow en la IU de Dataflow SQL
  • Cómo navegar a la canalización de Dataflow
  • Explorar el grafo de Dataflow creado por la instrucción de SQL
  • Explora la información de supervisión que proporciona el gráfico.

Requisitos

  • Un proyecto de Google Cloud Platform con la facturación habilitada
  • Tener habilitados Google Cloud Dataflow y Google Cloud Pub/Sub.

2. Cómo prepararte

Asegúrate de tener habilitadas la API de Dataflow y la API de Cloud Pub/Sub. Para verificarlo, consulta las APIs y en la página Servicios.

3. Accede a la IU de Dataflow SQL

La IU de Dataflow SQL es una configuración de la IU web de BigQuery para crear trabajos de Dataflow SQL. Puedes acceder a la IU de Dataflow SQL desde la IU web de BigQuery.

  1. Ve a la IU web de BigQuery.

  1. Cambia al motor de Cloud Dataflow.
  • Haz clic en el menú desplegable Más y selecciona Configuración de consulta.

El menú desplegable Más en la IU web de BigQuery con la opción Configuración de consulta seleccionada

  • En el menú Configuración de consulta (Query settings), selecciona Motor de Dataflow (Dataflow engine).
  • En el mensaje que aparece si las APIs de Dataflow y Data Catalog no están habilitadas, haz clic en Habilitar APIs.

El menú Configuración de consulta con el mensaje Habilitar API

  • Haz clic en Guardar (Save). El menú Configuración de consulta con el botón de selección Motor de Dataflow seleccionado y las API habilitadas

También puedes acceder a la IU de Dataflow SQL desde la interfaz de supervisión de Dataflow.

  • Ve a la interfaz de supervisión de Dataflow.

  • Haz clic en Crear trabajo a partir de SQL.

4. Ejecuta un trabajo de Dataflow con una consulta en SQL

Escribe consultas de Dataflow SQL

Las consultas de Dataflow SQL usan la sintaxis de consultas de Dataflow SQL. La sintaxis de consulta de Dataflow SQL es similar a la del SQL estándar de BigQuery. Puedes usar las extensiones de transmisión de Dataflow SQL para agregar datos de fuentes de Dataflow que se actualizan de forma continua, como Pub/Sub. Por ejemplo, la siguiente consulta cuenta los pasajeros en una transmisión de Pub/Sub de viajes en taxi cada minuto:

SELECT
  TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
  SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
  ride_status = "pickup"
GROUP BY
  TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')

Ejecuta consultas de Dataflow SQL

Cuando ejecutas una consulta de Dataflow SQL, Dataflow convierte la consulta en una canalización de Apache Beam y ejecuta la canalización.

Puedes ejecutar una consulta de Dataflow SQL con la consola de Cloud o la herramienta de línea de comandos de gcloud.

Para ejecutar una consulta de Dataflow SQL, usa la IU de Dataflow SQL.

  • Ve a la IU de Dataflow SQL.
  • Ingresa la consulta anterior de Dataflow SQL en el editor de consultas.
  • Haz clic en Crear trabajo de Cloud Dataflow para abrir un panel de opciones de trabajo.
  • (Opcional) Haz clic en Mostrar parámetros opcionales y explora la lista.
  • En la sección Destino del panel, selecciona BigQuery como el tipo de salida.

1155e94529ff58fe.png

  • Selecciona un ID de conjunto de datos y crea el nombre de tabla "passengers_per_min"
  • Haz clic en Crear.

Para obtener más información sobre cómo consultar datos y escribir resultados de consultas de Dataflow SQL, consulta Usa Dataflow SQL.

5. Explora el trabajo en la IU de supervisión de Dataflow

Cuando ejecutas tu canalización con el servicio administrado de Dataflow, puedes ver ese trabajo y cualquier otro con la interfaz de usuario de supervisión basada en la Web de Dataflow. La interfaz de supervisión te permite ver tus trabajos de Dataflow y también interactuar con ellos.

Puedes acceder a la interfaz de supervisión de Dataflow con la consola de Google Cloud. La interfaz de supervisión te puede mostrar la siguiente información:

  • Una lista de todos los trabajos de Dataflow que se están ejecutando y los que se ejecutaron anteriormente en los últimos 30 días.
  • Una representación gráfica de cada canalización
  • Detalles sobre el estado de tu trabajo, ejecución y versión del SDK
  • Vínculos a la información sobre los servicios de Google Cloud que ejecutan tu canalización, como Compute Engine y Cloud Storage.
  • Cualquier error o advertencia que suceda durante un trabajo

Puedes ver los gráficos de supervisión de trabajos en la interfaz de supervisión de Dataflow. Estos gráficos muestran métricas sobre la duración de un trabajo de canalización y contienen la siguiente información:

  • Visibilidad paso a paso para ayudar a identificar qué etapas de la canalización pueden estar causando un retraso
  • Información estadística que puede revelar comportamientos anómalos
  • Métricas de E/S que pueden ayudarte a identificar cuellos de botella en tus fuentes y receptores

Accede a la interfaz de supervisión de Dataflow

Para acceder a la interfaz de supervisión de Dataflow, sigue estos pasos:

  • Ve a la consola de Cloud:

  • Selecciona tu proyecto de Google Cloud.
  • Haz clic en el menú en la esquina superior izquierda.
  • Navega a la sección Macrodatos y haz clic en Dataflow.

Aparecerá una lista de trabajos de Dataflow junto con su estado.

58f6402cc923d6bb.png

Una lista de trabajos de Dataflow en la consola de Cloud con trabajos en los estados En ejecución, Con errores y Sin errores.

Un trabajo puede tener los siguientes estados:

  • : La IU de supervisión aún no recibió un estado del servicio de Dataflow.
  • En ejecución (Running): El trabajo se está ejecutando en el momento.
  • No se inició: Se crea el trabajo, pero el sistema necesita tiempo para prepararse antes de iniciarse.
  • En cola: Un trabajo de FlexRS está en cola.
  • Cancelando...: el trabajo se está cancelando.
  • Cancelado: El trabajo que el usuario canceló.
  • Desviando...: el trabajo se está desviando.
  • Desviado: el usuario desvió el trabajo.
  • Actualizando...: el trabajo se está actualizando.
  • Actualizado: el usuario actualizó el trabajo.
  • Finalizado de manera correcta: el trabajo finalizó correctamente.
  • Con errores: No se pudo completar el trabajo.

Busca el trabajo con “dfsql” como parte del cargo y haz clic en su nombre.

e3bce9b1929564c9.png

La página Detalles del trabajo, que contiene lo siguiente:

  • Gráfico de trabajo: la representación visual de tu canalización
  • Métricas del trabajo: métricas sobre la ejecución del trabajo
  • Panel de información del trabajo: información descriptiva sobre tu canalización
  • Registros del trabajo: registros que genera el servicio de Dataflow a nivel del trabajo
  • Registros de trabajador: registros generados por el servicio de Dataflow a nivel del trabajador
  • Informe de errores del trabajo: gráficos que muestran dónde se produjeron errores a lo largo del cronograma elegido y un recuento de todos los errores registrados
  • Selector de tiempo: herramienta que te permite ajustar el período de tus métricas

En la página Detalles del trabajo, puedes cambiar la vista del trabajo con el gráfico del trabajo y la pestaña Métricas del trabajo.

  • Haz clic en la pestaña MÉTRICAS DEL TRABAJO y explora los gráficos.

7076f8a8911066ab.png

6. Detén tu trabajo de Dataflow SQL

Para detener los trabajos de Dataflow SQL, usa el comando Cancel. No se admite la detención de un trabajo de Dataflow SQL con Drain.

1229697a873e1cf9.png