Points de contrôle
Create Cloud Composer environment.
/ 25
Create two Cloud Storage buckets.
/ 25
Create a dataset.
/ 25
Uploading the DAG and dependencies to Cloud Storage
/ 25
Cloud Composer : copier des tables BigQuery à différents emplacements
- GSP283
- Présentation
- Préparation
- Tâche 1 : Créer un environnement Cloud Composer
- Tâche 2 : Créer des buckets Cloud Storage
- Tâche 3 : Créer l'ensemble de données de destination BigQuery
- Tâche 4 : Présentation rapide d'Airflow et de ses concepts fondamentaux
- Tâche 5 : Définir le workflow
- Tâche 6 : Afficher les informations concernant l'environnement
- Tâche 7 : Créer une variable pour le bucket Cloud Storage des DAG
- Tâche 8 : Définir les variables Airflow
- Tâche 9 : Importer le DAG et les dépendances dans Cloud Storage
- Tâche 10 : Explorer l'interface utilisateur d'Airflow
- Tâche 11 : Valider les résultats
- Supprimer l'environnement Cloud Composer
- Félicitations !
- Étapes suivantes
GSP283
Présentation
Imaginez que vous avez des ensembles de données dans plusieurs emplacements à travers le monde et que vos données se trouvent dans des buckets Google Cloud Storage ou des tables BigQuery. Comment pouvez-vous organiser ces données afin de les consolider et de les analyser tout en dégageant des insights sur votre entreprise ?
Cloud Composer vous aide à créer des workflows et à transférer vos données entre des régions et des systèmes de stockage, avec une vue graphique intuitive. Il inclut entre autres des modèles permettant de transférer de façon facile et fiable des données de BigQuery vers Cloud Storage, et inversement.
Dans cet atelier, vous allez créer et exécuter dans Cloud Composer un workflow Apache Airflow qui effectue les tâches suivantes :
- Obtenir la liste des tables à copier depuis un fichier de configuration
- Exporter la liste des tables depuis un ensemble de données BigQuery situé aux États-Unis vers Cloud Storage
- Copier les tables ainsi exportées dans des buckets Cloud Storage situés dans l'Union européenne
- Importer la liste des tables dans l'ensemble de données BigQuery cible dans l'Union européenne
Objectifs de l'atelier
Dans cet atelier, vous allez apprendre à :
- Créer un environnement Cloud Composer
- créer des buckets Cloud Storage ;
- créer des ensembles de données BigQuery ;
- créer et exécuter dans Cloud Composer des workflows Apache Airflow pour transférer des données entre Cloud Storage et BigQuery.
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 vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour 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) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up 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 gratuits.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
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.
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 YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :
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 :
-
Cliquez sur Autoriser.
-
Vous devez à présent obtenir le résultat suivant :
Résultat :
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
Résultat :
Exemple de résultat :
gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Créer un environnement Cloud Composer
-
Dans la barre de titre de la console Google Cloud, saisissez Composer dans le champ de recherche, puis cliquez sur Composer dans la section "Produits et pages" pour créer un environnement Cloud Composer.
-
Cliquez ensuite sur Créer un environnement.
-
Dans le menu déroulant, sélectionnez Composer 3.
-
Définissez les paramètres suivants pour votre environnement :
-
Nom : composer-advanced-lab
-
Emplacement :
-
Version de l'image : composer-3-airflow-n.n.n-build.n (sélectionnez la dernière version disponible de l'image)
-
Sous Ressources de l'environnement, sélectionnez Petit.
-
Cliquez sur le menu déroulant Afficher les options de configuration avancées et sélectionnez
pour Zone de base de données Airflow.
Conservez les valeurs par défaut de tous les autres paramètres.
- Cliquez sur Créer.
Le processus de création de l'environnement est terminé lorsqu'une coche verte apparaît à gauche du nom de l'environnement sur la page "Environnements" de la console Cloud.
créer des buckets Cloud Storage et l'ensemble de données de destination BigQuery
.Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 2 : Créer des buckets Cloud Storage
Dans cette tâche, vous allez créer deux buckets Cloud Storage multirégionaux. Ces buckets serviront à copier les tables exportées entre les emplacements, à savoir des États-Unis vers l'Union européenne.
Créer un bucket aux États-Unis
- Accédez à Cloud Storage > Bucket, puis cliquez sur Créer.
- Attribuez au bucket un nom unique universel comprenant l'ID du projet (ex. :
-us). - Pour Type d'emplacement, sélectionnez US (plusieurs régions aux États-Unis).
- Conservez l'autre valeur par défaut et cliquez sur Créer.
- Cochez la case
Appliquer la protection contre l'accès public sur ce bucket
et cliquez sur Confirmer dans le pop-upL'accès public sera bloqué
, si vous y êtes invité.
Créer un bucket dans l'UE
Répétez ces étapes pour créer un autre bucket dans la région EU
. Le nom unique universel doit inclure l'emplacement sous la forme d'un suffixe (ex. :
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 3 : Créer l'ensemble de données de destination BigQuery
-
Créez l'ensemble de données de destination BigQuery dans l'Union européenne depuis la nouvelle interface utilisateur Web de BigQuery.
-
Accédez au menu de navigation > BigQuery.
Le message Bienvenue sur BigQuery dans la console Cloud s'affiche. Il contient un lien vers le guide de démarrage rapide et liste les mises à jour de l'interface utilisateur.
-
Cliquez sur OK.
-
Cliquez sur l'icône à trois points figurant à côté de l'ID de votre projet Qwiklabs, puis sélectionnez Créer un ensemble de données.
- Utilisez l'ID de l'ensemble de données nyc_tlc_EU, puis sélectionnez Multirégion comme type d'emplacement et UE dans le menu déroulant.
- Cliquez sur CRÉER UN ENSEMBLE DE DONNÉES.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 4 : Présentation rapide d'Airflow et de ses concepts fondamentaux
- Pendant la création de votre environnement, découvrez plus d'informations sur l'exemple de fichier que vous allez utiliser au cours de cet atelier.
Airflow est une plate-forme qui permet de créer, de planifier et de surveiller vos workflows de manière programmatique.
Avec Airflow, vous pouvez créer des workflows en tant que graphes de tâches orientés acycliques (DAG). Le programmeur Airflow exécute vos tâches sur un tableau de nœuds de calcul tout en suivant les dépendances spécifiées.
Concepts fondamentaux
DAG : un graphe orienté acyclique est un ensemble de tâches, organisé de façon à refléter les relations et dépendances.
Opérateur : description d'une tâche unique, généralement atomique. Par exemple, l'opérateur BashOperator permet d'exécuter une commande Bash.
Tâche : instance paramétrée d'un opérateur. Nœud dans le DAG.
Instance de tâche : exécution spécifique d'une tâche caractérisée par un DAG, une tâche et un moment précis. Un état indicatif lui est attribué : running (exécution en cours), success (réussite), failed (échec), skipped (ignorée), ...
En savoir plus sur les concepts d'Airflow dans la documentation sur les concepts.
Tâche 5 : Définir le workflow
Les workflows Cloud Composer sont constitués de DAG (graphes orientés acycliques). Le code illustré dans bq_copy_across_locations.py correspond au code du workflow, également appelé "DAG". Ouvrez maintenant le fichier pour voir comment il se présente. Vous verrez ensuite en détail certains des composants clés de ce fichier.
Pour orchestrer toutes les tâches du workflow, le DAG importe les opérateurs suivants :
-
DummyOperator
: crée des tâches de début et de fin factices pour une meilleure représentation visuelle du DAG. -
BigQueryToCloudStorageOperator
: exporte les tables BigQuery vers les buckets Cloud Storage au format Avro. -
GoogleCloudStorageToGoogleCloudStorageOperator
: copie les fichiers dans les buckets Cloud Storage. -
GoogleCloudStorageToBigQueryOperator
: importe les tables des fichiers Avro dans un bucket Cloud Storage.
- Dans cet exemple, la fonction
read_table_list()
est définie de manière à lire le fichier de configuration et à créer la liste des tables à copier :
- Le nom du DAG est
bq_copy_us_to_eu_01
. Le DAG n'étant pas programmé par défaut, il doit être déclenché manuellement.
- Pour définir le plug-in Cloud Storage, vous devez définir la classe
Cloud StoragePlugin(AirflowPlugin)
en mappant le hook et l'opérateur téléchargés depuis la branche Airflow 1.10-stable.
Tâche 6 : Afficher les informations concernant l'environnement
-
Retournez à Composer pour vérifier l'état de votre environnement.
-
Une fois l'environnement créé, cliquez sur son nom pour en afficher les détails.
La page Détails de l'environnement contient des informations telles que l'URL de l'interface utilisateur Web d'Airflow, l'ID du cluster Google Kubernetes Engine et le nom du bucket Cloud Storage connecté au dossier des DAG.
Les prochaines étapes doivent être effectuées dans Cloud Shell.
Créer un environnement virtuel
Les environnements virtuels Python permettent d'isoler l'installation d'un package du système.
- Installez l'environnement
virtualenv
:
- Créez l'environnement virtuel :
- Activez l'environnement virtuel.
Tâche 7 : Créer une variable pour le bucket Cloud Storage des DAG
- Dans Cloud Shell, exécutez la commande suivante pour copier le nom du bucket des DAG indiqué sur la page "Détails de l'environnement" et définir une variable qui s'y référera dans Cloud Shell :
-composer-advanced-YOURDAGSBUCKET-bucket
.Vous allez utiliser cette variable un certain nombre de fois au cours de cet atelier.
Tâche 8 : Définir les variables Airflow
Les variables Airflow sont un concept spécifique à Airflow, et se distinguent des variables d'environnement. Dans cette étape, vous allez définir les trois variables Airflow suivantes, qui seront utilisées par le DAG que nous allons déployer : table_list_file_path
, gcs_source_bucket
et gcs_dest_bucket
.
Clé | Valeur | Détails |
---|---|---|
table_list_file_path |
/home/airflow/gcs/dags/bq_copy_eu_to_us_sample.csv | Fichier CSV répertoriant les tables source et cible, y compris l'ensemble de données |
gcs_source_bucket |
{ID UNIQUE}-us | Bucket Cloud Storage à utiliser pour exporter la table BigQuery tabledest_bbucks depuis l'emplacement source |
gcs_dest_bucket |
{ID UNIQUE}-eu | Bucket Cloud Storage à utiliser pour importer les tables BigQuery dans l'emplacement de destination |
La commande gcloud composer
suivante permet d'exécuter les variables de la sous-commande CLI Airflow. La sous-commande transmet les arguments à l'outil de ligne de commande gcloud
.
Pour définir les trois variables, vous allez exécuter la commande composer
pour chacune des lignes de la table ci-dessus. La commande se présente comme suit :
(ERROR: gcloud crashed (TypeError): 'NoneType' object is not callable)
. Il s'agit d'un problème connu lors de l'utilisation de gcloud composer environments run
avec la version 410.0.0 de gcloud. Vos variables seront quand même définies malgré le message d'erreur.
-
ENVIRONMENT_NAME
correspond au nom de l'environnement. -
LOCATION
est la région Compute Engine dans laquelle se trouve l'environnement. Vous devez inclure l'option--location
ou définir l'emplacement par défaut dans la commande gcloud composer avant de l'exécuter. - Les éléments
KEY
etVALUE
indiquent la variable à définir et sa valeur. Ajoutez un espace, deux tirets et un espace (--
) entre la commandegcloud
de gauche spécifiant les arguments gcloud, et les arguments associés à la sous-commande Airflow de droite. Incluez également un espace entre les argumentsKEY
etVALUE
. Exécutez la commandegcloud composer environments run
avec les variables de la sous-commande.
Exécutez les commandes suivantes dans Cloud Shell, en remplaçant gcs_source_bucket
et gcs_dest_bucket
par les noms des buckets que vous avez créés lors de la tâche 2.
Pour afficher la valeur d'une variable, utilisez la sous-commande variables de la CLI Airflow avec l'argument get
ou utilisez l'interface utilisateur Airflow.
Par exemple, exécutez la commande suivante :
Tâche 9 : Importer le DAG et les dépendances dans Cloud Storage
- Dans Cloud Shell, copiez les fichiers d'exemple de la documentation Google Cloud pour Python :
- Importez une copie du hook et de l'opérateur tiers dans le dossier des plug-ins du bucket Cloud Storage contenant les DAG Composer :
- Importez ensuite le DAG et le fichier de configuration dans le bucket Cloud Storage des DAG de votre environnement :
Cloud Composer enregistre automatiquement le DAG dans votre environnement Airflow, et les modifications sont appliquées au DAG après trois à cinq minutes. L'état de la tâche s'affiche dans l'interface Web d'Airflow. Vous pouvez voir que le DAG n'est pas programmé, conformément aux paramètres.
Tâche 10 : Explorer l'interface utilisateur d'Airflow
Pour accéder à l'interface Web Airflow à l'aide de la console Cloud :
- Revenez à la page Environnements de Composer.
- Dans la colonne Serveur Web Airflow associée à l'environnement, cliquez sur le lien Airflow.
- Cliquez sur les identifiants qui vous ont été attribués pour cet atelier.
- L'interface utilisateur Web Airflow s'ouvre dans une nouvelle fenêtre du navigateur. Le chargement des données se poursuit pendant ce temps. Vous pouvez continuer l'atelier en attendant.
Afficher les variables
Les variables que vous avez définies précédemment sont conservées dans votre environnement.
- Affichez les variables en sélectionnant Admin > Variables dans la barre de menu Airflow.
Déclencher l'exécution manuelle du DAG
-
Cliquez sur l'onglet Graphes orientés acycliques et attendez la fin du chargement des liens.
-
Pour déclencher le DAG manuellement, cliquez sur le bouton de lecture pour
composer_sample_bq_copy_across_locations
:
- Cliquez sur Déclencher le DAG pour confirmer cette action.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Exploration des exécutions du DAG
Lorsque vous importez le fichier DAG dans le dossier "Graphes orientés acycliques" de Cloud Storage, il est analysé par Cloud Composer. Si aucune erreur n'est détectée, le nom du workflow apparaît dans la liste des DAG, et le workflow est placé en file d'attente en vue d'une exécution immédiate si les conditions de la programmation sont remplies. Dans notre exemple, aucune programmation n'a été définie dans les paramètres.
L'état dans la colonne Exécutions devient vert lorsque vous appuyez sur le bouton de lecture :
- Cliquez sur le nom du DAG pour ouvrir sa page d'informations. Cette page comprend une représentation graphique des tâches et des dépendances du workflow.
- Dans la barre d'outils, cliquez sur Graphique, puis passez la souris sur le graphique de chaque tâche pour afficher l'état de celle-ci. Notez que la bordure autour de chaque tâche indique également son état (bordure verte = exécution en cours, rouge = échec, etc.).
Pour exécuter de nouveau le workflow à partir de la vue Graphique :
- Dans la vue graphique de l'interface utilisateur d'Airflow, cliquez sur le graphique start (début).
- Cliquez sur Effacer pour réinitialiser toutes les tâches, puis sur OK pour confirmer.
Actualisez le navigateur pendant l'exécution du processus pour afficher les informations les plus récentes.
Tâche 11 : Valider les résultats
Vous allez maintenant vérifier l'état et les résultats du workflow. Pour ce faire, accédez à ces pages de la console Cloud :
- Les tables exportées ont été copiées du bucket américain vers le bucket Cloud Storage européen. Cliquez sur Cloud Storage pour consulter les fichiers Avro intermédiaires dans les buckets source (États-Unis) et de destination (Union européenne).
- La liste des tables a été importée dans l'ensemble de données BigQuery cible. Cliquez sur BigQuery, puis sur le nom de votre projet et sur l'ensemble de données nyc_tlc_EU pour vous assurer que les tables sont bien accessibles depuis l'ensemble de données que vous avez créé.
Supprimer l'environnement Cloud Composer
- Revenez à la page Environments dans Composer.
- Cochez la case à côté de votre environnement Composer.
- Cliquez sur SUPPRIMER.
- Confirmez la fenêtre contextuelle en cliquant à nouveau sur DELETE.
Félicitations !
Vous avez copié des tables de manière programmatique de l'emplacement américain vers l'emplacement européen. Cet atelier se base sur cet article de blog publié par David Sabater Dinter.
Étapes suivantes
- Pour en savoir plus sur l'utilisation d'Airflow, consultez le site Web Airflow ou le projet GitHub Airflow.
- De nombreuses autres ressources concernant Airflow sont disponibles, dont un groupe de discussion.
- Créez un compte Apache JIRA et rouvrez les demandes qui vous intéressent dans le projet Apache Airflow JIRA.
- Pour plus d'informations sur l'interface utilisateur d'Airflow, consultez Accéder à l'interface Web.
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 : 21 juin 2024
Dernier test de l'atelier : 21 juin 2024
Copyright 2024 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.