Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Transmite datos con canalizaciones: Caso de uso de eSports

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

GSP1298

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

Imagina que eres un ingeniero de datos de Cymbal Gaming. Tú y el equipo de desarrollo están creando un nuevo juego de eSports, "Galactic Grand Prix". El juego produce datos en tiempo real basados en partidas cara a cara entre dos jugadores de diferentes equipos. Por ejemplo, dos jugadores competirán en un evento. Se determina un ganador y, luego, se otorgan puntos al jugador y al equipo ganadores. Se te asignó la tarea de crear una solución para manejar estos datos transmitidos, aprovechando una canalización de Dataflow para transferir datos de Pub/Sub, transformarlos con código de Python y almacenar los resultados en tablas de BigQuery. Estas tablas se usarán para visualizar los resultados como paneles de jugadores y equipos.

Leíste que Pub/Sub, Dataflow y BigQuery podrían usarse para este tipo de caso de uso. También aprendiste que Gemini puede ayudarte en el proceso. Por ejemplo, si tienes dificultades mientras escribes una nueva consulta, podrías usar Code Assist para revisar y depurar tu código. Incluso también podría asistirte con sugerencias para resolver problemas. Usar estas funciones te ayudará a ser más independiente en tu trabajo y, quizás, hasta más eficiente. Sin embargo, no sabes cómo empezar.

Cuando inicies el lab, el entorno contendrá los recursos que se muestran en el siguiente diagrama.

Arquitectura proporcionada al inicio del lab.

Al final del lab, habrás usado la arquitectura para realizar varias tareas.

Arquitectura que crearás cuando completes el lab.

En la siguiente tabla, se proporciona una explicación detallada de cada tarea en relación con la arquitectura del lab.

Tarea numerada Detalle
1. Configurar variables de entorno en Cloud Shell
2. Crear los recursos de la nube:
Usarás comandos de Cloud Shell para crear el tema y la suscripción de Pub/Sub, y el conjunto de datos de BigQuery.
3. Recuperar los archivos de Python del repositorio:
En esta tarea, recuperarás los archivos de Python del repositorio y los configurarás para tu proyecto.
4. Generar datos sintéticos y ejecutar la canalización:
Con los archivos de Python configurados para tu proyecto, ejecutarás los archivos para generar datos sintéticos y, luego, iniciarás la canalización. El archivo esports-simulation.py usa Python para generar mensajes continuos de Pub/Sub para eventos de juegos. Luego, puedes ejecutar el archivo esports-pipeline.py. Ejecutar este archivo inicia una canalización de Dataflow que transfiere los mensajes, los transforma y registra los resultados en las tablas raw_events, player score updates y team score updates en BigQuery.
5. Verificar los resultados en BigQuery:
Ahora que consumiste y transformaste los datos, y escribiste los registros en las tablas de BigQuery, es hora de verificar los resultados. Ejecutarás consultas en cada tabla para analizar y ver los resultados.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Configurar las variables de entorno
  • Crear los recursos de la nube
  • Recuperar archivos de Python del repositorio y modificarlos para tu proyecto
  • Generar datos sintéticos y ejecutar la canalización
  • Verificar los resultados en BigQuery

Por último, tendrás tiempo para reflexionar sobre lo que aprendiste en este lab y analizar cómo podrías abordar tus propios casos de uso con datos de transmisión, y responder preguntas en tu diario de lab.

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón para abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
  7. Haz clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar. Ícono del menú de navegación y campo de búsqueda

Tarea 1: Configura variables de entorno en Cloud Shell

En esta tarea, configurarás variables de entorno en Cloud Shell.

  1. Abre Cloud Shell.

  2. Debes autorizar el uso, ya que es la primera vez que usas Cloud Shell en este lab. Para ello, haz clic en Autorizar en la ventana emergente.

  3. Ejecuta los siguientes comandos:

    export PROJECT_ID="{{{project_0.project_id|set at lab start}}}" export REGION="{{{project_0.default_region|set at lab start}}}" export BUCKET_NAME="{{{project_0.project_id|set at lab start}}}-bucket"
  4. Ejecuta los comandos que se indican a continuación para confirmar que las variables estén almacenadas.

    echo ${PROJECT_ID} echo ${REGION} echo ${BUCKET_NAME}

Tarea 2: Crea los recursos en la nube

En esta tarea, crearás los recursos de la nube, incluidos el tema y la suscripción de Pub/Sub, y el conjunto de datos de BigQuery con Cloud Shell.

Crea los recursos en la nube

Mientras permaneces en Cloud Shell, haz lo siguiente:

  1. Ejecuta el siguiente comando para crear el tema de Pub/Sub.

    gcloud pubsub topics create esports_events_topic
  2. Ejecuta el siguiente comando para crear la suscripción de Pub/Sub.

    gcloud pubsub subscriptions create esports_events_topic-sub --topic=esports_events_topic
  3. Ejecuta el siguiente comando para crear el conjunto de datos de BigQuery.

    bq --location=US mk --dataset esports_analytics

Confirma la creación de recursos

  1. En la parte superior de la consola, hay una función de búsqueda. Ingresa Pub/Sub aquí y haz clic en Pub/Sub en las opciones que se muestran. Verás una lista de temas de Pub/Sub, incluido esports_events_topic.

  2. Haz clic en esports_events_topic, que es el ID del tema. Verás que aparece la pestaña Subscriptions para el tema y que se muestra la suscripción esports_events_topic-sub. Esto confirma que creaste el tema y la suscripción correctamente.

  3. Regresa a la función de búsqueda en la parte superior de la consola. Ingresa BigQuery aquí y haz clic en BigQuery en las opciones que se muestran. Verás la página Te damos la bienvenida a BigQuery Studio con una ventana emergente para Te damos la bienvenida a BigQuery en la consola de Cloud.

  4. Haz clic en Listo.

  5. En el panel Explorador, expande tu proyecto.

  6. Observa que, en la parte inferior de la lista, aparece el conjunto de datos esports_analytics. Esto confirma que creaste correctamente el conjunto de datos de BigQuery.

Haz clic en Revisar mi progreso para verificar el objetivo. Crea los recursos en la nube

Tarea 3: Recupera los archivos de Python y configúralos.

Ahora usarás wget en Cloud Shell para recuperar los archivos de Python de un bucket público de Cloud Storage. Una vez recuperados, abrirás los archivos en el Editor de Cloud Shell y usarás la función de Code Assist de Gemini para explicar cómo funciona cada archivo. Por último, usarás el editor de Cloud Shell para configurar los archivos con detalles de tu proyecto y bucket de Cloud Storage.

Recupera los archivos de Python

  1. Vuelve a Cloud Shell.

  2. Ejecuta el siguiente comando para volver al directorio principal.

    cd ~
  3. Crea el directorio esports y navega hasta él.

    mkdir esports cd esports
  4. Recupera los archivos de Python con los comandos wget que se indican a continuación.

    wget https://storage.googleapis.com/spls/gsp1298/esports-simulation.py wget https://storage.googleapis.com/spls/gsp1298/esports-pipeline.py

    Verás una confirmación en la terminal de que los archivos se descargaron.

Usa Code Assist para explicar qué hace el archivo de Python

  1. Haz clic en el botón Abrir editor en Cloud Shell. Verás que se abre el editor de Cloud Shell. También verás el panel de Gemini Code Assist.

  2. Cierra la pestaña Explicación.

  3. En el panel Explorador, expande la carpeta esports. Verás los archivos de Python.

  4. Abre el archivo esports-simulation.py.

  5. En la esquina superior derecha del archivo, haz clic en la flecha junto a Gemini IA de Gemini.

  6. Haz clic en Seleccionar proyecto de Gemini Code Assist para seleccionar el proyecto que se usará para Gemini. En la lista, selecciona ID del proyecto.

Google Project

Selecciona el proyecto de Gemini

  1. En el panel de Gemini Code Assist, en la parte inferior, verás un lugar para ingresar una instrucción, donde dice "Pedirle a Gemini". Escribe la siguiente instrucción:

    Revisa el código en el archivo esports-simulation.py. Explica qué hace este código.

Ves que Code Assist explica lo que hace el código en detalle. En un nivel alto, el código simulará un partido de eSports de eventos y los publicará en un tema de Google Cloud Pub/Sub.

  1. Ahora usa el mismo proceso para explicar qué hace el archivo esports-pipeline.py con esta instrucción.

    Revisa el código en el archivo esports-pipeline.py. Explica qué hace este código.

Momento de reflexión

  1. Teniendo en cuenta tus datos y casos de uso, piensa en cómo usarías Python para generar datos sintéticos o recopilar datos de tus aplicaciones y, luego, publicar estos datos como mensajes de Pub/Sub en un tema en tu propio flujo de trabajo de desarrollo. Registra tus respuestas en tu diario del lab.
Nota: Se usó Gemini para ayudar al desarrollador que creó el archivo esports-simulation.py. Considera usar Gemini para generar datos de transmisión sintéticos con Python para tus proyectos y ayuda a explicar y solucionar problemas de tu código con Code Assist.
  1. Con tus propias palabras, ¿qué hace el archivo esports-pipeline.py?

  2. Teniendo en cuenta tus datos y casos de uso, piensa en cómo usarías una canalización de Dataflow para consumir mensajes de Pub/Sub, transformar los datos en ellos y almacenar los resultados en BigQuery.

Haz clic en Revisar mi progreso para verificar el objetivo. Recupera los archivos de Python y configúralos

Configura los archivos para tu proyecto y bucket

Mientras estás en el archivo esports-pipeline.py:

  1. Alrededor de la línea 11, establece la variable PROJECT_ID en tu Project_ID. Puedes encontrarlo en la parte superior de la consola de Google Cloud o simplemente reemplazar la línea con el código que aparece a continuación.

    PROJECT_ID = "{{{project_0.project_id|set at lab start}}}"
  2. Alrededor de la línea 18, establece la variable GCS_TEMP_LOCATION con el nombre de tu bucket de Cloud Storage (el nombre del bucket que se te proporcionó en el lanzamiento). La línea resultante debería ser similar a lo siguiente:

    GCS_TEMP_LOCATION = "gs://{{{project_0.project_id|set at lab start}}}-bucket/temp"
  3. Alrededor de la línea 19, establece la variable REGION en tu región predeterminada del lab. Puedes encontrarlo en los detalles del panel del lab o simplemente reemplazar la línea por el siguiente código.

    REGION = "{{{project_0.default_region|set at lab start}}}"
  4. Guarda el archivo.

  5. Vuelve al archivo esports-simulation.py.

  6. Alrededor de la línea 10, establece la variable PROJECT_ID en tu Project_ID. Al igual que con el otro archivo, simplemente reemplaza la línea con el código que aparece a continuación.

    PROJECT_ID = "{{{project_0.project_id|set at lab start}}}" Nota: Si no modificas los archivos de tu proyecto, encontrarás errores en el tiempo de ejecución en Cloud Shell cuando ejecutes estos archivos en la siguiente tarea.
  7. Guarda el archivo.

Tarea 4: Genera datos sintéticos y ejecuta la canalización

En esta tarea, ejecutarás los archivos de Python para generar los datos sintéticos y ejecutar la canalización.

Instala las dependencias y ejecuta el simulador

  1. Regresa a la terminal de Cloud Shell.

  2. Confirma que estás en el directorio principal.

    cd ~
  3. Navega al directorio esports.

    cd esports
  4. Usa pip para instalar las dependencias, específicamente la biblioteca de Python para Pub/Sub.

    pip install google-cloud-pubsub
  5. Ejecuta el simulador. Esta secuencia de comandos se ejecutará de forma continua y enviará eventos a tu tema de Pub/Sub.

    python3 esports-simulation.py

    Verás un resultado que indica que los eventos se publican en la terminal. Mantén esta terminal abierta y en ejecución.

Confirma que los mensajes se publiquen en el tema en la consola de Pub/Sub

  1. Usa la función de búsqueda en la parte superior de la consola. Esta vez, busca Pub/Sub y haz clic en Pub/Sub en la lista.

  2. Haz clic en esports_events_topic, que es el ID del tema. Verás que aparece la pestaña Subscriptions para el tema y que se muestra la suscripción esports_events_topic-sub.

  3. Haz clic en esports_events_topic-sub, que es el ID de suscripción.

  4. En la página de detalles de la suscripción esports_events_topic-sub, haz clic en la pestaña MENSAJES. Verás un mensaje que indica lo siguiente: "Haz clic en Extraer para ver los mensajes y demorar temporalmente la entrega de un mensaje a otro suscriptor".

  5. Haz clic en EXTRAER. Si ves mensajes en esta lista, esto confirma que Pub/Sub está recibiendo los mensajes generados por el archivo esports-simulation.py. Si quieres, explora uno de los mensajes con el botón ver contenido.

Intenta ejecutar la canalización de Dataflow

  1. Abre una pestaña nueva de Cloud Shell. Haz clic en el ícono + en la barra de la terminal de Cloud Shell para abrir una segunda terminal.

  2. Confirma que estás en el directorio principal.

    cd ~
  3. Navega al directorio esports.

    cd esports
  4. Instala las dependencias de Python para Dataflow (apache-beam). En la nueva terminal, configura un entorno virtual y, luego, instala las bibliotecas requeridas.

    python3 -m venv df-env source df-env/bin/activate pip install apache-beam[gcp]
  5. Intenta iniciar la canalización de Dataflow. Ejecuta la secuencia de comandos de la canalización con el siguiente comando. Asegúrate también de haber configurado las variables de entorno PROJECT_ID y BUCKET_NAME en esta nueva terminal.

    export PROJECT_ID="{{{project_0.project_id|set at lab start}}}" export BUCKET_NAME="{{{project_0.project_id|set at lab start}}}-bucket" python3 esports-pipeline.py \ --project=$PROJECT_ID \ --region={{{project_0.default_region | Region}}} \ --runner=DataflowRunner \ --streaming \ --temp_location=gs://$BUCKET_NAME/temp \ --job_name=esports-leaderboard-pipeline

    Este comando envía el trabajo al servicio de Dataflow. El trabajo tardará unos minutos en iniciarse y comenzar a procesar los datos.

    Sin embargo, en este punto verás una advertencia y errores como los siguientes:

    ADVERTENCIA:apache_beam.options.pipeline_options:El bucket especificado en staging_location tiene habilitada la política de eliminación no definitiva. Para evitar cobros por costos de almacenamiento innecesarios, desactiva la función de eliminación no definitiva en los buckets que usan tus trabajos de Dataflow para almacenamiento temporaly en etapa intermedia. Para obtener más información, consulta https://cloud.google.com/storage/docs/use-soft-delete#remove-soft-delete-policy. ERROR:apache_beam.runners.dataflow.dataflow_runner:2025-07-11T14:50:27.572Z: JOB_MESSAGE_ERROR: El agente de servicio de Dataflow no puede acceder a la cuenta de servicio del trabajador. Asegúrate de que la API de Dataflow esté habilitada para tu proyecto. Además, verifica que, para la cuenta de servicio del trabajador, la principal del agente de servicio de Dataflow tenga el rol “Agente de servicio de Cloud Dataflow”. Para otorgar el rol, consulta https://cloud.google.com/iam/docs/manage-access-service-accounts#view-access. En la página Cuentas de servicio, selecciona la cuenta de servicio del trabajador, abre la pestaña Permisos y selecciona “Incluir asignaciones de roles proporcionadas por Google” para verificar los roles. Para obtener más información sobre las cuentas de servicio, consulta https://cloud.google.com/dataflow/docs/concepts/security-and-permissions#permissions

    ¿Qué significa esto? Primero, comencemos con la ADVERTENCIA.

    La advertencia indica que el bucket usado en este lab, -bucket, debe tener inhabilitada la función de protección Borrar de forma no definitiva. Te recomendamos que la inhabilites. A continuación, te proporcionaremos instrucciones para hacerlo.

    Con respecto al ERROR… Ahora, abordemos el ERROR… ¿Qué significa?

    Este error tiene dos causas posibles.

    1. La API de Dataflow no está habilitada. Sin embargo, al iniciar tu lab, habilitamos esta opción por ti. Para confirmarlo, ve a APIs y servicios.

    2. La causa real del error es que debes agregar el rol Agente de servicio de Cloud Dataflow a la cuenta de servicio de procesamiento de Cloud. A continuación, incluiremos instrucciones para completar esta tarea.

Inhabilitar la función Borrar de forma no definitiva en el bucket de Cloud Storage

  1. Usa la función de búsqueda en la parte superior de la consola. Busca Cloud Storage y haz clic en la opción Cloud Storage en la lista. Verás que aparece la página Descripción general.

  2. Haz clic en Buckets. Verás que aparece la página Buckets y que tu bucket, -bucket, se muestra en la lista.

  3. Haz clic en -bucket. Verás que aparece la página de detalles del bucket.

  4. Haz clic en Protección. Verás una lista de opciones, que incluye Política de eliminación no definitiva (para la recuperación de datos).

  5. Haz clic en Inhabilitar. Verás una ventana emergente para Inhabilitar la política de eliminación no definitiva.

  6. Haz clic en Confirmar. Se inhabilitó la política de eliminación no definitiva.

Agrega el rol de agente de servicio de Cloud Dataflow

  1. Usa la función de búsqueda en la parte superior de la consola para ir a IAM. Verás que aparece la página de IAM.

  2. Haz clic en Cuentas de servicio. Verás que aparece la lista de cuentas de servicio. Una de las cuentas de servicio que se enumeran es la de Compute Engine. Tu cuenta de servicio para el servicio de Compute Engine se vería similar a la siguiente:

655017706949-compute@developer.gserviceaccount.com
  1. Para agregar el rol de agente de servicio de Cloud Dataflow a esta cuenta de servicio, primero haz clic en Acciones junto a ella.

  2. En la lista de opciones proporcionada, haz clic en Administrar permisos.

  3. En Administrar permisos de cuenta de servicio, haz clic en Administrar acceso. Observa que el rol de Editor ya está incluido.

  4. Haz clic en + Agregar otro rol.

  5. Usa la opción Seleccionar un rol. Busca y selecciona el rol Agente de servicio de Cloud Dataflow.

  6. Haz clic en Guardar.

  7. Confirma que el rol se haya agregado.

Ejecuta la canalización de Dataflow

  1. Vuelve a Cloud Shell.

  2. Confirma que estás en la segunda pestaña de la terminal, la que se usa para ejecutar la canalización de Dataflow (esports-pipeline.py).

  3. Vuelve a ejecutar el siguiente comando.

    export PROJECT_ID="{{{project_0.project_id|set at lab start}}}" export BUCKET_NAME="{{{project_0.project_id|set at lab start}}}-bucket" python3 esports-pipeline.py \ --project=$PROJECT_ID \ --region={{{project_0.default_region | Region}}} \ --runner=DataflowRunner \ --streaming \ --temp_location=gs://$BUCKET_NAME/temp \ --job_name=esports-leaderboard-pipeline

    Esta vez, deberías ver un mensaje que indica “El ajuste de escala automático está habilitado para Dataflow Streaming Engine. Los trabajadores se escalarán entre 1 y 100, a menos que se especifique maxNumWorkers".

    Esto significa que superaste la advertencia de borrado de forma no definitiva y el error del agente de servicio de Cloud Dataflow.

Accede al servicio de Dataflow y observa la canalización

  1. Usa la función de búsqueda en la parte superior de la consola para buscar y seleccionar el servicio de Dataflow. Verás que aparece la página Trabajos, con dos trabajos del mismo nombre. Uno se está ejecutando y el otro falló.

  2. Haz clic en el trabajo en ejecución. Verás que aparece el gráfico de trabajo. En la parte inferior de la página, verás el panel Registros.

  3. Expande el panel Registros. Verás pestañas para REGISTROS DE TRABAJO y REGISTROS DE TRABAJADOR.

  4. Haz clic en REGISTROS DE TRABAJADOR.

  5. Revisa los registros proporcionados aquí. Si ves registros que indican que se crearon las tablas raw_events, player_score_updates o team_score_updates, puedes pasar a la siguiente tarea.

    Nota: Es posible que debas esperar entre 5 y 7 minutos para ver estos registros de las tablas que se están creando.

Haz clic en Revisar mi progreso para verificar el objetivo. Genera datos sintéticos y ejecuta la canalización

Tarea 5: Verifica los resultados en BigQuery

En esta tarea, ejecutarás consultas de SQL para verificar los resultados de los mensajes procesados. Para lograrlo, crearás dos vistas y, luego, las consultarás para mostrar las tablas de clasificación de jugadores y equipos. También te tomarás un tiempo para reflexionar sobre cómo se podría usar Looker para mejorar las visualizaciones de la tabla de clasificación.

Crea las vistas en BigQuery

  1. Vuelva a BigQuery.

  2. En el explorador, expande tu proyecto y selecciona el conjunto de datos esports_analytics.

  3. Haz clic en el signo + (más) para crear una consulta nueva.

  4. En la pestaña Consulta, ingresa la siguiente consulta:

    -- Query 1: Create the Player Leaderboard View -- This view finds the most recent score for each player and ranks them. CREATE OR REPLACE VIEW `esports_analytics.player_leaderboard_live` AS SELECT -- Use the RANK() window function to calculate the rank in real-time RANK() OVER (ORDER BY total_score DESC) as rank, player_id, total_score, last_updated FROM ( -- This subquery gets only the single most recent score for each player SELECT player_id, total_score, last_updated, ROW_NUMBER() OVER (PARTITION BY player_id ORDER BY last_updated DESC) as rn FROM `esports_analytics.player_score_updates` ) WHERE rn = 1; -- Query 2: Create the Team Leaderboard View -- This view finds the most recent score for each team and ranks them. CREATE OR REPLACE VIEW `esports_analytics.team_leaderboard_live` AS SELECT -- Use the RANK() window function to calculate the rank in real-time RANK() OVER (ORDER BY total_wins DESC) as rank, team_id, total_wins, last_updated FROM ( -- This subquery gets only the single most recent score for each team SELECT team_id, total_wins, last_updated, ROW_NUMBER() OVER (PARTITION BY team_id ORDER BY last_updated DESC) as rn FROM `esports_analytics.team_score_updates` ) WHERE rn = 1;

    Esta consulta crea dos vistas: una para la tabla de clasificación de jugadores y otra para la tabla de clasificación de equipos. Encontrará las puntuaciones más recientes del jugador y del equipo, y los clasificará en consecuencia.

Ejecuta una consulta para mostrar la tabla de clasificación de los jugadores

  1. Haz clic en el signo más para crear una consulta nueva.

  2. En la pestaña Consulta, ingresa la siguiente consulta:

    SELECT * FROM `esports_analytics.player_leaderboard_live` ORDER BY rank;

Ejecuta una consulta para mostrar la tabla de clasificación del equipo

  1. Haz clic en el signo más para crear una consulta nueva.

  2. En la pestaña Consulta, ingresa la siguiente consulta:

    SELECT * FROM `esports_analytics.team_leaderboard_live` ORDER BY rank;

Momento de reflexión

Con tu diario, responde las siguientes preguntas:

  1. ¿Qué jugador está en primer lugar?
  2. ¿Qué equipo está actualmente en primer lugar?

Haz clic en Revisar mi progreso para verificar el objetivo. Verifica los resultados en BigQuery

¡Felicitaciones!

Generaste recursos de Google Cloud para respaldar tu canalización de Dataflow de eSports, incluidos un tema y una suscripción de Pub/Sub, un conjunto de datos de BigQuery, tablas y vistas, y la canalización en sí con datos simulados generados a partir de secuencias de comandos de Python. También usaste Code Assist para que te ayude a explicar el código en estas secuencias de comandos. Cada día estás adquiriendo más confianza con Google Cloud y puedes usar Gemini para complementar tu conocimiento y tus habilidades con flujos de trabajo de ingeniería de datos.

Próximos pasos/Más información

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Última actualización del manual: 11 de agosto de 2025

Prueba más reciente del lab: 11 de agosto de 2025

Copyright 2025 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usar una ventana de incógnito o de navegación privada es la mejor forma de ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.