GSP290

Présentation
Dans Google Cloud, vous pouvez créer des pipelines de données qui exécutent du code Python pour ingérer des données d'ensembles de données publics dans BigQuery et les transformer à l'aide des services Google Cloud suivants :
- Cloud Storage
- Dataflow
- BigQuery
Dans cet atelier, vous allez utiliser ces services pour créer votre propre pipeline de données, en arrêtant des choix en termes de conception et d'implémentation pour garantir la conformité de votre prototype aux exigences. Pensez à ouvrir les fichiers Python et à bien lire les commentaires lorsque vous y êtes invité.
Objectifs de l'atelier
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Créer et exécuter des pipelines Dataflow (Python) pour l'ingestion de données
- Créer et exécuter des pipelines Dataflow (Python) pour la transformation et l'enrichissement de données
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de 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.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
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. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
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.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Vérifier que l'API Dataflow est activée
Pour vous assurer que vous avez bien accès à l'API requise, redémarrez la connexion à l'API Dataflow.
Important : Même si l'API est déjà activée, suivez les étapes 1 à 4 ci-dessous pour la désactiver puis la réactiver, afin de la redémarrer correctement.
-
Dans la console Cloud, en haut, saisissez "API Dataflow" dans la barre de recherche. Cliquez sur API Dataflow dans les résultats.
-
Cliquez sur Gérer.
-
Cliquez sur Désactiver l'API.
Si vous êtes invité à confirmer votre choix, cliquez sur Désactiver.
- Cliquez sur Activer.
Une fois l'API réactivée, l'option permettant de la désactiver s'affiche sur la page.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée.
Désactiver et réactiver l'API Dataflow
Tâche 2 : Télécharger le code de démarrage
- Exécutez la commande suivante dans Cloud Shell pour obtenir des exemples Dataflow en Python à partir du dépôt GitHub des services professionnels de Google Cloud :
gsutil -m cp -R gs://spls/gsp290/dataflow-python-examples .
- Dans Cloud Shell, définissez une variable sur l'ID de votre projet :
export PROJECT={{{ project_0.project_id }}}
gcloud config set project $PROJECT
Tâche 3 : Créer un bucket Cloud Storage
- Exécutez la commande "make bucket" dans Cloud Shell pour créer un bucket régional dans la région au sein de votre projet :
gsutil mb -c regional -l {{{ project_0.default_region }}} gs://$PROJECT
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée.
Créer un bucket Cloud Storage
Tâche 4 : Copier des fichiers dans votre bucket
- Exécutez la commande
gsutil
dans Cloud Shell pour copier des fichiers dans le bucket Cloud Storage que vous venez de créer :
gsutil cp gs://spls/gsp290/data_files/usa_names.csv gs://$PROJECT/data_files/
gsutil cp gs://spls/gsp290/data_files/head_usa_names.csv gs://$PROJECT/data_files/
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée.
Copier des fichiers dans votre bucket
Tâche 5 : Créer un ensemble de données BigQuery
- Dans Cloud Shell, créez un ensemble de données BigQuery nommé
lake
. C'est par le biais de cet ensemble de données que toutes vos tables seront chargées dans BigQuery :
bq mk lake
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée.
Créer l'ensemble de données BigQuery (nom : lake)
Tâche 6 : Créer un pipeline Dataflow
Dans cette section, vous allez créer un pipeline Dataflow de type "append-only" (ajout uniquement) qui permettra d'ingérer des données dans la table BigQuery. Vous pouvez utiliser l'éditeur de code intégré pour afficher et modifier le code dans la console Google Cloud.

Ouvrir l'éditeur de code Cloud Shell
- Pour accéder au code source, cliquez sur l'icône Ouvrir l'éditeur dans Cloud Shell :

- Si vous y êtes invité, cliquez sur Ouvrir dans une nouvelle fenêtre. L'éditeur de code s'ouvrira en ce cas dans une nouvelle fenêtre. L'éditeur Cloud Shell vous permet de modifier des fichiers dans l'environnement Cloud Shell. Lorsque vous vous trouvez dans l'éditeur, vous pouvez revenir à Cloud Shell en cliquant sur Ouvrir le terminal.
Tâche 7 : Ingestion de données avec un pipeline Dataflow
Vous allez maintenant créer un pipeline Dataflow avec une source TextIO et une destination BigQueryIO pour ingérer des données dans BigQuery. Les opérations à réaliser sont les suivantes :
- Ingérer les fichiers à partir de Cloud Storage
- Filtrer la ligne d'en-tête dans les fichiers
- Convertir les lignes lues en objets de dictionnaire
- Envoyer les lignes dans BigQuery
Tâche 8 : Examiner le code Python du pipeline
Dans l'éditeur de code, accédez à dataflow-python-examples
> dataflow_python_examples
, puis ouvrez le fichier data_ingestion.py
. Lisez les commentaires expliquant les actions effectuées par le code. Ce code ajoute une table à l'ensemble de données lake dans BigQuery.

Tâche 9 : Exécuter le pipeline Apache Beam
- Pour effectuer cette étape, revenez dans votre session Cloud Shell. Vous allez procéder à quelques opérations de configuration pour les bibliothèques Python requises.
Le job Dataflow de cet atelier nécessite Python 3.8
. Pour vous assurer d'utiliser la bonne version, vous allez exécuter les processus Dataflow dans un conteneur Docker Python 3.8.
- Exécutez la commande suivante dans Cloud Shell pour démarrer un conteneur Python :
docker run -it -e PROJECT=$PROJECT -v $(pwd)/dataflow-python-examples:/dataflow python:3.8 /bin/bash
Cette commande extrait un conteneur Docker avec la dernière version stable de Python 3.8, puis lance un shell de commande vous permettant d'exécuter les prochaines commandes dans votre conteneur. L'option -v
fournit le code source en tant que volume
pour le conteneur. Ainsi, nous pouvons le modifier dans l'éditeur Cloud Shell tout en gardant la possibilité d'y accéder dans le conteneur en cours d'exécution.
- Dès que l'extraction du conteneur est terminée et que celui-ci est lancé dans Cloud Shell, exécutez la commande suivante pour installer
apache-beam
dans ce conteneur en cours d'exécution :
pip install apache-beam[gcp]==2.59.0
- Ensuite, dans le conteneur en cours d'exécution dans Cloud Shell, accédez au répertoire auquel vous avez associé le code source :
cd dataflow/
Exécuter le pipeline Dataflow d'ingestion dans le cloud
- Le code suivant lancera les nœuds de calcul requis et les fermera à la fin du processus :
python dataflow_python_examples/data_ingestion.py \
--project=$PROJECT --region={{{ project_0.default_region }}} \
--runner=DataflowRunner \
--machine_type=e2-standard-2 \
--staging_location=gs://$PROJECT/test \
--temp_location gs://$PROJECT/test \
--input gs://$PROJECT/data_files/head_usa_names.csv \
--save_main_session
- Revenez à la console Cloud et accédez au menu de navigation > Dataflow pour afficher l'état de votre job.

-
Cliquez sur le nom de votre job pour voir sa progression. Lorsque l'état du job indique Réussite, vous pouvez passer à l'étape suivante. Le démarrage, l'exécution et l'arrêt de ce pipeline Dataflow prennent au total environ cinq minutes.
-
Accédez à BigQuery (Menu de navigation > BigQuery) pour vérifier que vos données ont bien été intégrées.

- Cliquez sur le nom du projet pour afficher la table usa_names sous l'ensemble de données
lake
.

- Cliquez sur la table, puis accédez à l'onglet Aperçu pour afficher des exemples de données de
usa_names
.
Remarque : Si la table usa_names
n'apparaît pas, actualisez la page ou essayez d'afficher les tables dans l'UI classique de BigQuery.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée.
Créer un pipeline Dataflow d'ingestion de données
Tâche 10 : Transformation des données
Vous allez maintenant créer un pipeline Dataflow avec une source TextIO et une destination BigQueryIO pour ingérer des données dans BigQuery. Les opérations à réaliser sont les suivantes :
- Ingérer les fichiers à partir de Cloud Storage
- Convertir les lignes lues en objets de dictionnaire
- Transformer les données qui contiennent l'année dans un format que BigQuery reconnaît comme une date
- Envoyer les lignes dans BigQuery
Examiner le code Python du pipeline de transformation
Dans l'éditeur de code, ouvrez le fichier data_transformation.py
. Lisez les commentaires expliquant les actions effectuées par le code.
Tâche 11 : Exécuter le pipeline de transformation Dataflow
Vous allez exécuter le pipeline Dataflow dans le cloud. Ce code lancera les nœuds de calcul requis et les fermera à la fin du processus.
- Pour ce faire, exécutez les commandes suivantes :
python dataflow_python_examples/data_transformation.py \
--project=$PROJECT \
--region={{{ project_0.default_region }}} \
--runner=DataflowRunner \
--machine_type=e2-standard-2 \
--staging_location=gs://$PROJECT/test \
--temp_location gs://$PROJECT/test \
--input gs://$PROJECT/data_files/head_usa_names.csv \
--save_main_session
-
Accédez au menu de navigation > Dataflow, puis cliquez sur le nom du job pour afficher son état. Le démarrage, l'exécution et l'arrêt de ce pipeline Dataflow prennent au total environ cinq minutes.
-
Lorsque l'état du job indique Réussite dans l'écran Dataflow, accédez à BigQuery pour vérifier que vos données ont bien été intégrées.
-
Vous devez voir la table usa_names_transformed sous l'ensemble de données lake
.
-
Cliquez sur la table, puis accédez à l'onglet Aperçu pour afficher des exemples de données de usa_names_transformed
.
Remarque : Si la table usa_names_transformed
n'apparaît pas, actualisez la page ou essayez d'afficher les tables dans l'UI classique de BigQuery.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée.
Créer un pipeline Dataflow de transformation de données
Tâche 12 : Enrichissement des données
Vous allez maintenant créer un pipeline Dataflow avec une source TextIO et une destination BigQueryIO pour ingérer des données dans BigQuery. Les opérations à réaliser sont les suivantes :
- Ingérer les fichiers à partir de Cloud Storage
- Filtrer la ligne d'en-tête dans les fichiers
- Convertir les lignes lues en objets de dictionnaire
- Envoyer les lignes dans BigQuery
Tâche 13 : Examiner le code Python du pipeline d'enrichissement des données
-
Dans l'éditeur de code, ouvrez le fichier data_enrichment.py
.
-
Lisez les commentaires expliquant les actions effectuées par le code. Ce code envoie les données vers BigQuery.
La ligne 83 se présente actuellement comme suit :
values = [x.decode('utf8') for x in csv_row]
- Modifiez-la de sorte qu'elle ressemble à ceci :
values = [x for x in csv_row]
- Lorsque vous avez terminé de modifier cette ligne, n'oubliez pas d'enregistrer le fichier mis à jour. Pour ce faire, cliquez sur le menu déroulant Fichier de l'éditeur, puis sur Enregistrer.
Tâche 14 : Exécuter le pipeline Dataflow d'enrichissement de données
Vous allez maintenant exécuter le pipeline Dataflow dans le cloud.
- Exécutez le code suivant dans Cloud Shell pour lancer les nœuds de calcul requis et les arrêter à la fin du processus :
python dataflow_python_examples/data_enrichment.py \
--project=$PROJECT \
--region={{{ project_0.default_region }}} \
--runner=DataflowRunner \
--machine_type=e2-standard-2 \
--staging_location=gs://$PROJECT/test \
--temp_location gs://$PROJECT/test \
--input gs://$PROJECT/data_files/head_usa_names.csv \
--save_main_session
-
Accédez au menu de navigation > Dataflow pour afficher l'état de votre job. Le démarrage, l'exécution et l'arrêt de ce pipeline Dataflow prennent au total environ cinq minutes.
-
Lorsque l'état du job indique Réussite dans l'écran Dataflow, accédez à BigQuery pour vérifier que vos données ont bien été intégrées.
Vous devez voir la table usa_names_enriched sous l'ensemble de données lake
.
- Cliquez sur la table, puis accédez à l'onglet Aperçu pour afficher des exemples de données de
usa_names_enriched
.
Remarque : Si la table usa_names_enriched
n'apparaît pas, actualisez la page ou essayez d'afficher les tables dans l'UI classique de BigQuery.
Tester la tâche d'enrichissement de données terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée.
Créer un pipeline Dataflow d'enrichissement des données
Tâche 15 : Créer un pipeline entre le lac de données et un magasin et examiner le code Python du pipeline
Créez maintenant un pipeline Dataflow qui lit les données de deux sources de données BigQuery et les associe. Les opérations à réaliser sont les suivantes :
- Ingérer les fichiers de deux sources BigQuery
- Associer les deux sources de données
- Filtrer la ligne d'en-tête dans les fichiers
- Convertir les lignes lues en objets de dictionnaire
- Envoyer les lignes dans BigQuery
Dans l'éditeur de code, ouvrez le fichier data_lake_to_mart.py
. Lisez les commentaires expliquant les actions effectuées par le code. Ce code associe deux tables et insère les données obtenues dans BigQuery.
Tâche 16 : Exécuter le pipeline Apache Beam pour associer les données et créer la table qui en résulte dans BigQuery
Exécutez maintenant le pipeline Dataflow dans le cloud.
- Exécutez le bloc de code suivant dans Cloud Shell pour lancer les nœuds de calcul requis et les arrêter à la fin du processus :
python dataflow_python_examples/data_lake_to_mart.py \
--worker_disk_type="compute.googleapis.com/projects//zones//diskTypes/pd-ssd" \
--max_num_workers=4 \
--project=$PROJECT \
--runner=DataflowRunner \
--machine_type=e2-standard-2 \
--staging_location=gs://$PROJECT/test \
--temp_location gs://$PROJECT/test \
--save_main_session \
--region={{{ project_0.default_region }}}
-
Accédez au menu de navigation > Dataflow, puis cliquez sur le nom de ce nouveau job pour afficher son état. Le démarrage, l'exécution et l'arrêt de ce pipeline Dataflow prennent au total environ cinq minutes.
-
Lorsque l'état du job indique Réussite dans l'écran Dataflow, accédez à BigQuery pour vérifier que vos données ont bien été intégrées.
Vous devez voir la table orders_denormalized_sideinput sous l'ensemble de données lake
.
- Cliquez sur la table, puis accédez à l'onglet Aperçu pour afficher des exemples de données de
orders_denormalized_sideinput
.
Remarque : Si la table orders_denormalized_sideinput
n'apparaît pas, actualisez la page ou essayez d'afficher les tables dans l'UI classique de BigQuery.
Tester la tâche JOIN terminée
Cliquez sur Vérifier ma progression pour valider la tâche exécutée.
Créer un pipeline Dataflow entre un lac de données et un magasin
Tester vos connaissances
Voici quelques questions à choix multiples qui vous permettront de mieux maîtriser les concepts abordés lors de cet atelier. Répondez-y du mieux que vous le pouvez.
Félicitations !
Vous avez exécuté du code Python à l'aide de Dataflow pour ingérer des données dans BigQuery et les transformer.
Étapes suivantes et informations supplémentaires
Vous souhaitez en savoir plus ? Consultez la documentation officielle sur :
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 11 février 2024
Dernier test de l'atelier : 12 octobre 2023
Copyright 2025 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.