En esta página, se explica cómo usar Dataflow SQL y crear trabajos de Dataflow SQL.
Para crear un trabajo de Dataflow SQL, debes write y ejecutar una consulta de Dataflow SQL.
Usa el editor de Dataflow SQL
El editor de Dataflow SQL es una página de la consola de Google Cloud en la que puedes escribir y ejecutar consultas para crear trabajos de Dataflow SQL.
Para acceder al editor de Dataflow SQL, sigue estos pasos:
En la consola de Google Cloud, ve a la página Editor de Dataflow SQL.
También puedes acceder al editor de Dataflow SQL desde la interfaz de supervisión de Dataflow; para ello, sigue estos pasos:
En la consola de Google Cloud, ve a la página Trabajos de Dataflow.
En el menú de Dataflow, haz clic en Lugar de trabajo de SQL.
Escribe consultas en SQL de Dataflow
Las consultas de Dataflow SQL usan la sintaxis de consulta de Dataflow SQL. La sintaxis de consulta de Dataflow SQL es similar a la del SQL estándar de BigQuery.
Puedes usar las extensiones de transmisión de Dataflow SQL para agregar datos de fuentes de Dataflow que se actualizan de forma continua, como Pub/Sub.
Por ejemplo, en la siguiente consulta, se cuentan los pasajeros en una transmisión de Pub/Sub de viajes en taxi cada minuto:
SELECT DATETIME(tr.window_start) AS starttime, SUM(tr.passenger_count) AS pickup_count FROM TUMBLE ((SELECT * FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`), DESCRIPTOR(event_timestamp), 'INTERVAL 1 MINUTE') AS tr WHERE tr.ride_status = "pickup" GROUP BY DATETIME(tr.window_start)
Ejecuta consultas en SQL de Dataflow
Cuando ejecutas una consulta de Dataflow SQL, Dataflow convierte la consulta en una canalización de Apache Beam y ejecuta la canalización.
Puedes ejecutar una consulta de Dataflow SQL mediante la consola de Google Cloud o Google Cloud CLI.
Console
Para ejecutar una consulta de Dataflow SQL, usa el editor de Dataflow SQL.
Ve a la página Editor de Dataflow SQL.
Ingresa la consulta de Dataflow SQL en el editor de consultas.
Haz clic en Crear trabajo para abrir un panel de opciones de trabajo.
Opcional: En Nombre del trabajo, ingresa un nombre único para el trabajo.
En Extremo regional, selecciona un valor del menú.
Opcional: Haz clic en Mostrar parámetros opcionales y, luego, ingresa valores para las opciones de canalización de Dataflow proporcionadas.
En Destino, selecciona un Tipo de salida y, luego, ingresa valores para los campos proporcionados.
Opcional: En la sección Parámetros de búsqueda de SQL, agrega parámetros y, luego, ingresa valores en los campos proporcionados.
Haz clic en Crear.
gcloud
Para ejecutar una consulta de Dataflow SQL, usa el comando gcloud dataflow sql query
. La siguiente es una consulta de SQL de ejemplo que crea
gcloud dataflow sql query \ --job-name=JOB_NAME \ --region=REGION \ --bigquery-table=BIGQUERY_TABLE \ --bigquery-dataset=BIGQUERY_DATASET \ --bigquery-project=BIGQUERY_PROJECT \ 'SQL_QUERY'
Reemplaza lo siguiente:
JOB_NAME
: un nombre para tu trabajo de Dataflow SQLREGION
: la ubicación de Dataflow para implementar tu trabajo de DataflowBIGQUERY_TABLE
: el nombre de la tabla de BigQuery en la que deseas escribir el resultadoBIGQUERY_DATASET
: el ID del conjunto de datos de BigQuery que contiene la tabla de salidaBIGQUERY_PROJECT
: el ID del proyecto de Google Cloud que contiene la tabla de salida de BigQuerySQL_QUERY
: tu consulta de Dataflow SQL
Configura las opciones de canalización
Puedes configurar las opciones de canalización de Dataflow para los trabajos de Dataflow SQL. Las opciones de canalización de Dataflow son parámetros de ejecución que configuran cómo y dónde ejecutar consultas de Dataflow SQL.
A fin de configurar las opciones de canalización de Dataflow para trabajos de Dataflow SQL, especifica los siguientes parámetros cuando ejecutes una consulta de Dataflow SQL.
Console
Parámetro | Tipo | Descripción | Valor predeterminado |
---|---|---|---|
Extremo regional | String |
La región en la que se ejecutará la consulta. Las consultas en SQL de Dataflow se pueden ejecutar en regiones que tienen una ubicación de Dataflow. | Si no se establece, el valor predeterminado es us-central1. . |
Cantidad máxima de trabajadores | int |
La cantidad máxima de instancias de Compute Engine disponibles para tu canalización durante la ejecución. | Si no se especifica, el servicio de Dataflow determina de forma automática una cantidad adecuada de trabajadores. |
Región de trabajador | String |
La región de Compute Engine para iniciar instancias de trabajador a fin de ejecutar tu canalización. La región de trabajador de Compute Engine puede estar en una región diferente que la región del trabajo de Dataflow. | Si no se configura, se establece de forma predeterminada en la región de Dataflow especificada. |
Zona de trabajador | String |
La zona de Compute Engine para iniciar instancias de trabajador y ejecutarlas en tu canalización. La zona de Compute Engine puede estar en una región diferente de la región del trabajo de Dataflow. |
Si no se configura, se establece de forma predeterminada en una zona en la región de trabajador. Si la región de trabajador no se configura, se establece de manera predeterminada en una zona en la región de Dataflow especificada. |
Correo electrónico de la cuenta de servicio | String |
La dirección de correo electrónico de la cuenta de servicio de trabajador
con la que se ejecutará la canalización. La dirección de correo electrónico debe tener el formato my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Si no se configura, los trabajadores de Dataflow usan la cuenta de servicio de Compute Engine del proyecto actual como la cuenta de servicio del trabajador. |
Tipo de máquina | String |
El tipo de máquina de Compute Engine que usa Dataflow cuando inicia trabajadores. Puedes usar cualquiera de las familias de tipos de máquinas de Compute Engine disponibles, así como los tipos personalizados de máquinas. Para obtener mejores resultados, usa tipos de máquina Ten en cuenta que Dataflow factura por la cantidad de CPU virtuales y GB de memoria en los trabajadores. La facturación es independiente de la familia de tipos de máquinas. |
Si no se configura, Dataflow elige de forma automática el tipo de máquina. |
Experimentos adicionales | String |
Los experimentos que se habilitarán. Un experimento puede ser un valor, como enable_streaming_engine , o un par clave-valor, como shuffle_mode=service . Los experimentos deben estar en una lista separada por comas. |
Si no se especifica, no se habilitarán experimentos. |
Configuración de la dirección IP del trabajador | String |
Especifica si los trabajadores de Dataflow usan direcciones IP públicas. Si el valor se establece en Si el valor se establece en |
Si no se establece, el valor predeterminado es Public . |
Red | String |
La red de Compute Engine a la que se asignan los trabajadores. | Si no se configura, se establece de forma predeterminada en la red default . |
Subred | String |
La subred de Compute Engine a la que se asignan los trabajadores. La subred debe tener el formato regions/region/subnetworks/subnetwork . |
Si no se configura, Dataflow determina de forma automática la subred. |
gcloud
Marcar | Tipo | Descripción | Valor predeterminado |
---|---|---|---|
‑‑region |
String |
La región en la que se ejecutará la consulta. Las consultas en SQL de Dataflow se pueden ejecutar en regiones que tienen una ubicación de Dataflow. | Si no se configura, muestra un error. |
‑‑max‑workers |
int |
La cantidad máxima de instancias de Compute Engine disponibles para tu canalización durante la ejecución. | Si no se especifica, Dataflow determina de forma automática una cantidad adecuada de trabajadores. |
‑‑num‑workers |
int |
La cantidad inicial de instancias de Compute Engine que se usarán cuando ejecutes tu canalización. Con este parámetro, se determina cuántos trabajadores inicia Dataflow cuando comienza tu trabajo. | Si no se especifica, Dataflow determina de forma automática una cantidad adecuada de trabajadores. |
‑‑worker‑region |
String |
La región de Compute Engine para iniciar instancias de trabajador a fin de ejecutar tu canalización. La región de trabajador de Compute Engine puede estar en una región diferente que la región del trabajo de Dataflow. Puedes especificar una de |
Si no se configura, se establece de forma predeterminada en la región de Dataflow especificada. |
‑‑worker‑zone |
String |
La zona de Compute Engine para iniciar instancias de trabajador y ejecutarlas en tu canalización. La zona de Compute Engine puede estar en una región diferente de la región del trabajo de Dataflow. Puedes especificar una de |
Si no se configura, se establece de forma predeterminada en una zona en la región de Dataflow especificada. |
‑‑worker‑machine‑type |
String |
El tipo de máquina de Compute Engine que usa Dataflow cuando inicia trabajadores. Puedes usar cualquiera de las familias de tipos de máquinas de Compute Engine disponibles, así como los tipos personalizados de máquinas. Para obtener mejores resultados, usa tipos de máquina Ten en cuenta que Dataflow factura por la cantidad de CPU virtuales y GB de memoria en los trabajadores. La facturación es independiente de la familia de tipos de máquinas. |
Si no se configura, Dataflow elige de forma automática el tipo de máquina. |
‑‑service‑account‑email |
String |
La dirección de correo electrónico de la cuenta de servicio de trabajador
con la que se ejecutará la canalización. La dirección de correo electrónico debe tener el formato my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Si no se configura, los trabajadores de Dataflow usan la cuenta de servicio de Compute Engine del proyecto actual como la cuenta de servicio del trabajador. |
‑‑disable‑public‑ips |
boolean |
Especifica si los trabajadores de Dataflow usan direcciones IP públicas. Si se configura, los trabajadores de Dataflow usan direcciones IP privadas para todas las comunicaciones. |
Si no se configura, los trabajadores de Dataflow usan direcciones IP públicas. |
‑‑network |
String |
La red de Compute Engine a la que se asignan los trabajadores. | Si no se configura, se establece de forma predeterminada en la red default . |
‑‑subnetwork |
String |
La subred de Compute Engine a la que se asignan los trabajadores. La subred debe tener el formato regions/region/subnetworks/subnetwork . |
Si no se configura, Dataflow determina de forma automática la subred. |
‑‑dataflow‑kms‑key |
String |
La clave de encriptación administrada por el cliente (CMEK) que se usa para encriptar datos en reposo. Puedes controlar la clave de encriptación a través de Cloud KMS. La clave debe estar en la misma ubicación que el trabajo. | Si no se especifica, Dataflow usa la encriptación de Google Cloud predeterminada en lugar de una CMEK. |
Para obtener más información, consulta la referencia del comando gcloud dataflow sql query
.
Detén los trabajos de Dataflow SQL
Para detener un trabajo de Dataflow SQL, debes cancelarlo.
No se admite la detención de un trabajo de Dataflow SQL con la opción drain
.
Precios
Dataflow SQL usa el precio estándar de Dataflow; los precios son los mismos. Se te factura por los recursos que consumen los trabajos de Dataflow que creas en función de tus instrucciones de SQL. Los cargos de estos recursos son los cargos estándar de Dataflow para CPU virtual, memoria, Persistent Disk, transmisión de datos y Dataflow Shuffle.
Un trabajo de Dataflow SQL puede consumir recursos adicionales como Pub/Sub y BigQuery, que se facturan según sus propios precios.
Para obtener más información sobre los precios de Dataflow, consulta Precios de Dataflow.
¿Qué sigue?
- Repasa el instructivo Une datos de transmisión con Dataflow SQL.
- Explora Google Cloud CLI para Dataflow SQL.