Crea una canalización de transmisión con una plantilla de Dataflow

En esta guía de inicio rápido, se muestra cómo crear una canalización de transmisión con una plantilla de Dataflow proporcionada por Google. Específicamente, esta guía de inicio rápido utiliza la plantilla de Pub/Sub a BigQuery como ejemplo.

La plantilla de Pub/Sub a BigQuery es una canalización de transmisión que puede leer mensajes con formato JSON de un tema de Pub/Sub y escribirlos en una tabla de BigQuery.


Para seguir la guía paso a paso sobre esta tarea de forma directa en la consola de Google Cloud, haz clic en Guiarme:

GUIARME


Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita las API de Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager.

    Habilita las API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita las API de Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager.

    Habilita las API

  8. Cree un bucket de Cloud Storage:
    1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

      Ir a la página Buckets

    2. Haga clic en Crear bucket.
    3. En la página Crear un bucket, ingresa la información de tu bucket. Para ir al paso siguiente, haz clic en Continuar.
      • En Nombre del bucket, ingresa un nombre de bucket único. No incluyas información sensible en el nombre del bucket porque su espacio de nombres es global y públicamente visible.
      • En Elige dónde almacenar tus datos, haz lo siguiente:
        • Selecciona una opción de Tipo de ubicación.
        • Selecciona una opción de Ubicación.
      • Para Elegir una clase de almacenamiento predeterminado para tus datos, selecciona lo siguiente:Estándar.
      • En Elige cómo controlar el acceso a los objetos, selecciona una opción de Control de acceso.
      • Para la Configuración avanzada (opcional), especifica un método de encriptación, una política de retención o etiquetas de bucket.
    4. Haga clic en Crear.
  9. Copia lo siguiente, ya que los necesitarás en una sección posterior:
    • : Es el nombre del bucket de Cloud Storage.
    • Tu ID del proyecto de Google Cloud.

      Para encontrar este ID, consulta Identifica proyectos.
  10. Para completar los pasos de esta guía de inicio rápido, tu cuenta de usuario debe tener los roles de Administrador de Dataflow y Usuario de cuenta de servicio. La cuenta de servicio predeterminada de Compute Engine debe tener el rol de trabajador de Dataflow. Para agregar los roles necesarios en la consola de Google Cloud, sigue estos pasos:

    1. Ir a la página IAM.
      Ir a IAM
    2. Selecciona tu proyecto.
    3. En la fila que contiene tu cuenta de usuario, haz clic en Editar principal y, luego, en Agregar otro rol.
    4. En la lista desplegable, selecciona el rol Administrador de Dataflow.
    5. Repite los pasos para el rol Usuario de cuenta de servicio y, luego, haz clic en Guardar.
    6. En la fila que contiene la cuenta de servicio predeterminada de Compute Engine, haz clic en Editar principal y, luego, en Agregar otro rol.
    7. En la lista desplegable, selecciona el rol Trabajador de Dataflow.
    8. Repite para los roles Pub/Sub Editor y BigQuery Data Editor y, luego, haz clic en Guardar.

      Para obtener más información sobre cómo otorgar roles, consulta Otorga un rol de IAM mediante la consola.

  11. De forma predeterminada, cada proyecto nuevo comienza con una red predeterminada. Si la red predeterminada de tu proyecto está inhabilitada o se borró, debes tener una red en tu proyecto para la que tenga tu cuenta de usuario Rol de usuario de la red de Compute (roles/compute.networkUser ).

Crea un conjunto de datos y una tabla de BigQuery

Crea un conjunto de datos de BigQuery y una tabla de BigQuery con el esquema adecuado para tu tema de Pub/Sub con la consola de Google Cloud.

En este ejemplo, el nombre del conjunto de datos es taxirides y el nombre de la tabla es realtime. Para crear este conjunto de datos y esta tabla, sigue estos pasos:

  1. Ve a la página de BigQuery.
    Ir a BigQuery
  2. En el panel Explorador junto al proyecto en el que deseas crear el conjunto de datos, haz clic en Ver acciones y, luego, haz clic en Crear conjunto de datos.
  3. En el panel Crear conjunto de datos, sigue estos pasos:
    1. En ID del conjunto de datos, ingresa taxirides. Los IDs de conjuntos de datos son únicos para cada proyecto de Google Cloud.
    2. En Tipo de ubicación, selecciona Multirregional y, luego, US (varias regiones en Estados Unidos). Los conjuntos de datos públicos se almacenan en la ubicación multirregional US. Para que sea más simple, coloca tu conjunto de datos en la misma ubicación.
    3. Deja el resto de la configuración predeterminada y, luego, haz clic en Crear conjunto de datos.
  4. En el panel Explorador, expande tu proyecto.
  5. Junto al conjunto de datos taxirides, haz clic en Ver acciones y, luego, en Crear tabla.
  6. En el panel Crear tabla, sigue estos pasos:
    1. En la sección Origen, para Crear tabla desde, selecciona Tabla vacía.
    2. En la sección Destino, para Nombre de tabla, ingresa realtime.
    3. En la sección Esquema, haz clic en el interruptor Editar como texto y pega la siguiente definición de esquema en el cuadro:
      ride_id:string,point_idx:integer,latitude:float,longitude:float,timestamp:timestamp,
      meter_reading:float,meter_increment:float,ride_status:string,passenger_count:integer
    4. En la sección Configuración del clúster y las particiones, en Partición, selecciona el campo Marca de tiempo.
  7. Deja los valores predeterminados para el resto de la configuración y haz clic en Crear tabla.

Ejecuta la canalización

Ejecuta una canalización de transmisión con la plantilla de Pub/Sub a BigQuery proporcionada por Google. La canalización obtiene datos entrantes del tema de entrada.

  1. Ve a la página Trabajos de Dataflow.
    IR A TRABAJOS
  2. Haz clic en Crear trabajo a partir de una plantilla.
  3. Ingresa taxi-data como el Nombre del trabajo para tu trabajo de Dataflow.
  4. En Plantilla de Dataflow, selecciona la plantilla Pub/Sub a BigQuery.
  5. En Tabla de salida de BigQuery, ingresa lo siguiente:
    PROJECT_ID:taxirides.realtime

    Reemplaza PROJECT_ID por el ID del proyecto en el que creaste tu conjunto de datos de BigQuery.

  6. Expande Parámetros opcionales.
  7. En Input Pub/Sub topic, haz clic en Ingresar tema manualmente.
  8. En el diálogo, en Nombre del tema, ingresa lo siguiente y, luego, haz clic en Guardar:
    projects/pubsub-public-data/topics/taxirides-realtime

    Este tema de Pub/Sub disponible al público se basa en el conjunto de datos abierto de la Comisión de Taxis y Limusinas de la Ciudad de Nueva York. El siguiente es un mensaje de muestra de este tema, en formato JSON:

    {
      "ride_id": "19c41fc4-e362-4be5-9d06-435a7dc9ba8e",
      "point_idx": 217,
      "latitude": 40.75399,
      "longitude": -73.96302,
      "timestamp": "2021-03-08T02:29:09.66644-05:00",
      "meter_reading": 6.293821,
      "meter_increment": 0.029003782,
      "ride_status": "enroute",
      "passenger_count": 1
    }
  9. En Ubicación temporal, ingresa lo siguiente:
    gs://BUCKET_NAME/temp/

    Reemplaza BUCKET_NAME por el nombre de tu bucket de Cloud Storage. La carpeta temp almacena archivos temporales, como el trabajo de canalización en etapa de pruebas.

  10. Si tu proyecto no tiene una red predeterminada, ingresa una red y una subred. Para obtener más información, consulta Especifica una red y una subred.
  11. Haga clic en Ejecutar trabajo.

Ve los resultados

Para ver los datos escritos en tu tabla realtime, sigue estos pasos:

  1. Ve a la página de BigQuery.

    Ir a BigQuery

  2. Haz clic en Redactar una nueva consulta. Se abrirá una pestaña nueva del Editor.

    SELECT * FROM `PROJECT_ID.taxirides.realtime`
    WHERE `timestamp` > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
    LIMIT 1000

    Reemplaza PROJECT_ID por el ID del proyecto en el que creaste tu conjunto de datos de BigQuery. Los datos pueden tardar hasta un minuto en comenzar a aparecer en la tabla.

  3. Haga clic en Ejecutar.

    La consulta muestra las filas que se agregaron a tu tabla en las últimas 24 horas. También puedes ejecutar consultas con SQL estándar.

Realiza una limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto de Google Cloud que creaste para la guía de inicio rápido.

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Borra los recursos individuales

Si deseas conservar el proyecto Google Cloud que usaste en esta guía de inicio rápido, borra los recursos individuales:

  1. Ve a la página Trabajos de Dataflow.
    IR A TRABAJOS
  2. Selecciona tu trabajo de transmisión en la lista de trabajos.
  3. En la navegación, haz clic en Detener.
  4. En el cuadro de diálogo Detener trabajo, cancela o desvía tu canalización y, luego, haz clic en Detener el trabajo.
  5. Ve a la página de BigQuery.
    IR A BigQuery
  6. En el panel Explorador, expande tu proyecto.
  7. Junto al conjunto de datos que deseas borrar, haz clic en Ver acciones y, luego, en Abrir.
  8. En el panel de detalles, haz clic en Borrar conjunto de datos y, luego, sigue las instrucciones.
  9. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  10. Haz clic en la casilla de verificación del bucket que deseas borrar.
  11. Para borrar el bucket, haz clic en Borrar y sigue las instrucciones.

¿Qué sigue?