1. Introduction
Google Cloud Dataflow
Dernière mise à jour:26 mai 2020
Qu'est-ce que Dataflow ?
Dataflow est un service géré permettant d'exécuter une grande variété de modèles de traitement des données. La documentation disponible sur ce site explique comment déployer vos pipelines de traitement de données par lot et par flux à l'aide de Dataflow, y compris des instructions sur l'utilisation des fonctionnalités du service.
Le SDK Apache Beam est un modèle de programmation Open Source qui vous permet de développer des pipelines de traitement par lot et par flux. Vous créez vos pipelines avec un programme Apache Beam, puis vous les exécutez sur le service Dataflow. La documentation Apache Beam fournit des informations conceptuelles détaillées et des supports de référence pour le modèle de programmation Apache Beam, les SDK et les autres exécuteurs.
Analyse rapide des flux de données
Dataflow accélère et simplifie le développement de pipelines de flux de données tout en réduisant la latence des données.
Opérations et gestion simplifiées
Permettez aux équipes de se concentrer sur la programmation plutôt que sur la gestion des clusters de serveurs, car l'approche sans serveur de Dataflow élimine les coûts opérationnels liés aux charges de travail d'ingénierie des données.
Réduire le coût total de possession
En associant l'autoscaling des ressources à un traitement par lot économique, Dataflow offre des capacités presque illimitées pour gérer vos charges de travail saisonnières et les pics d'activité, sans dépasser le budget.
Principales caractéristiques
Gestion automatisée des ressources et rééquilibrage dynamique des tâches
Dataflow automatise le provisionnement et la gestion des ressources de traitement afin de réduire la latence et d'optimiser l'utilisation. Ainsi, vous n'avez pas besoin de lancer ni de réserver des instances manuellement. Le partitionnement des tâches est également automatisé et optimisé pour permettre un rééquilibrage dynamique des tâches ralenties. Inutile d'utiliser les raccourcis clavier ou prétraiter vos données d'entrée.
Autoscaling horizontal
L'autoscaling horizontal des ressources de nœuds de calcul pour un débit optimal se traduit par un meilleur rapport performances-prix.
Tarification du traitement par lot dans le cadre de la planification flexible des ressources
La planification flexible des ressources (FlexRS) réduit le coût du traitement par lot afin de garantir une certaine souplesse dans le traitement des tâches (celles exécutées la nuit, par exemple) pendant la période planifiée. Ces jobs flexibles sont placés dans une file d'attente avec la garantie qu'ils seront récupérés pour être exécutés dans un délai de six heures.
Objectifs de l'atelier
Dans cet atelier de programmation, vous allez commencer à utiliser Dataflow SQL en envoyant une instruction SQL via l'interface utilisateur Dataflow SQL. Vous explorerez ensuite le pipeline en cours d'exécution à l'aide de l'interface utilisateur de surveillance de Dataflow.
Points abordés
- Envoyer une instruction SQL en tant que job Dataflow dans l'interface utilisateur Dataflow SQL
- Accéder au pipeline Dataflow
- Explorer le graphe Dataflow créé par l'instruction SQL
- Explorer les informations de surveillance fournies par le graphique
Prérequis
- Un projet Google Cloud Platform pour lequel la facturation est activée.
- Google Cloud Dataflow et Google Cloud PubSub activés.
2. Configuration
Assurez-vous que les API Dataflow et Cloud Pub/Sub sont activées. Vous pouvez le vérifier en consultant les & Page "Services".
3. Accéder à l'interface utilisateur Dataflow SQL
L'interface utilisateur Dataflow SQL est un paramètre d'interface utilisateur Web de BigQuery permettant de créer des jobs 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.
- Cliquez sur More (Plus) et choisissez Query Settings (Paramètres de requête) dans le menu déroulant.
- Dans le menu Paramètres de requête, sélectionnez Moteur Dataflow.
- Dans l'invite qui s'affiche si les API Dataflow et Data Catalog ne sont pas activées, cliquez sur Activer les API.
- Cliquez sur Enregistrer.
Vous pouvez également accéder à l'interface utilisateur de Dataflow SQL à partir de l'interface de surveillance de Dataflow.
- Accédez à l'interface de surveillance Dataflow.
- Cliquez sur Créer une tâche à partir de SQL.
4. Exécuter une tâche Dataflow avec une requête SQL
Écrire des requêtes Dataflow SQL
Les requêtes Dataflow SQL utilisent la syntaxe des requêtes Dataflow SQL. La syntaxe des requêtes Dataflow SQL est semblable à la syntaxe SQL standard de BigQuery. Vous pouvez utiliser les extensions de flux Dataflow SQL pour agréger les données provenant de sources Dataflow qui sont mises à jour en continu, comme Pub/Sub. Par exemple, la requête suivante compte le nombre de passagers par minute dans un flux Pub/Sub de courses de 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 la transforme en 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.
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 ci-dessus dans l'éditeur de requête.
- Cliquez sur "Créer un job Cloud Dataflow" pour ouvrir un panneau d'options de tâches.
- (Facultatif) Cliquez sur "Afficher les paramètres facultatifs" et parcourez la liste.
- Dans la section "Destination" du panneau, sélectionnez "BigQuery" comme type de sortie.
- Sélectionnez un ID d'ensemble de données et créez une table "passengers_per_min"
- Cliquez sur Créer.
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 Dataflow SQL.
5. Explorer le job dans l'interface utilisateur de surveillance Dataflow
Lorsque vous exécutez votre pipeline à l'aide du service géré Dataflow, vous pouvez afficher cette tâche et toute autre tâche à l'aide de l'interface utilisateur Web de surveillance de Dataflow. Elle vous permet de voir vos tâches Dataflow et d'interagir avec elles.
Vous pouvez accéder à l'interface de surveillance Dataflow à l'aide de la console Google Cloud. L'interface de surveillance peut vous montrer :
- une liste de toutes les tâches Dataflow en cours d'exécution et des tâches précédemment exécutées au cours des 30 derniers jours ;
- une représentation graphique de chaque pipeline ;
- les détails de l'état, de l'exécution et de la version du SDK de votre tâche ;
- Liens vers des informations sur les services Google Cloud exécutant votre pipeline, tels que Compute Engine et Cloud Storage
- toute erreur ou avertissement survenus au cours d'une tâche.
Vous pouvez afficher les graphiques de surveillance des jobs dans l'interface de surveillance Dataflow. Ces graphiques affichent les métriques sur la durée d'un job de pipeline et incluent les informations suivantes:
- Visibilité au niveau des étapes pour identifier celles susceptibles de causer un retard de pipeline
- Informations statistiques pouvant révéler un comportement anormal
- Métriques d'E/S pouvant vous aider à identifier les goulots d'étranglement dans vos sources et vos récepteurs
Accéder à l'interface de surveillance Dataflow
Pour accéder à l'interface de surveillance Dataflow, procédez comme suit :
- Accédez à la console Cloud:
- Sélectionnez votre projet Google Cloud.
- Cliquez sur le menu en haut à gauche.
- Accédez à la section "Big Data", puis cliquez sur "Dataflow".
Une liste des tâches Dataflow ainsi que leur état respectif apparaissent.
Liste des tâches Dataflow dans la console Cloud, avec des tâches associées aux états "Running" (En cours d'exécution), "Failed" (Échec) et "Succeeded" (Réussie).
Une tâche peut présenter les états suivants :
- —: l'interface utilisateur de surveillance n'a pas encore reçu d'information d'état de la part du service Dataflow.
- Running (En cours d'exécution) : la tâche est en cours d'exécution.
- Not started (Non démarrée) : la tâche est créée, mais le système a besoin d'un certain temps pour se préparer avant de la lancer.
- Queued (En file d'attente) : une tâche FlexRS est en file d'attente.
- Cancelling (Annulation...) : la tâche est en cours d'annulation.
- Cancelled (Annulée) : la tâche a été annulée par l'utilisateur.
- Draining (Drainage) : la tâche est en cours de drainage.
- Drained (drainée) : l'utilisateur a drainé la tâche.
- Mise à jour...: la tâche est en cours de mise à jour.
- Updated (Mise à jour) : l'utilisateur a mis à jour la tâche.
- Succeeded (Réussie) : la tâche s'est correctement terminée.
- Failed (échec) : la tâche n'a pas abouti.
Recherchez la tâche avec "dfsql". dans l'intitulé du poste, puis cliquez sur son nom.
Page "Détails de la tâche", qui contient les éléments suivants:
- Graphique du job: représentation visuelle de votre pipeline
- Métriques de job: métriques sur l'exécution de votre job
- Panneau d'informations sur le job: informations descriptives sur votre pipeline
- Journaux de job: journaux générés par le service Dataflow au niveau du job
- Journaux de nœud de calcul: journaux générés par le service Dataflow au niveau du nœud de calcul
- Rapports d'erreurs liés aux jobs: graphiques indiquant où les erreurs se sont produites sur la période choisie et le nombre de toutes les erreurs consignées
- Sélecteur de temps: outil permettant d'ajuster la période de vos métriques
Sur la page "Job details" (Informations sur le job), vous pouvez modifier la vue du job à l'aide du graphique et de l'onglet "Job Metrics" (Métriques du job).
- Cliquez sur l'onglet MÉTRIQUES DU JOB et explorez les graphiques.
6. Arrêter votre job Dataflow SQL
Pour arrêter des tâches Dataflow SQL, utilisez la commande Cancel (Annuler). L'arrêt d'une tâche Dataflow SQL avec Drain n'est pas pris en charge.