Cette page explique comment utiliser Dataflow SQL et créer des tâches Dataflow SQL.
Pour créer une tâche Dataflow SQL, vous devez écrire et exécuter une requête Dataflow SQL.
Utiliser l'éditeur Dataflow SQL
L'éditeur Dataflow SQL est une page de Google Cloud Console sur laquelle vous écrivez et exécutez des requêtes pour créer des tâches Dataflow SQL.
Pour accéder à l'éditeur Dataflow SQL, procédez comme suit :
Dans la console Google Cloud, accédez à la page Éditeur Dataflow SQL.
Vous pouvez également accéder à l'éditeur Dataflow SQL à partir de l'interface de surveillance Dataflow en procédant comme suit :
Dans la console Google Cloud, accédez à la page Tâches de Dataflow.
Dans le menu Dataflow, cliquez sur Espace de travail SQL.
Écrire des requêtes Dataflow SQL
Les requêtes Dataflow SQL utilisent la syntaxe de requête Dataflow SQL. La syntaxe de la requête Dataflow SQL est semblable au langage SQL standard de BigQuery.
Vous pouvez utiliser les extensions de flux Dataflow SQL pour regrouper les données provenant de sources Dataflow continuellement mises à jour telles que Pub/Sub.
Par exemple, la requête suivante compte le nombre de passagers par minute dans un flux Pub/Sub de courses en taxi :
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)
Exécuter des requêtes Dataflow SQL
Lorsque vous exécutez une requête Dataflow SQL, Dataflow transforme la requête en un pipeline Apache Beam et exécute le pipeline.
Vous pouvez exécuter une requête SQL Dataflow à l'aide de la console Google Cloud ou de Google Cloud CLI.
Console
Pour exécuter une requête Dataflow SQL, utilisez l'éditeur Dataflow SQL.
Accédez à la page Éditeur Dataflow SQL.
Saisissez la requête Dataflow SQL dans l'éditeur de requête.
Cliquez sur Créer une tâche pour ouvrir un panneau d'options de tâche.
(Facultatif) Dans le champ Nom de la tâche, saisissez un nom de tâche unique.
Pour Point de terminaison régional, sélectionnez une valeur dans le menu.
Facultatif : Cliquez sur Afficher les paramètres facultatifs, puis saisissez des valeurs pour les options de pipeline Dataflow fournies.
Pour Destination, sélectionnez un type de sortie, puis saisissez des valeurs pour les champs fournis.
Facultatif : Dans la section Paramètres de requête SQL, ajoutez des paramètres, puis saisissez des valeurs dans les champs fournis.
Cliquez sur Create (Créer).
gcloud
Pour exécuter une requête Dataflow, SQL utilisez la commande gcloud dataflow sql query
. Voici un exemple de requête SQL qui crée
gcloud dataflow sql query \ --job-name=JOB_NAME \ --region=REGION \ --bigquery-table=BIGQUERY_TABLE \ --bigquery-dataset=BIGQUERY_DATASET \ --bigquery-project=BIGQUERY_PROJECT \ 'SQL_QUERY'
Remplacez les éléments suivants :
JOB_NAME
: nom de la tâche Dataflow SQLREGION
: emplacement Dataflow pour le déploiement de votre job DataflowBIGQUERY_TABLE
: nom de la table BigQuery dans laquelle vous souhaitez écrire la sortieBIGQUERY_DATASET
: ID de l'ensemble de données BigQuery contenant la table de sortieBIGQUERY_PROJECT
: ID du projet Google Cloud contenant la table de sortie BigQuerySQL_QUERY
: requête Dataflow SQL
Définir les options de pipeline
Vous pouvez définir les options de pipeline Dataflow pour les tâches Dataflow SQL. Les options de pipeline Dataflow sont des paramètres d'exécution qui permettent de configurer l'emplacement et les options d'exécution des requêtes Dataflow SQL.
Pour définir les options de pipeline Dataflow pour les tâches Dataflow SQL, spécifiez les paramètres suivants lorsque vous exécutez une requête Dataflow SQL.
Console
Réglage | Type | Description | Valeur par défaut |
---|---|---|---|
Point de terminaison régional | String |
Région dans laquelle exécuter la requête. Les requêtes Dataflow SQL peuvent être exécutées dans des régions disposant d'un emplacement Dataflow. | Si ce champ n'est pas défini, la valeur par défaut est us-central1. . |
Nombre maximal de nœuds de calcul | int |
Nombre maximal d'instances Compute Engine disponibles pour le pipeline pendant l'exécution. | Si ce champ n'est pas défini, Dataflow définit automatiquement un nombre approprié de nœuds de calcul. |
Région des nœuds de calcul | String |
La région Compute Engine pour le lancement d'instances de nœuds de calcul visant à exécuter le pipeline. La région du nœud de calcul Compute Engine peut être différente de celle du job Dataflow. | Si ce champ n'est pas spécifié, la valeur par défaut est définie sur la région Dataflow spécifiée. |
Zone de nœuds de calcul | String |
Zone Compute Engine pour le lancement d'instances de nœuds de calcul visant à exécuter le pipeline. La zone Compute Engine peut se trouver dans une région différente de celle du job Dataflow. |
Si ce champ n'est pas défini, la valeur par défaut est définie sur une zone dans la région du nœud de calcul. Si la région du nœud de calcul n'est pas définie, la valeur par défaut est définie sur une zone dans la région Dataflow spécifiée. |
Adresse e-mail du compte de service | String |
Adresse e-mail du compte de service de nœud de calcul avec lequel exécuter le pipeline. L'adresse e-mail doit respecter le format my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Si ce champ n'est pas défini, les nœuds de calcul Dataflow utilisent le compte de service Compute Engine du projet actuel en tant que compte de service de nœud de calcul. |
Type de machine | String |
Type de machine Compute Engine utilisé par Dataflow lors du démarrage des nœuds de calcul. Vous pouvez utiliser toutes les familles de types de machines Compute Engine disponibles, ainsi que des types de machines personnalisés. Pour des résultats optimaux, utilisez des types de machine Notez que l'utilisation de Dataflow est facturée en fonction du nombre de processeurs virtuels et de Go de mémoire consommés par les nœuds de calcul. La facturation ne dépend pas de la famille du type de machine. |
Si ce champ n'est pas défini, Dataflow sélectionne automatiquement le type de machine. |
Tests supplémentaires | String |
Tests à activer. Un test peut être une valeur, telle que enable_streaming_engine , ou une paire clé/valeur, telle que shuffle_mode=service . Les tests doivent se présenter sous la forme d'une liste d'éléments séparés par une virgule. |
Si cette liste n'est pas spécifiée, aucun test n'est activé. |
Configuration des adresses IP des nœuds de calcul | String |
Indique si les nœuds de calcul Dataflow utilisent des adresses IP publiques. Si la valeur est définie sur Si la valeur est définie sur |
Si ce champ n'est pas défini, la valeur par défaut est Public . |
Réseau | String |
Réseau Compute Engine auquel les nœuds de calcul sont attribués. | Si ce champ n'est pas spécifié, la valeur par défaut est définie sur le réseau default . |
Sous-réseau | String |
Sous-réseau Compute Engine auquel les nœuds de calcul sont attribués. Le sous-réseau doit être au format regions/region/subnetworks/subnetwork . |
Si ce champ n'est pas défini, Dataflow détermine automatiquement le sous-réseau. |
gcloud
Option | Type | Description | Valeur par défaut |
---|---|---|---|
‑‑region |
String |
Région dans laquelle exécuter la requête. Les requêtes Dataflow SQL peuvent être exécutées dans des régions disposant d'un emplacement Dataflow. | Si ce champ n'est pas défini, une erreur se produit. |
‑‑max‑workers |
int |
Nombre maximal d'instances Compute Engine disponibles pour le pipeline pendant l'exécution. | Si ce champ n'est pas défini, Dataflow détermine automatiquement un nombre approprié de nœuds de calcul. |
‑‑num‑workers |
int |
Nombre initial d'instances Google Compute Engine à utiliser lors de l'exécution du pipeline. Ce paramètre détermine le nombre de nœuds de calcul démarrés par Dataflow au début de la tâche. | Si ce champ n'est pas défini, Dataflow détermine automatiquement un nombre approprié de nœuds de calcul. |
‑‑worker‑region |
String |
Région Compute Engine permettant de lancer des instances de nœud de calcul pour exécuter votre pipeline. La région du nœud de calcul Compute Engine peut être différente de celle du job Dataflow.
Vous pouvez spécifier |
Si ce champ n'est pas spécifié, la valeur par défaut est définie sur la région Dataflow spécifiée. |
‑‑worker‑zone |
String |
Zone Compute Engine pour le lancement d'instances de nœuds de calcul visant à exécuter le pipeline. La zone Compute Engine peut se trouver dans une région différente de celle du job Dataflow.
Vous pouvez spécifier |
Si ce champ n'est pas spécifié, la valeur par défaut est définie sur une zone dans la région Dataflow spécifiée. |
‑‑worker‑machine‑type |
String |
Type de machine Compute Engine utilisé par Dataflow lors du démarrage des nœuds de calcul. Vous pouvez utiliser toutes les familles de types de machines Compute Engine disponibles, ainsi que des types de machines personnalisés. Pour des résultats optimaux, utilisez des types de machine Notez que l'utilisation de Dataflow est facturée en fonction du nombre de processeurs virtuels et de Go de mémoire consommés par les nœuds de calcul. La facturation ne dépend pas de la famille du type de machine. |
Si ce champ n'est pas défini, Dataflow sélectionne automatiquement le type de machine. |
‑‑service‑account‑email |
String |
Adresse e-mail du compte de service de nœud de calcul avec lequel exécuter le pipeline. L'adresse e-mail doit respecter le format my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Si ce champ n'est pas défini, les nœuds de calcul Dataflow utilisent le compte de service Compute Engine du projet actuel en tant que compte de service de nœud de calcul. |
‑‑disable‑public‑ips |
boolean |
Indique si les nœuds de calcul Dataflow utilisent des adresses IP publiques. S'ils sont définis, les nœuds de calcul Dataflow utilisent des adresses IP privées pour toutes les communications. |
Si ce champ n'est pas défini, les nœuds de calcul Dataflow utilisent des adresses IP publiques. |
‑‑network |
String |
Réseau Compute Engine auquel les nœuds de calcul sont attribués. | Si ce champ n'est pas spécifié, la valeur par défaut est définie sur le réseau default . |
‑‑subnetwork |
String |
Sous-réseau Compute Engine auquel les nœuds de calcul sont attribués. Le sous-réseau doit être au format regions/region/subnetworks/subnetwork . |
Si ce champ n'est pas défini, Dataflow détermine automatiquement le sous-réseau. |
‑‑dataflow‑kms‑key |
String |
La clé de chiffrement gérée par le client (CMEK, Customer-Managed Encryption Key) qui permet de chiffrer les données au repos. Vous pouvez contrôler la clé de chiffrement via Cloud KMS. La clé doit se trouver au même emplacement que la tâche. | Dans le cas contraire, Dataflow utilise le chiffrement Google Cloud par défaut à la place du chiffrement CMEK. |
Pour en savoir plus, consultez la documentation de référence sur la commande gcloud dataflow sql query
.
Arrêter des tâches Dataflow SQL
Pour arrêter une tâche Dataflow SQL, vous devez l'annuler.
L'arrêt d'une tâche Dataflow SQL avec l'option drain
n'est pas accepté.
Tarifs
Dataflow SQL suit la tarification standard de Dataflow : il n'y a pas de grille tarifaire spécifique. Vous êtes facturé pour les ressources consommées par les tâches Dataflow que vous créez en fonction de vos instructions SQL. Les frais pour ces ressources sont les frais standards de Dataflow pour le processeur virtuel, la mémoire, le disque persistant, Streaming Engine et Dataflow Shuffle.
Une tâche Dataflow SQL peut consommer des ressources supplémentaires telles que Pub/Sub et BigQuery, chacune étant facturée à son propre tarif.
Pour en savoir plus sur la tarification de Dataflow, consultez la page Tarifs de Dataflow.
Étapes suivantes
- Suivez le tutoriel Joindre des données en flux continu avec Dataflow SQL.
- Explorez la CLI Google Cloud pour Dataflow SQL.