Cette page explique comment utiliser Dataflow SQL et créer des tâches Dataflow SQL.
Pour créer une tâche Dataflow SQL, écrivez et exécutez une requête Dataflow SQL.
Utiliser l'interface utilisateur Dataflow SQL
L'interface utilisateur Dataflow SQL est un paramètre d'interface utilisateur Web BigQuery permettant de créer des tâches Dataflow SQL.
Vous pouvez accéder à l'interface utilisateur Dataflow SQL à partir de l'interface utilisateur Web de BigQuery.
Accédez à l'UI Web de BigQuery.
Passez au moteur Cloud Dataflow.
a. Cliquez sur More (Plus) et choisissez Query Settings (Paramètres de requête) dans le menu déroulant.
a. Dans le menu Paramètres de requête, sélectionnez Moteur Dataflow.
a. Dans l'invite qui s'affiche si les API Dataflow et Data Catalog ne sont pas activées, cliquez sur Activer les API.
a. Cliquez sur Save.
Vous pouvez également accéder à l'interface utilisateur Dataflow SQL à partir de l'interface de surveillance Dataflow.
Accédez à l'interface de surveillance Dataflow.
Cliquez sur Créer une tâche à partir de 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 TUMBLE_START('INTERVAL 1 MINUTE') 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 1 MINUTE')
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 Dataflow SQL à l'aide de Cloud Console ou de l'outil de ligne de commande gcloud
.
Console
Pour exécuter une requête Dataflow SQL, utilisez l'interface utilisateur de Dataflow SQL.
Accédez à l'interface utilisateur Dataflow SQL.
Saisissez la requête Dataflow SQL dans l'éditeur de requête.
Cliquez sur Créer une tâche Cloud Dataflow pour ouvrir un panneau d'options de tâche.
(Facultatif) Cliquez sur Afficher les paramètres facultatifs, puis définissez les options de pipeline Dataflow.
Dans la section Destination du panneau, sélectionnez un Type de sortie.
Cliquez sur Créer.
gcloud
Pour exécuter une requête Dataflow, SQL utilisez la commande gcloud dataflow sql query
.
gcloud dataflow sql query \ --job-name=job-name \ --region=region \ --bigquery-table=table-name \ --bigquery-dataset=destination-dataset \ 'query'
Pour en savoir plus sur l'interrogation de données et l'écriture de résultats de requête Dataflow SQL, consultez la page Utiliser des sources et des destinations de données.
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 qui possèdent un point de terminaison régional 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 de nœud de calcul Compute Engine peut se trouver dans une région différente de celle du point de terminaison régional de Dataflow. | Si ce champ n'est pas spécifié, la valeur par défaut est définie sur le point de terminaison régional spécifié de Dataflow. |
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 point de terminaison régional de 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 le point de terminaison régional Dataflow spécifié. |
Adresse e-mail du compte de service | String |
Adresse e-mail du compte de service du contrôleur 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 contrôleur. |
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 qui possèdent un point de terminaison régional 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 de nœud de calcul Compute Engine peut se trouver dans une région différente de celle du point de terminaison régional de Dataflow.
Vous pouvez spécifier |
Si ce champ n'est pas spécifié, la valeur par défaut est définie sur le point de terminaison régional spécifié de Dataflow. |
‑‑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 point de terminaison régional de Dataflow.
Vous pouvez spécifier |
Si ce champ n'est pas défini, la valeur par défaut est définie sur une zone dans le point de terminaison régional spécifié de Dataflow. |
‑‑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 du contrôleur 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 contrôleur. |
‑‑disable‑public‑ips |
boolean |
Indique si les nœuds de calcul Dataflow utilisent des adresses IP publiques. Si définis sur |
Si ce champ n'est pas défini, la valeur par défaut est false et 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 des tâches Dataflow SQL, utilisez la commande Annuler. L'arrêt d'une tâche Dataflow SQL avec Drain n'est pas pris en charge.
Prix
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 plus d'informations sur la tarification Dataflow, consultez la page Tarifs de Dataflow.
Étape suivante
- Suivez le tutoriel Joindre des données en flux continu avec Dataflow SQL.
- Découvrez comment utiliser les sources et les destinations des données.
- Découvrez l'outil de ligne de commande
gcloud
pour Dataflow SQL.