Utiliser des sources et des destinations de données

Cloud Dataflow SQL autorise la lecture de données depuis des sujets Cloud Pub/Sub et des tables BigQuery, et l'écriture de données dans des tables BigQuery.

Pour utiliser Cloud Dataflow SQL et ajouter des sources Cloud Dataflow, vous devez basculer vers l'interface utilisateur Cloud Dataflow SQL.

Pub/Sub

Lire à partir d'un sujet Pub/Sub

L’interface utilisateur Cloud Dataflow SQL permet de rechercher des objets sources de données Cloud Pub/Sub dans n'importe quel projet auquel vous avez accès. Vous n'avez pas besoin de mémoriser les noms complets des sujets.

Pour ajouter un sujet en tant que source Cloud Dataflow, ce sujet doit comporter un schéma. Pour voir un exemple détaillant l'attribution d'un schéma, consultez la section Affecter un schéma à votre sujet Cloud Pub/Sub.

Ajouter un sujet Pub/Sub en tant que source Cloud Dataflow

Pour ajouter vos sujets Cloud Pub/Sub à la section Ressources du panneau de navigation de gauche, vous devez ajouter les sujets en tant que sources Cloud Dataflow.

  1. Dans le panneau de navigation de gauche, cliquez sur Add Data (Ajouter des données) dans la liste déroulante, puis sélectionnez Cloud Dataflow sources (Sources Cloud Dataflow).

    Sous Ajouter des données, sélectionnez les sources Dataflow

  2. Dans le panneau Add Cloud Dataflow source (Ajouter une source Cloud Dataflow) qui s'ouvre à droite, sélectionnez Cloud Pub/Sub topics (Sujets Cloud Pub/Sub). Dans le champ de recherche, saisissez l'intitulé d'un sujet. Sélectionnez le sujet puis cliquez sur Ajouter.

    La capture d'écran suivante montre un exemple de recherche effectuée sur le sujet transactions :

    Rechercher le sujet Pub/Sub intitulé transactions

  3. La section Ressources du panneau de navigation de gauche affiche les sujets Cloud Pub/Sub que vous avez ajoutés. Pour afficher la liste des sujets, développez la section Sources Cloud Dataflow puis la section Sujets Cloud Pub/Sub.

Afficher le schéma d'un sujet

Pour afficher le schéma d'un sujet donné, développez la section Cloud Dataflow sources (Sources Cloud Dataflow) dans la section Resources (Ressources du panneau de navigation de gauche. Développez ensuite la section Cloud Pub/Sub topics (Sujets Cloud Pub/Sub). Cliquer sur un sujet affiche les informations relatives à cette ressource dans le volet des détails, en particulier son Schema (Schéma). Le schéma contient les champs suivants :

  • event_timestamp : le champ suivi par le filigrane.
  • attributes : les attributs du message Cloud Pub/Sub.
  • payload : le contenu du message Cloud Pub/Sub. Les messages Cloud Pub/Sub doivent se présenter au format JSON comme décrit dans la page de référence de la bibliothèque de diffusion JSON. Par exemple, vous pouvez insérer des messages au format {"k1":"v1", "k2":"v2"} dans une ligne BigQuery imbriquée payload comportant deux champs de données de type chaîne, nommés k1 et k2. Vous devez sérialiser tous les champs figurant dans le schéma, quelle que soit leur valeur (nulle ou non nulle). Ainsi, pour des champs NULLABLE, vous devez sérialiser le champ dans le code JSON avec une valeur NULL. Si votre JSON ne contient pas ce champ, Cloud Dataflow SQL renvoie alors une erreur.

La capture d'écran suivante illustre le schéma du sujet transactions.

Afficher le schéma du sujet transactions

Utiliser un sujet dans une requête

Vous pouvez spécifier un sujet Cloud Pub/Sub à l'aide d'une liste complète d'identifiants séparés par des points, suivant la structure lexicale SQL standard.

  pubsub.topic.project-id.topic-name

Vous devez utiliser des accents graves pour délimiter des identifiants contenant des caractères autres que des lettres, des chiffres ou des traits de soulignement.

Par exemple, la chaîne suivante spécifie le sujet Pub/Sub daily.transactions du projet dataflow-sql.

  pubsub.topic.`dataflow-sql`.`daily.transactions`

Vous pouvez également spécifier le sujet dans l'éditeur de requête en le sélectionnant dans la section Ressources du panneau de navigation de gauche. Développez la section Sources Cloud Dataflow puis la section Sujets Cloud Pub/Sub. Une fois que vous avez cliqué sur un sujet dans le panneau de navigation, vous pouvez cliquer sur le bouton Interroger le sujet dans la partie droite du volet des détails. Une requête de base correspondant à ce sujet est alors automatiquement insérée dans la zone de requête.

La capture d'écran suivante illustre la requête insérée automatiquement dans la zone de requête :

Le bouton Interroger le sujet insère les informations dans la zone de requête

Utilisez le schéma du sujet pour rédiger votre propre requête SQL. Lorsque vous saisissez une requête dans l'interface utilisateur de Cloud Dataflow SQL, l'outil de validation des requêtes valide la syntaxe de la requête. Une icône de coche verte s'affiche si la requête est valide. Dans le cas contraire, un point d'exclamation rouge apparaît. Si la syntaxe de votre requête n'est pas valide, un clic sur l'icône de l'outil de validation vous renseigne sur les éléments à corriger.

La requête d'enrichissement des données suivante ajoute un champ sales_region à un flux d'événements Cloud Pub/Sub (transactions). Les régions d'activité commerciale (sales_region) proviennent d'une table BigQuery (us_state_salesregions) qui met en correspondance les états avec les régions.

Saisissez votre requête dans l'éditeur

BigQuery

Lire à partir d'une table BigQuery

Ajouter une table BigQuery en tant que source Cloud Dataflow

Vous n'avez pas besoin d'ajouter votre table BigQuery en tant que source Cloud Dataflow pour pouvoir ajouter des ensembles et tables de données dans la section Ressources du panneau de navigation de gauche. Vous pouvez développer les projets épinglés dans la section Ressources pour afficher les ensembles de données et les tables BigQuery associés. Si votre table BigQuery se trouve dans un projet non répertorié dans la section Ressources, vous pouvez épingler le projet pour l'ajouter à la liste.

Afficher le schéma d'une table

Pour afficher le schéma d'une table donnée, localisez le projet dans la section Ressources du panneau de navigation de gauche. Cliquez sur l'icône icône Développer l'ensemble de données à côté de votre projet pour afficher les ensembles de données qu'il contient. Cliquez sur l'icône Développer l'ensemble de données à côté d'un ensemble de données pour le développer et afficher les tables qu'il contient. Vous pouvez également utiliser le champ de recherche pour localiser un ensemble de données ou une table spécifique.

Cliquer sur une table permet d'afficher les informations relatives à cette ressource dans le volet des détails, en particulier son Schéma.

Utiliser une table dans une requête

Vous pouvez spécifier une table BigQuery à l'aide d'une liste complète d'identifiants séparés par des points, suivant la structure lexicale SQL standard.

  bigquery.table.project-id.my_dataset.my_table

Vous devez utiliser des accents graves pour délimiter des identifiants contenant des caractères autres que des lettres, des chiffres ou des traits de soulignement.

Par exemple, la chaîne suivante spécifie l'ensemble de données BigQuery dataflow_sql_dataset et la table us_state_salesregions du projet dataflow-sql.

  bigquery.table.`dataflow-sql`.dataflow_sql_dataset.us_state_salesregions

Vous pouvez également spécifier la chaîne correspondante dans l'éditeur de requête en sélectionnant la table dans la section Ressources du panneau de navigation de gauche. Localisez votre projet dans la section Ressources, développez-le, puis développez l'ensemble de données contenant la table que vous souhaitez utiliser. Une fois que vous avez cliqué sur une table dans le panneau de navigation, vous pouvez cliquer sur le bouton Exécuter une requête sur la table dans la partie droite du volet des détails. Une requête de base correspondant à cette table est alors automatiquement insérée dans la zone de requête.

La capture d'écran suivante illustre la requête insérée automatiquement dans la zone de requête :

Le bouton Envoyer une requête au tableau insère les informations dans la zone de requête

Utilisez le schéma de la table pour rédiger votre propre requête SQL. Lorsque vous saisissez une requête dans l'interface utilisateur de Cloud Dataflow SQL, l'outil de validation des requêtes valide la syntaxe de la requête. Une icône de coche verte s'affiche si la requête est valide. Dans le cas contraire, un point d'exclamation rouge apparaît. Si la syntaxe de votre requête n'est pas valide, un clic sur l'icône de l'outil de validation vous renseigne sur les éléments à corriger.

La requête d'enrichissement des données suivante utilise une table BigQuery (us_state_salesregions) qui met en correspondance états et régions pour insérer un champ supplémentaire (sales_region) dans un flux d'événements Cloud Pub/Sub.

Saisissez votre requête dans l'éditeur

Écrire dans une table BigQuery

Lorsque vous créez une tâche Cloud Dataflow pour exécuter votre requête BigQuery, vous devez choisir la table BigQuery vers laquelle envoyer les résultats. Tenez compte des prérequis et considérations suivants :

  • L'ensemble de données de destination doit exister avant de cliquer sur Créer une tâche Cloud Dataflow.
  • Si la table de destination n'existe pas, la tâche crée une nouvelle table portant le nom spécifié.
  • Si la table de destination existe, elle doit être vide.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.