Convertir un pipeline personnalisé en modèle Flex Dataflow personnalisé
Exécuter un modèle Flex Dataflow
Prérequis :
Connaître les bases de Python
Un pipeline qui accepte les paramètres de ligne de commande est beaucoup plus utile qu'un pipeline dont les paramètres sont codés en dur. Toutefois, pour l'exécuter, vous devez créer un environnement de développement. Pour les pipelines qui vont être réexploités par différents utilisateurs ou dans différents contextes, il est encore plus judicieux d'utiliser un modèle Dataflow.
De nombreux modèles Dataflow ont déjà été créés dans le cadre de Google Cloud Platform. Pour en savoir plus, consultez le guide Premiers pas avec les modèles fournis par Google. Mais aucun d'entre eux n'exécute la même fonction que le pipeline de cet atelier. Dans cette partie de l'atelier, vous allez convertir le pipeline en un modèle Flex Dataflow personnalisé plus récent (par opposition à un modèle traditionnel personnalisé).
Pour convertir un pipeline en modèle Flex Dataflow personnalisé, vous devez utiliser : un conteneur Docker pour regrouper votre code et les dépendances dans un package, un fichier Dockerfile pour décrire le code à compiler, Cloud Build pour compiler le conteneur sous-jacent qui sera utilisé au moment de l'exécution afin de créer le job proprement dit, et un fichier de métadonnées pour décrire les paramètres du job.
Préparation
Mettre en place l'atelier
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.
Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.
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.
Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.
Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.
Cliquez sur Ouvrir la console Google.
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.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
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).
Dans la console Google Cloud, accédez au menu de navigation (), puis sélectionnez IAM et administration > IAM.
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.
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é.
Dans la console Google Cloud, accédez au menu de navigation et cliquez sur Présentation du cloud > Tableau de bord.
Copiez le numéro du projet (par exemple, 729328892908).
Dans le menu de navigation, sélectionnez IAM et administration > IAM.
Sous Afficher par compte principal, en haut de la table des rôles, cliquez sur Accorder l'accès.
Dans le champ Nouveaux comptes principaux, saisissez :
Remplacez {project-number} par le numéro de votre projet.
Dans le champ Rôle, sélectionnez Projet (ou Basique) > Éditeur.
Cliquez sur Enregistrer.
Dans le menu de navigation () de la console Google Cloud, sélectionnez Vertex AI.
Cliquez sur Activer toutes les API recommandées.
Dans le menu de navigation, cliquez sur Workbench.
En haut de la page "Workbench", vérifiez que vous vous trouvez dans la vue Instances.
Cliquez sur Créer.
Configurez l'instance :
Nom : lab-workbench
Région : définissez la région sur
Zone : définissez la zone sur
Options avancées (facultatif) : si nécessaire, cliquez sur "Options avancées" pour une personnalisation plus avancée (par exemple, type de machine, taille du disque).
Cliquez sur Créer.
La création de l'instance prend quelques minutes. Une coche verte apparaît à côté de son nom quand elle est prête.
Cliquez sur Ouvrir JupyterLab à côté du nom de l'instance pour lancer l'interface JupyterLab. Un nouvel onglet s'ouvre alors dans votre navigateur.
Cliquez ensuite sur Terminal. Le terminal qui s'affiche vous permet d'exécuter toutes les commandes de cet atelier.
Télécharger le dépôt de code
Maintenant, vous allez télécharger le dépôt de code que vous utiliserez dans cet atelier.
Dans le terminal que vous venez d'ouvrir, saisissez le code suivant :
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
cd /home/jupyter/training-data-analyst/quests/dataflow_python/
Dans le panneau de gauche de votre environnement de notebook, dans l'explorateur de fichiers, vous pouvez noter que le dépôt training-data-analyst a été ajouté.
Accédez au dépôt cloné /training-data-analyst/quests/dataflow_python/. Chaque atelier correspond à un dossier, divisé en deux sous-dossiers : le premier, intitulé lab, contient du code que vous devez compléter, tandis que le second, nommé solution, comporte un exemple concret que vous pouvez mettre en œuvre si vous rencontrez des difficultés.
Remarque : Si vous souhaitez ouvrir un fichier pour le modifier, il vous suffit de le trouver et de cliquer dessus. Une fois ce fichier ouvert, vous pourrez y ajouter ou modifier le code.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer une instance de notebook et cloner le dépôt du cours
Tâche 1 : Configurer votre pipeline
Pour cet atelier, nous allons utiliser le code de pipeline existant de l'atelier "Pipelines avec branches" (dossier "solutions").
Ouvrir l'atelier approprié
Dans le terminal de votre environnement JupyterLab, exécutez les commandes suivantes :
cd 2_Branching_Pipelines/lab
export BASE_DIR=$(pwd)
Configurer l'environnement virtuel et les dépendances
Avant de pouvoir modifier le code du pipeline, assurez-vous d'avoir installé les dépendances nécessaires.
Revenez au terminal que vous avez ouvert précédemment dans votre environnement IDE, puis créez un environnement virtuel pour votre travail dans cet atelier :
# Create GCS buckets and BQ dataset
cd $BASE_DIR/../..
source create_batch_sinks.sh
# Generate event dataflow
source generate_batch_events.sh
# Change to the directory containing the practice version of the code
cd $BASE_DIR
Mettre à jour le code de votre pipeline
Mettez à jour le fichier my_pipeline.py dans votre IDE à l'aide du fichier de solution, que vous trouverez dans training-data-analyst/quests/dataflow_python/2_Branching_Pipelines/solution/ :
Cliquez sur Vérifier ma progression pour valider l'objectif.
Configurer l'environnement de données
Tâche 2 : Créer une image de conteneur pour un modèle Flex Dataflow personnalisé
(Facultatif) Activez l'utilisation du cache Kaniko par défaut. Comme Kaniko met en cache les artefacts de compilation des conteneurs, l'utilisation de cette option accélère les compilations suivantes. Nous utiliserons également pip3 freeze pour enregistrer les packages et leurs versions utilisés dans notre environnement.
gcloud config set builds/use_kaniko True
Ensuite, nous allons créer notre Dockerfile. Il va spécifier le code et les dépendances que nous devons utiliser.
a. Pour effectuer cette tâche, créez un fichier dans le dossier dataflow_python/2_Branching_Pipelines/lab de l'explorateur de fichiers de votre IDE.
b. Pour créer un fichier, cliquez sur Fichier >> Nouveau >> Fichier texte.
c. Remplacez le nom du fichier par Dockerfile en effectuant un clic droit dessus.
d. Cliquez sur le fichier Dockerfile dans le panneau d'édition pour l'ouvrir.
e. Copiez le code ci-dessous dans le fichier Dockerfile et enregistrez-le :
FROM gcr.io/dataflow-templates-base/python3-template-launcher-base
ARG WORKDIR=/dataflow/template
RUN mkdir -p ${WORKDIR}
WORKDIR ${WORKDIR}
RUN apt-get update && apt-get install -y libffi-dev && rm -rf /var/lib/apt/lists/*
COPY my_pipeline.py .
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="${WORKDIR}/my_pipeline.py"
RUN python3 -m pip install apache-beam[gcp]==2.60.0
Enfin, utilisez Cloud Build pour créer l'image de conteneur :
La création et la publication du conteneur prennent quelques minutes.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer une image de conteneur pour un modèle Flex Dataflow personnalisé
Tâche 3 : Créer et préparer le modèle Flex
Pour exécuter un modèle, vous devez créer un fichier de spécification de modèle dans Cloud Storage. Il doit contenir toutes les informations nécessaires à l'exécution du job, telles que les informations et les métadonnées du SDK.
a. Créez un fichier dans le dossier dataflow_python/2_Branching_Pipelines/lab de l'explorateur de fichiers de votre IDE.
b. Pour créer un fichier, cliquez sur Fichier >> Nouveau >> Fichier texte.
c. Remplacez le nom du fichier par metadata.json en effectuant un clic droit dessus.
d. Ouvrez le fichier metadata.json dans le panneau d'édition. Pour ouvrir le fichier, effectuez un clic droit sur metadata.json, puis sélectionnez Ouvrir avec >> Éditeur.
e. Pour effectuer cette tâche, nous devons créer un fichier metadata.json au format suivant, qui prend en compte tous les paramètres d'entrée attendus par votre pipeline. Si vous avez besoin d'aide, consultez la solution. Vous allez devoir écrire votre propre propre expression régulière pour vérifier les paramètres. Bien que ce ne soit pas la meilleure des pratiques, ".*" peut être utilisé pour établir une correspondance avec n'importe quelle entrée.
{
"name": "Your pipeline name",
"description": "Your pipeline description",
"parameters": [
{
"name": "inputPath",
"label": "Input file path.",
"helpText": "Path to events.json file.",
"regexes": [
".*\\.json"
]
},
{
"name": "outputPath",
"label": "Output file location",
"helpText": "GCS Coldline Bucket location for raw data",
"regexes": [
"gs:\\/\\/[a-zA-z0-9\\-\\_\\/]+"
]
},
{
"name": "tableName",
"label": "BigQuery output table",
"helpText": "BigQuery table spec to write to, in the form 'project:dataset.table'.",
"is_optional": true,
"regexes": [
"[^:]+:[^.]+[.].+"
]
}
]
}
Ensuite, créez et préparez le modèle :
export PROJECT_ID=$(gcloud config get-value project)
export TEMPLATE_PATH="gs://${PROJECT_ID}/templates/mytemplate.json"
# Will build and upload the template to GCS
gcloud dataflow flex-template build $TEMPLATE_PATH \
--image "$TEMPLATE_IMAGE" \
--sdk-language "PYTHON" \
--metadata-file "metadata.json"
Vérifiez que le fichier a été importé à l'emplacement du modèle dans Cloud Storage.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer et préparer le modèle Flex
Tâche 4 : Exécuter le modèle à partir de l'UI
Pour réaliser cette tâche, suivez les instructions ci-dessous :
Accédez à la page Dataflow dans la console Google Cloud.
Cliquez sur CRÉER UN JOB À PARTIR D'UN MODÈLE.
Indiquez le nom du job.
Définissez le point de terminaison régional sur .
Sélectionnez Modèle personnalisé dans le menu déroulant Modèle Dataflow.
Saisissez le chemin d'accès Cloud Storage vers votre fichier de modèle dans le champ "Template Cloud Storage Path" (Chemin d'accès GCS du modèle).
Saisissez les éléments appropriés sous Paramètre obligatoire.
a. Dans le champ Input file path (Chemin d'accès au fichier d'entrée), saisissez
b. Dans le champ Output file location (Emplacement du fichier de sortie), saisissez .
c. Dans le champ BigQuery output table (Table de sortie BigQuery), saisissez .
Cliquez sur RUN JOB (Exécuter le job).
Remarque : Vous n'avez pas besoin de spécifier de bucket de préproduction. Dataflow créera un bucket privé dans votre projet en utilisant votre numéro de projet, semblable à
Examinez la console Compute Engine. Vous y verrez une VM de lancement temporaire créée pour exécuter votre conteneur et lancer votre pipeline avec les paramètres fournis.
Tâche 5 : Exécuter le modèle à l'aide de gcloud
L'un des avantages des modèles Dataflow est qu'ils peuvent être exécutés dans une plus grande variété de contextes, et pas seulement dans un environnement de développement. Pour illustrer cela, utilisez gcloud pour exécuter un modèle Dataflow à partir de la ligne de commande.
Pour effectuer cette tâche, exécutez la commande suivante dans votre terminal en modifiant les paramètres selon vos besoins :
Assurez-vous que votre pipeline s'exécute correctement.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Exécuter le modèle à partir de l'UI et à l'aide de gcloud
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 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms de société et de produit peuvent être des marques des sociétés auxquelles ils sont associés.
Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
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.
En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.
Utilisez la navigation privée
Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
Cliquez sur Ouvrir la console en navigation privée
Connectez-vous à la console
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.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
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.
Dans cet atelier, vous allez (i) convertir un pipeline personnalisé en modèle Flex Dataflow et (ii) exécuter un modèle Flex Dataflow.
Durée :
1 min de configuration
·
Accessible pendant 120 min
·
Terminé après 120 min