Guía de inicio rápido para SQL

En esta guía de inicio rápido, aprenderás a escribir la sintaxis de SQL para consultar un tema de Pub/Sub disponible a nivel público. La consulta de SQL ejecuta una canalización de Dataflow y los resultados de la canalización se escriben en una tabla de BigQuery.

Para ejecutar un trabajo de Dataflow SQL, puedes usar Google Cloud Console, el SDK de Cloud instalado en una máquina local o Cloud Shell. Además de Cloud Console, en este ejemplo se requiere que uses una máquina local o Cloud Shell.

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 Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

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

    Habilita las API

Instala y también inicializa el SDK de Cloud

  • Descarga el paquete del SDK de Cloud para tu sistema operativo y, luego, instala y configura el SDK de Cloud.

    Según la conexión a Internet, la descarga puede tardar un poco.

Cree un conjunto de datos de BigQuery

En esta guía de inicio rápido, la canalización de Dataflow SQL publica un conjunto de datos de BigQuery en una tabla de BigQuery que crearás en la siguiente sección.

  • Crea un conjunto de datos de BigQuery llamado taxirides:

    bq mk taxirides
    

Ejecuta la canalización

  • Ejecutar una canalización de Dataflow SQL que calcule la cantidad de pasajeros por minuto mediante los datos de un tema de Pub/Sub disponible de forma pública sobre los viajes en taxi. Con este comando, también se crea una tabla de BigQuery con el nombre passengers_per_minute para almacenar el resultado de los datos.

    gcloud dataflow sql query \
        --job-name=dataflow-sql-quickstart \
        --region=us-central1 \
        --bigquery-dataset=taxirides \
        --bigquery-table=passengers_per_minute \
    'SELECT
         TUMBLE_START("INTERVAL 60 SECOND") 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 60 SECOND")'
    

    El trabajo de Dataflow SQL puede tardar un tiempo en comenzar a ejecutarse.

A continuación, se describen los valores que se usan en la canalización de Dataflow SQL:

  • dataflow-sql-quickstart: Es el nombre del trabajo de Dataflow.
  • us-central1: Es la región en la que se ejecuta el trabajo.
  • taxirides: El nombre del conjunto de datos de BigQuery que se usó como receptor
  • passengers_per_minute: Es el nombre de la tabla de BigQuery.
  • taxirides-realtime: El nombre del tema de Pub/Sub que se usa como fuente

El comando de SQL consulta el tema de Pub/Sub taxirides-realtime para la cantidad total de pasajeros que se seleccionan cada 60 segundos. Este tema público se basa en el conjunto de datos abierto de la Comisión de Taxis y Limusinas de la Ciudad de Nueva York.

Observa los resultados.

  • Verifica que la canalización se esté ejecutando.

    Console

    1. En Cloud Console, ve a la página de Jobs.

      Ir a Trabajos

    2. En la lista de trabajos, haz clic en dataflow-sql-quickstart.

    3. En el panel Información del trabajo, confirma que el campo Estado del trabajo esté configurado como En ejecución.

      El trabajo puede tardar varios minutos en comenzar. El Estado del trabajo se establece en En cola hasta que se inicia el trabajo.

    4. En la pestaña Grafo del trabajo, confirma que cada paso se ejecute.

      Después de que se inicia el trabajo, los pasos pueden tardar varios minutos en comenzar a ejecutarse.

      El grafo de trabajo de Dataflow con dos pasos compuestos. El primer paso se ejecuta durante 6 minutos y 45 segundos, y el segundo, durante 1 segundo.

    5. En Cloud Console, ve a la página BigQuery.

      Ir a BigQuery

    6. En el Editor, pega la siguiente consulta de SQL y haz clic en Ejecutar:

      'SELECT *
      FROM taxirides.passengers_per_minute
      ORDER BY pickup_count DESC
      LIMIT 5'
      

      En esta consulta, se muestran los intervalos más activos de la tabla passengers_per_minute.

    gcloud

    1. Obtén la lista de trabajos de Dataflow que se ejecutan en tu proyecto:

      gcloud dataflow jobs list
      
    2. Obtén más información sobre el trabajo dataflow-sql-quickstart:

      gcloud dataflow jobs describe JOB_ID
      

      Reemplaza JOB_ID por el ID del trabajo dataflow-sql-quickstart del proyecto.

    3. Muestra los intervalos más activos de la tabla passengers_per_minute.

      bq query \
      'SELECT *
      FROM taxirides.passengers_per_minute
      ORDER BY pickup_count DESC
      LIMIT 5'
      

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.

  1. Para cancelar el trabajo de Dataflow, ve a la página Trabajos.

    Ir a Trabajos

  2. En la lista de trabajos, haz clic en dataflow-sql-quickstart.

  3. Haz clic en Detener > Cancelar > Detener trabajo.

  4. Borra el conjunto de datos taxirides

    bq rm taxirides
    
  5. Para confirmar la eliminación, escribe y.

¿Qué sigue?