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:
Antes de comenzar
Completa los siguientes pasos antes de ejecutar tu canalización.
Configura tu proyecto
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Roles obligatorios
Para completar este inicio rápido, necesitas los siguientes roles de Identity and Access Management (IAM).
Si quieres obtener los permisos que necesitas para completar esta guía de inicio rápido, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Usuario de BigQuery (
roles/bigquery.user) -
Administrador de Dataflow (
roles/dataflow.admin) -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) -
Administrador de almacenamiento (
roles/storage.admin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Para asegurarte de que la cuenta de servicio predeterminada de Compute Engine tenga los permisos necesarios para ejecutar el trabajo de Dataflow, pídele a tu administrador que otorgue los siguientes roles de IAM a la cuenta de servicio predeterminada de Compute Engine en tu proyecto:
-
Editor de datos de BigQuery (
roles/bigquery.dataEditor) -
Trabajador de Dataflow (
roles/dataflow.worker) -
Editor de Pub/Sub (
roles/pubsub.editor) -
Administrador de objetos de Storage (
roles/storage.objectAdmin) -
Visualizador (
roles/viewer)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgarle los permisos necesarios a la cuenta de servicio predeterminada de Compute Engine a través de roles personalizados o de otros roles predefinidos.
Cree un bucket de Cloud Storage
Antes de ejecutar una canalización, debes crear un bucket de Cloud Storage.
Crea un bucket de Cloud Storage:
- En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.
- Haz clic en Crear.
- En la página Crear un bucket, ingresa la información de tu bucket. Para ir al paso siguiente, haz clic en Continuar.
- En Asigna un nombre a tu 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 la sección Elige dónde almacenar tus datos, haz lo siguiente:
- Selecciona un tipo de ubicación
- Elige una ubicación en la que se almacenen de forma permanente los datos de tu bucket en el menú desplegable Tipo de ubicación.
- Si seleccionas el tipo de ubicación birregional, también puedes habilitar la replicación turbo con la casilla de verificación correspondiente.
- Para configurar la replicación bucket buckets, selecciona
Agregar replicación entre bucket a través del Servicio de transferencia de almacenamiento y
sigue estos pasos:
Configura la replicación entre buckets
- En el menú Bucket, selecciona un bucket.
En la sección Configuración de replicación, haz clic en Configurar para configurar los parámetros del trabajo de replicación.
Aparecerá el panel Configurar la replicación entre buckets.
- Para filtrar los objetos que se replicarán por prefijo de nombre de objeto, ingresa un prefijo con el que quieras incluir o excluir objetos y, luego, haz clic en Agregar un prefijo.
- Para establecer una clase de almacenamiento para los objetos replicados, selecciona una clase de almacenamiento en el menú Clase de almacenamiento. Si omites este paso, los objetos replicados usarán la clase de almacenamiento del bucket de destino de forma predeterminada.
- Haz clic en Listo.
-
En la sección Elige cómo almacenar tus datos, haz lo siguiente:
- En la sección Establecer una clase predeterminada, selecciona lo siguiente: Estándar.
- Para habilitar el espacio de nombres jerárquico, en la sección Optimizar el almacenamiento para cargas de trabajo con uso intensivo de datos, selecciona Habilitar el espacio de nombres jerárquico en este bucket.
- En la sección Elige cómo controlar el acceso a los objetos, selecciona si tu bucket aplica o no la prevención del acceso público y elige un método de control de acceso para los objetos del bucket.
-
En la sección Elige cómo proteger los datos de objetos, haz lo siguiente:
- Selecciona cualquiera de las opciones de Protección de datos que
desees configurar para tu bucket.
- Para habilitar la eliminación no definitiva, haz clic en la casilla de verificación Política de eliminación no definitiva (para la recuperación de datos) y especifica la cantidad de días que deseas conservar los objetos después de la eliminación.
- Para configurar el control de versiones de objetos, haz clic en la casilla de verificación Control de versiones de objetos (para el control de versión) y especifica la cantidad máxima de versiones por objeto y la cantidad de días después de los cuales vencen las versiones no actuales.
- Para habilitar la política de retención en objetos y buckets, haz clic en la casilla de verificación Retención (para cumplimiento) y, luego, haz lo siguiente:
- Para habilitar el bloqueo de retención de objetos, haz clic en la casilla de verificación Habilitar la retención de objetos.
- Para habilitar el Bloqueo del bucket, haz clic en la casilla de verificación Establecer política de retención del bucket y elige una unidad de tiempo y una duración para tu período de retención.
- Para elegir cómo se encriptarán los datos de tus objetos, expande la sección Encriptación de datos () y selecciona un método de encriptación de datos.
- Selecciona cualquiera de las opciones de Protección de datos que
desees configurar para tu bucket.
- Haz clic en Crear.
Copia lo siguiente, ya que lo necesitarás en una sección posterior:
- : Es el nombre del bucket de Cloud Storage.
- Es el ID de tu proyecto de Google Cloud .
Para encontrar este ID, consulta Identifica proyectos.
Red de VPC
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 tu cuenta de usuario tenga el 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:
- Ve a la página de BigQuery.
Ir a BigQuery - 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.
- En el panel Crear conjunto de datos, sigue estos pasos:
- En ID del conjunto de datos, ingresa
taxirides. Los IDs de conjuntos de datos son únicos para cada Google Cloud proyecto. - 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. - Deja el resto de la configuración predeterminada y, luego, haz clic en Crear conjunto de datos.
- En el panel
Explorador , expande tu proyecto. - Junto al conjunto de datos
taxirides, haz clic en Ver acciones y, luego, en Crear tabla. - En el panel Crear tabla, sigue estos pasos:
- En la sección Origen, para Crear tabla desde, selecciona Tabla vacía.
- En la sección Destino, para Nombre de tabla, ingresa
realtime. - 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
- En la sección Configuración del clúster y las particiones, en Partición, selecciona el campo Marca de tiempo.
- 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.
- Ve a la página Trabajos de Dataflow.
IR A TRABAJOS - Haz clic en
Crear trabajo a partir de una plantilla . - Ingresa
taxi-datacomo el Nombre del trabajo para tu trabajo de Dataflow. - En Plantilla de Dataflow, selecciona la plantilla Pub/Sub a BigQuery.
- En Tabla de salida de BigQuery, ingresa lo siguiente:
PROJECT_ID:taxirides.realtime
Reemplaza
PROJECT_IDpor el ID del proyecto en el que creaste tu conjunto de datos de BigQuery. - En la sección Parámetros de fuente opcionales, en el campo Tema de entrada de Pub/Sub, haz clic en Ingresar tema manualmente.
- 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 }
- En Ubicación temporal, ingresa lo siguiente:
gs://BUCKET_NAME/temp/
Reemplaza
BUCKET_NAMEpor el nombre de tu bucket de Cloud Storage. La carpetatempalmacena archivos temporales, como el trabajo de canalización en etapa de pruebas. - 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.
- Haga clic en Ejecutar trabajo.
Ve los resultados
Para ver los datos escritos en tu tablarealtime, sigue estos pasos:
Ve a la página de BigQuery.
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_IDpor 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.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.
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 Google Cloud proyecto que creaste para la guía de inicio rápido.- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- 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:
- Ve a la página Trabajos de Dataflow.
IR A TRABAJOS - Selecciona tu trabajo de transmisión en la lista de trabajos.
- En la navegación, haz clic en Detener.
- En el cuadro de diálogo Detener trabajo, cancela o desvía tu canalización y, luego, haz clic en Detener el trabajo.
- Ve a la página de BigQuery.
IR A BigQuery - En el panel Explorador, expande tu proyecto.
- Junto al conjunto de datos que deseas borrar, haz clic en Ver acciones y, luego, en Abrir.
- En el panel de detalles, haz clic en Borrar conjunto de datos y, luego, sigue las instrucciones.
- En la Google Cloud consola, ve a la página Buckets de Cloud Storage.
- Haz clic en la casilla de verificación del bucket que deseas borrar.
- Para borrar el bucket, haz clic en Borrar y sigue las instrucciones.