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 directamente en la consola Google Cloud , haz clic en Guiarme:

GUIARME


Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.

    Enable the APIs

  8. Crea un bucket de Cloud Storage:
    1. In the Google Cloud console, go to the Cloud Storage Buckets page.

      Go to Buckets

    2. Click Create.
    3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
      1. For Name your bucket, enter a unique bucket name. Don't include sensitive information in the bucket name, because the bucket namespace is global and publicly visible.
      2. In the Choose where to store your data section, do the following:
        1. Select a Location type.
        2. Choose a location where your bucket's data is permanently stored from the Location type drop-down menu.
        3. To set up cross-bucket replication, select Add cross-bucket replication via Storage Transfer Service and follow these steps:

          Set up cross-bucket replication

          1. In the Bucket menu, select a bucket.
          2. In the Replication settings section, click Configure to configure settings for the replication job.

            The Configure cross-bucket replication pane appears.

            • To filter objects to replicate by object name prefix, enter a prefix that you want to include or exclude objects from, then click Add a prefix.
            • To set a storage class for the replicated objects, select a storage class from the Storage class menu. If you skip this step, the replicated objects will use the destination bucket's storage class by default.
            • Click Done.
      3. In the Choose how to store your data section, do the following:
        1. In the Set a default class section, select the following: Standard.
        2. To enable hierarchical namespace, in the Optimize storage for data-intensive workloads section, select Enable hierarchical namespace on this bucket.
      4. In the Choose how to control access to objects section, select whether or not your bucket enforces public access prevention, and select an access control method for your bucket's objects.
      5. In the Choose how to protect object data section, do the following:
        • Select any of the options under Data protection that you want to set for your bucket.
          • To enable soft delete, click the Soft delete policy (For data recovery) checkbox, and specify the number of days you want to retain objects after deletion.
          • To set Object Versioning, click the Object versioning (For version control) checkbox, and specify the maximum number of versions per object and the number of days after which the noncurrent versions expire.
          • To enable the retention policy on objects and buckets, click the Retention (For compliance) checkbox, and then do the following:
            • To enable Object Retention Lock, click the Enable object retention checkbox.
            • To enable Bucket Lock, click the Set bucket retention policy checkbox, and choose a unit of time and a length of time for your retention period.
        • To choose how your object data will be encrypted, expand the Data encryption section (), and select a Data encryption method.
    4. Click Create.
  9. Copia lo siguiente, ya que los necesitarás en una sección posterior:
    • : Es el nombre del bucket de Cloud Storage.
    • El ID de tu proyecto 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, el rol de administrador de objetos de almacenamiento, el rol de editor de Pub/Sub, el rol de editor de datos de BigQuery y el rol de visualizador. Para agregar los roles necesarios en la consola de Google Cloud , haz lo siguiente:

    1. Ve a la página IAM y selecciona tu proyecto.
      Ir a IAM
    2. En la fila que contiene tu cuenta de usuario, haz clic en Editar principal. Haz clic en Agregar otro rol y agrega los siguientes roles: Administrador de Dataflow y Usuario de cuenta de servicio.
    3. Haz clic en Guardar.
    4. En la fila que contiene la cuenta de servicio predeterminada de Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com), haz clic en Editar principal.
    5. Haz clic en Agregar otro rol y agrega los siguientes roles: Trabajador de Dataflow, Administrador de objetos de Storage, Editor de Pub/Sub, Editor de datos de BigQuery y Visualizador.
    6. 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 ).

Crear 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 Google Cloud consola.

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 Google Cloud proyecto.
    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. En la sección Parámetros de fuente opcionales, en Tema de entrada de Pub/Sub, haz clic en Ingresar tema de forma manual.
  7. 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
    }
  8. 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.

  9. 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.
  10. 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 cinco minutos en comenzar a aparecer en la tabla.

  3. Haz 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.

Limpia

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 Google Cloud proyecto que creaste para la guía de inicio rápido.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

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. In the Google Cloud console, go to the Cloud Storage Buckets page.

    Go to Buckets

  10. Click the checkbox for the bucket that you want to delete.
  11. To delete the bucket, click Delete, and then follow the instructions.

¿Qué sigue?