arrow_back

Analyse de données sans serveur avec Dataflow : Un pipeline Dataflow simple (Java)

Accédez à plus de 700 ateliers et cours

Analyse de données sans serveur avec Dataflow : Un pipeline Dataflow simple (Java)

Atelier 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Avancé
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Accédez à plus de 700 ateliers et cours

Présentation

Dans cet atelier, vous allez ouvrir un projet Dataflow, filtrer le pipeline et l'exécuter en local et dans le cloud.

Objectifs

Dans cet atelier, vous allez apprendre à créer un pipeline Dataflow simple et à l'exécuter en local et dans le cloud.

  • Configurer un projet Dataflow en Java à l'aide de Maven
  • Créer un pipeline simple en Java
  • Exécuter la requête sur la machine locale
  • Exécuter la requête dans le cloud

Préparation

Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.

  1. Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.

  2. Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
    Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.

  3. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

  4. Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.

  5. Cliquez sur Ouvrir la console Google.

  6. Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
    Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.

  7. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.

Activer Google Cloud Shell

Google Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud.

Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.

  1. Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

    Icône Cloud Shell encadrée

  2. Cliquez sur Continuer.

Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

ID de projet mis en évidence dans le terminal Cloud Shell

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  • Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list

Résultat :

Credentialed accounts: - @.com (active)

Exemple de résultat :

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project =

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.

Lancer l'éditeur de code Google Cloud Shell

Utilisez l'éditeur de code Google Cloud Shell pour facilement créer et modifier les répertoires et fichiers de l'instance Cloud Shell.

  • Une fois que vous avez activé Google Cloud Shell, cliquez sur Ouvrir l'éditeur pour ouvrir l'éditeur de code Cloud Shell.

Bouton "Ouvrir l'éditeur"

Vous avez désormais trois interfaces à votre disposition :

  • L'éditeur de code Cloud Shell.
  • La console (en cliquant sur l'onglet). Vous pouvez passer de la console à Cloud Shell (et vice versa) en cliquant sur les onglets correspondants.
  • La ligne de commande Cloud Shell (en cliquant sur Ouvrir le terminal dans la console).

Trois interfaces (l'éditeur de code Cloud Shell, la console et la ligne de commande Cloud Shell) mises en évidence

Vérifier les autorisations du projet

Avant de commencer à travailler dans Google Cloud, vous devez vous assurer de disposer des autorisations adéquates pour votre projet dans IAM (Identity and Access Management).

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis sélectionnez IAM et administration > IAM.

  2. Vérifiez que le compte de service Compute par défaut {project-number}-compute@developer.gserviceaccount.com existe et qu'il est associé au rôle editor (éditeur). Le préfixe du compte correspond au numéro du projet, disponible sur cette page : Menu de navigation > Présentation du cloud > Tableau de bord.

État de l'éditeur et nom du compte de service Compute Engine par défaut mis en évidence sur l'onglet "Autorisations"

Remarque : Si le compte n'est pas disponible dans IAM ou n'est pas associé au rôle editor (éditeur), procédez comme suit pour lui attribuer le rôle approprié.
  1. Dans la console Google Cloud, accédez au menu de navigation et cliquez sur Présentation du cloud > Tableau de bord.
  2. Copiez le numéro du projet (par exemple, 729328892908).
  3. Dans le menu de navigation, sélectionnez IAM et administration > IAM.
  4. Sous Afficher par compte principal, en haut de la table des rôles, cliquez sur Accorder l'accès.
  5. Dans le champ Nouveaux comptes principaux, saisissez :
{project-number}-compute@developer.gserviceaccount.com
  1. Remplacez {project-number} par le numéro de votre projet.
  2. Dans le champ Rôle, sélectionnez Projet (ou Basique) > Éditeur.
  3. Cliquez sur Enregistrer.

Tâche 1 : Préparation

Vérifier le bucket et télécharger le code de l'atelier

Vous devez effectuer des étapes spécifiques pour bien réaliser cet atelier :

  1. Vérifiez que vous disposez d'un bucket Cloud Storage (un bucket a été créé automatiquement au démarrage de l'environnement de l'atelier).

  2. Dans la barre de titre de la console Google Cloud, cliquez sur Activer Cloud Shell. Cliquez sur Continuer si vous y êtes invité. Clonez le dépôt github du code de l'atelier à l'aide de la commande suivante :

git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Dans Cloud Shell, saisissez le code suivant pour créer deux variables d'environnement, l'une nommée "BUCKET" et l'autre "REGION". Vérifiez qu'elles existent à l'aide de la commande "echo" :
BUCKET="{{{project_0.project_id|Project ID}}}-bucket" echo $BUCKET REGION="{{{project_0.default_region|Region}}}" echo $REGION

Vérifier que l'API Dataflow est activée

  1. Dans Cloud Shell, exécutez les commandes suivantes pour vous assurer que l'API Dataflow est bien activée dans votre projet.
gcloud services disable dataflow.googleapis.com --force gcloud services enable dataflow.googleapis.com

Tâche 2 : Créer un projet Dataflow

L'objectif de cet atelier est de vous familiariser avec la structure d'un projet Dataflow et d'apprendre à exécuter un pipeline Dataflow. Vous allez utiliser le puissant outil de compilation Maven pour créer un projet Dataflow.

  1. Revenez à l'onglet de navigateur où se trouve Cloud Shell, puis accédez au répertoire de cet atelier :
cd ~/training-data-analyst/courses/data_analysis/lab2
  1. Copiez et collez la commande Maven suivante :
mvn archetype:generate \ -DarchetypeArtifactId=google-cloud-dataflow-java-archetypes-starter \ -DarchetypeGroupId=com.google.cloud.dataflow \ -DgroupId=com.example.pipelinesrus.newidea \ -DartifactId=newidea \ -Dversion="[1.0.0,2.0.0]" \ -DinteractiveMode=false
  • Quel répertoire a été créé ?
  • Quel package a été créé dans le répertoire "src" ?
  1. Examinez la commande Maven utilisée pour créer le code de l'atelier :
cat ~/training-data-analyst/courses/data_analysis/lab2/create_mvn.sh
  • Quel répertoire va être créé ?
  • Quel package va être créé dans le répertoire "src" ?

Tâche 3 : Filtrer le pipeline

  1. Dans l'éditeur de code Cloud Shell, accédez au répertoire /training-data-analyst/courses/data_analysis/lab2.

  2. Sélectionnez ensuite le chemin d'accès javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/, puis affichez le fichier Grep.java.

Vous pouvez également afficher le fichier avec l'éditeur nano. Ne modifiez pas le code.

cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/ nano Grep.java

Répondez aux questions ci-dessous à propos du fichier Grep.java.

  • Quels sont les fichiers en cours de lecture ?
  • Quel est le terme de recherche ?
  • Où est placé le résultat ?

Le pipeline contient trois instructions "apply" :

  • Que fait la première instruction "apply()" ?
  • Que fait la deuxième instruction "apply()" ?
  • D'où viennent ses données d'entrée ?
  • Que fait-elle avec ces données d'entrée ?
  • Qu'écrit-elle dans son résultat ?
  • Où est placé le résultat ?
  • Que fait la troisième instruction "apply()" ?

Tâche 4 : Exécuter le pipeline en local

  1. Dans Cloud Shell, collez la commande Maven suivante :
cd ~/training-data-analyst/courses/data_analysis/lab2 export PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin/:$PATH cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp mvn compile -e exec:java \ -Dexec.mainClass=com.google.cloud.training.dataanalyst.javahelp.Grep
  1. Le fichier de sortie est output.txt. Si le résultat est long, il sera divisé en plusieurs parties nommées par exemple output-00000-of-00001. Si nécessaire, vous pouvez retrouver le fichier concerné d'après son heure de modification :
ls -al /tmp
  1. Examinez le fichier de sortie :
cat /tmp/output*

Le résultat semble-t-il logique ?

Tâche 5 : Exécuter le pipeline dans le cloud

  1. Copiez des fichiers Java dans le cloud :
gcloud storage cp ../javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/*.java gs://$BUCKET/javahelp
  1. Dans l'éditeur de code Cloud Shell, accédez au répertoire /training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp.

  2. Modifiez le pipeline Dataflow dans le fichier Grep.java :

cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp
  1. Remplacez les variables d'entrée et de sortie par le nom de votre bucket comme suit :
String input = "gs://{{{project_0.project_id|Project ID}}}-bucket/javahelp/*.java"; String outputPrefix = "gs://{{{project_0.project_id|Project ID}}}-bucket/javahelp/output"; Remarque : Assurez-vous de modifier les chaînes input et outputPrefix déjà présentes dans le code source. Ne copiez-collez pas toute la ligne ci-dessus sans supprimer les chaînes initiales, sinon vous obtiendrez deux variables identiques.

Exemples de lignes avant la modification :

String input = "src/main/java/com/google/cloud/training/dataanalyst/javahelp/*.java"; String outputPrefix = "/tmp/output"; </ql-code-block output> Exemples de lignes après la modification contenant le nom du bucket de votre projet : String input = "gs://qwiklabs-gcp-your-value-bucket/javahelp/*.java"; </ql-code-block output> String outputPrefix = "gs://qwiklabs-gcp-your-value-bucket/javahelp/output"; </ql-code-block output> 5. Examinez le script permettant d'envoyer le job Dataflow dans le cloud : cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp cat run_oncloud1.sh

Quelle est la différence entre cette commande Maven et celle permettant d'exécuter le job en local ?

  1. Envoyez le job Dataflow dans le cloud :
bash run_oncloud1.sh $DEVSHELL_PROJECT_ID $BUCKET Grep $REGION

Ce job étant très petit, l'exécuter dans le cloud est bien plus long que l'exécuter en local (autour de deux à trois minutes).

Exemple de résultat de la ligne de commande :

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:50 min [INFO] Finished at: 2018-02-06T15:11:23-05:00 [INFO] Final Memory: 39M/206M [INFO] ------------------------------------------------------------------------
  1. Dans le navigateur, revenez à l'onglet de la console. Dans le menu de navigation (Icône du menu de navigation), cliquez sur Dataflow, puis sur votre job pour suivre son avancement.

Exemple :

Onglet &quot;Graphique de la tâche&quot; affichant la vue &quot;Graphique&quot;

  1. Attendez que l'état du job passe à Réussi. Cloud Shell affiche ensuite une invite de ligne de commande.

    Remarque : Si le job Dataflow échoue la première fois, réexécutez la commande précédente pour envoyer un nouveau job Dataflow dans le cloud.
  2. Examinez le résultat dans le bucket Cloud Storage. Dans le menu de navigation (Icône du menu de navigation), cliquez sur Cloud Storage > Buckets, puis sur votre bucket.

  3. Cliquez sur le répertoire javahelp. Cette tâche génère le fichier output.txt. Si le fichier est long, il sera divisé en plusieurs parties nommées par exemple output-0000x-of-000y. Vous pouvez identifier le fichier le plus récent d'après son nom ou son champ Dernière modification. Cliquez sur le fichier pour l'afficher.

Vous pouvez également télécharger le fichier dans Cloud Shell et l'afficher :

gcloud storage cp gs://$BUCKET/javahelp/output* . cat output*

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.