Utiliser Dataflow SQL

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.

  1. Accédez à l'UI Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Passez au moteur Cloud Dataflow.

    a. Cliquez sur More (Plus) et choisissez Query Settings (Paramètres de requête) dans le menu déroulant.

    Menu déroulant "Plus" dans l'interface utilisateur Web de BigQuery avec l'option "Paramètres de requête" sélectionnée

    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.

    Menu "Paramètres de requête" affichant l'invite "Activer les API"

    a. Cliquez sur Save.

    Menu des paramètres de requête avec la case d'option "Moteur Dataflow" sélectionnée et les API activées

Vous pouvez également accéder à l'interface utilisateur Dataflow SQL à partir de l'interface de surveillance Dataflow.

  1. Accédez à l'interface de surveillance Dataflow.

    Accéder à l'interface de surveillance Dataflow

  2. 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.

  1. Accédez à l'interface utilisateur Dataflow SQL.

    Accéder à l'interface utilisateur Dataflow SQL

  2. Saisissez la requête Dataflow SQL dans l'éditeur de requête.

  3. Cliquez sur Créer une tâche Cloud Dataflow pour ouvrir un panneau d'options de tâche.

  4. (Facultatif) Cliquez sur Afficher les paramètres facultatifs, puis définissez les options de pipeline Dataflow.

  5. Dans la section Destination du panneau, sélectionnez un Type de sortie.

  6. 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 n1. Les types de machines à cœur partagé, tels que les nœuds de calcul des séries f1 et g1, ne sont pas disponibles avec le contrat de niveau de service de Dataflow.

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 Private, les nœuds de calcul Dataflow utilisent des adresses IP privées pour toutes les communications. L'accès privé à Google doit être activé sur le paramètre Network ou Subnetwork spécifié.

Si la valeur est définie sur Private et que l'option Subnetwork est spécifiée, l'option Network est ignorée.

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 ‑‑worker‑region ou ‑‑worker‑zone.

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 ‑‑worker‑region ou ‑‑worker‑zone.

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 n1. Les types de machines à cœur partagé, tels que les nœuds de calcul des séries f1 et g1, ne sont pas disponibles avec le contrat de niveau de service de Dataflow.

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 true, les nœuds de calcul Dataflow utilisent des adresses IP privées pour toutes les communications.

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