La planification des scripts et des notebooks SQL vous permet d'opérationnaliser les éléments créés dans l'environnement d'exploration de données (exploration).
Lorsque vous programmez un script SQL ou un notebook, vous créez une tâche Dataplex qui s'exécute à une heure prédéterminée, une seule fois ou de manière récurrente. À chaque exécution, une tâche est créée. Elle capture les métadonnées, telles que les heures de début et de fin, l'état de l'exécution, les journaux et les résultats générés.
Lorsqu'une exécution est déclenchée pour un script SQL planifié ou un notebook, la version actuelle du notebook ou du script SQL est exécutée. Cela signifie que si vous planifiez un notebook ou un script SQL, puis mettez à jour son contenu, la mise à jour est également reflétée dans les exécutions planifiées du notebook ou du script SQL.
Coûts
Les scripts SQL planifiés et les notebooks planifiés déclenchent l'exécution de jobs à l'aide de Dataproc sans serveur. Les utilisations sont facturées selon le modèle de tarification de Dataproc, et les frais s'affichent sous Dataproc, et non sous Dataplex.
Avant de commencer
Passez en revue et remplissez les conditions préalables décrites dans les documents suivants:
- Section Avant de commencer de l'article Utiliser l'atelier d'exploration de données
Section Avant de commencer de l'article Planifier des tâches Spark et SparkSQL personnalisées
Si un script SQL ou une programmation de notebooks utilise l'API BigQuery, vous devez attribuer le rôle Consommateur d'utilisation du service (roles/serviceusage.serviceUsageConsumer
) au compte de service.
Limitations connues
Lorsque vous planifiez un notebook à l'aide de la console Google Cloud, les packages Python supplémentaires configurés dans l'environnement sélectionné ne sont pas disponibles au moment de l'exécution du notebook planifié. Pour les rendre disponibles au moment de l'exécution, vous devez créer une programmation de notebooks faisant référence à une image de conteneur avec les packages supplémentaires requis. Pour en savoir plus, consultez la section Planifier des notebooks avec des packages personnalisés.
Il n'est pas possible d'utiliser la console Google Cloud pour référencer des images de conteneurs personnalisées lors de la planification de notebooks. Utilisez plutôt gcloud CLI.
Une fois la planification créée, vous ne pouvez plus la modifier. Pour mettre à jour les paramètres de planification, vous devez recréer la planification avec de nouveaux paramètres.
Vous ne pouvez pas définir une version spécifique d'un script ou d'un notebook SQL à utiliser dans une programmation. Lorsque la planification est déclenchée, la version actuelle du script ou du notebook SQL est utilisée.
Lorsque vous planifiez des scripts et des notebooks SQL à l'aide de la console Google Cloud, le sous-réseau par défaut est utilisé. Pour spécifier un autre réseau ou sous-réseau, utilisez la gcloud CLI.
Consultez également les limites connues de la fonctionnalité Explorer.
Créer et gérer des planifications pour les scripts SQL
Configuration de l'environnement d'exécution pour les scripts SQL planifiés
Lorsqu'un script SQL est planifié, il s'exécute en tant que tâche Dataplex. Lorsqu'une planification est créée à l'aide de la console Google Cloud, les paramètres d'exécution des tâches correspondants pour les scripts SQL planifiés sont hérités de l'environnement de ce script SQL en fonction du mappage suivant:
Paramètre de configuration de l'environnement | Paramètre de configuration de la tâche de script SQL planifiée |
---|---|
Taille du disque principal | Image de conteneur / Propriétés: spark.dataproc.driver.disk.size spark.dataproc.executor.disk.size |
Nombre de nœuds | Nombre de lots / d'exécuteurs |
Nombre maximal de nœuds | Nombre d'exécuteurs par lot / maximaux |
Version de l'image | Non hérité |
Fichiers JAR | Image du conteneur / JARS Java |
Packages Python | Non hérité |
Propriétés supplémentaires | Image de conteneur / Propriétés |
Planifier un script SQL
Console
Dans la console Google Cloud, accédez à la page Explorer de Dataplex.
Sélectionnez un script SQL que vous souhaitez planifier. Pour ce faire, sélectionnez un seul script SQL dans la liste Scripts SQL Spark ou ouvrez un script SQL dans l'éditeur Spark SQL.
Dans le menu Planning, cliquez sur Créer une planification.
Dans le champ Nom de la planification, saisissez un nom pour l'instance planifiée.
Dans la section Schedule Options (Options de programmation), indiquez si vous souhaitez exécuter le script SQL
une seule fois ou de manière récurrente:Si vous sélectionnez Exécuter une fois, indiquez si vous souhaitez exécuter le script SQL immédiatement ou à une heure planifiée, à l'aide des options du menu Démarrer. Pour une exécution planifiée, spécifiez la date de début et l'heure d'exécution.
Si vous sélectionnez Répéter, indiquez si vous souhaitez exécuter le script SQL quotidiennement, hebdomadaire, mensuel ou selon un calendrier personnalisé spécifié à l'aide d'une expression Cron. Spécifiez également la date de début et l'heure d'exécution de l'exécution planifiée initiale.
Dans la section Destination des résultats, procédez comme suit:
Dans le champ Nom du dossier de sortie, cliquez sur Parcourir, puis sélectionnez un dossier du bucket Cloud Storage dans lequel vous souhaitez stocker les résultats de script.
Cliquez sur Sélectionner.
Sélectionnez le format de sortie du script. Les formats acceptés sont CSV, JSON, ORC et Parquet.
Dans la section Identifiants de script programmés, sélectionnez un compte de service dans le menu Compte de service utilisateur.
Cliquez sur Schedule (Programmer).
gcloud
Pour en savoir plus sur la planification de scripts SQL à l'aide de gcloud CLI, consultez la section Planifier une tâche SparkSQL.
REST
Utilisez APIs Explorer pour créer une tâche.
Gérer les programmations de scripts SQL
Console
Ouvrir la liste de toutes les programmations de scripts SQL
Dans la console Google Cloud, accédez à la page Processus de Dataplex.
Cliquez sur l'onglet Requêtes programmées pour afficher la liste des planifications de scripts SQL.
Ouvrir la liste de toutes les planifications d'un script SQL spécifique
Dans la console Google Cloud, accédez à la page Explorer de Dataplex.
Sélectionnez le script SQL requis.
Dans le menu Planning, cliquez sur Afficher les programmations.
L'onglet Requêtes programmées s'ouvre et affiche la liste des programmations de scripts SQL filtrées en fonction du script SQL sélectionné.
Afficher les détails d'une programmation de script SQL
Accédez à l'onglet Requêtes programmées et sélectionnez la programmation de scripts SQL requise.
Cliquez sur l'onglet Détails pour afficher les détails de la programmation du script SQL et un aperçu de son contenu.
Activer et désactiver une programmation de script SQL
Accédez à l'onglet Requêtes programmées et sélectionnez la programmation de scripts SQL requise.
Cliquez sur Désactiver pour désactiver une planification de script SQL active.
Cliquez sur Activer pour activer une programmation de script SQL inactif.
Supprimer une programmation de script SQL existante
Accédez à l'onglet Requêtes programmées et sélectionnez la programmation de scripts SQL requise.
Cliquez sur Supprimer pour supprimer définitivement une planification de script SQL existante.
Afficher les journaux et gérer la programmation d'un script SQL
Accédez à l'onglet Requêtes programmées et sélectionnez la programmation de scripts SQL requise.
Cliquez sur l'onglet Jobs (Tâches), puis sur l'ID de tâche de l'exécution de script SQL planifiée que vous souhaitez afficher.
Cliquez sur Afficher les journaux pour afficher les journaux liés à l'exécution du script SQL planifié sélectionnée dans Cloud Logging.
Cliquez sur l'ID de lot Dataproc pour ouvrir la page "Dataproc" dans la console Google Cloud. Accédez aux détails de la session Dataproc sans serveur correspondante.
Cliquez sur Gérer dans Cloud Storage à côté du libellé Résultat pour ouvrir la page Cloud Storage dans la console Google Cloud. Accédez aux détails du bucket Cloud Storage correspondant contenant le résultat de l'exécution du script SQL.
gcloud
Pour en savoir plus sur la surveillance des scripts SQL planifiés à l'aide de gcloud CLI, consultez l'onglet gcloud de la section Surveiller votre tâche.
Pour en savoir plus sur la gestion des scripts SQL planifiés à l'aide de gcloud CLI, consultez l'onglet gcloud dans Gérer la planification.
REST
Pour en savoir plus sur la surveillance des scripts SQL planifiés à l'aide de REST, consultez l'onglet REST de la section Surveiller votre tâche.
Pour en savoir plus sur la gestion des scripts SQL planifiés à l'aide de REST, consultez l'onglet REST dans Gérer la planification.
Sortie d'un script SQL planifié
Le résultat de chaque exécution d'un script SQL planifié est stocké à l'emplacement que vous avez spécifié pour le dossier Cloud Storage, selon la structure suivante:
CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER
Créer et gérer des planifications pour les notebooks
Configuration de l'environnement d'exécution pour les notebooks planifiés
Lorsqu'un notebook est planifié, il s'exécute en tant que tâche Dataplex. Lorsqu'une programmation est créée à l'aide de la console Google Cloud, les paramètres d'exécution des tâches correspondants pour les notebooks planifiés sont hérités de l'environnement de ce notebook en fonction du mappage suivant:
Paramètre de configuration de l'environnement | Paramètre de configuration de la tâche de notebook planifiée |
---|---|
Taille du disque principal | Image de conteneur / Propriétés: spark.dataproc.driver.disk.size spark.dataproc.executor.disk.size |
Nombre de nœuds | Nombre de lots / d'exécuteurs |
Nombre maximal de nœuds | Nombre d'exécuteurs par lot / maximaux |
Version de l'image | Non hérité |
Fichiers JAR | Image du conteneur / JARS Java |
Packages Python | Non hérité |
Propriétés supplémentaires | Image de conteneur / Propriétés |
Planifier des notebooks avec des packages personnalisés
Pour les notebooks interactifs, lors de la configuration d'un environnement, Dataplex vous permet de spécifier des packages Python personnalisés à installer dans les sessions utilisateur provisionnées pour l'environnement. Lorsqu'un tel notebook est planifié, les packages Python personnalisés configurés dans son environnement ne sont pas disponibles au moment de l'exécution du notebook planifié, et l'environnement d'exécution par défaut ne contient que les composants de la version d'exécution 1.0 de l'environnement d'exécution Spark sans serveur Dataproc. Pour que les packages Python personnalisés soient disponibles au moment de l'exécution pour les notebooks planifiés, fournissez une image de conteneur personnalisé avec les packages personnalisés nécessaires.
Il n'est pas possible de spécifier une image de conteneur personnalisée lors de la planification d'un notebook à l'aide de la console Google Cloud. Utilisez plutôt gcloud CLI. Pour en savoir plus, consultez la section Planifier un notebook.
Si vous planifiez un notebook avec un environnement dans lequel des packages personnalisés sont configurés, l'avertissement suivant s'affiche:
Selected environmenthas additional Python packages configured. These packages will not be available in the default runtime for the scheduled notebook when scheduling in the Console. To make the required additional Python packages available in the runtime, please create Notebook Schedule using gcloud command instead, referencing a container image with required additional packages.
Créer une image de conteneur personnalisé pour les notebooks programmés
Pour plus d'informations sur la création d'une image de conteneur pour les notebooks planifiés et l'installation des packages Python personnalisés requis dans le fichier Docker de l'image du conteneur, consultez la section Créer une image de conteneur personnalisée pour Dataproc sans serveur pour Spark.
Assurez-vous d'avoir installé les packages Conda suivants dans l'image du conteneur:
gcsfs
google-cloud-bigquery
google-cloud-storage
google-auth
ipykernel
papermill
Pour installer les composants gcloud
dans une image de conteneur, ouvrez le fichier Docker de l'image de conteneur et procédez comme suit:
Ajoutez le package
google-cloud-sdk
à la liste des packages Conda à installer.Ajoutez les lignes suivantes après l'étape d'installation des packages Conda:
# (Optional) Installing gcloud components RUN gcloud components install alpha beta bq gsutil
Planifier un notebook
Console
Dans la console Google Cloud, accédez à la page Explorer de Dataplex.
Sélectionnez un notebook que vous souhaitez planifier. Pour ce faire, sélectionnez un seul notebook dans la vue Notebooks ou ouvrez-en un sur la page d'informations du notebook.
Dans le menu Planning, cliquez sur Créer une planification.
Dans le champ Nom de la planification, saisissez un nom pour l'instance planifiée.
Dans la section Schedule Options (Options de programmation), indiquez si vous souhaitez exécuter le notebook une seule fois ou de manière récurrente:
Si vous sélectionnez Exécuter une fois, indiquez si vous souhaitez exécuter le notebook immédiatement ou à une heure planifiée, à l'aide des options du menu Démarrer. Pour une exécution planifiée, spécifiez la date de début et l'heure d'exécution.
Si vous sélectionnez Répéter, indiquez si vous souhaitez exécuter le notebook quotidiennement, hebdomadaire, mensuel ou selon une planification personnalisée spécifiée à l'aide d'une expression Cron. En outre, spécifiez la date de début et l'heure d'exécution de l'exécution planifiée initiale.
Dans la section Destination des résultats, choisissez l'emplacement où vous souhaitez stocker le résultat du notebook:
Dans le champ Nom du dossier de sortie, cliquez sur Parcourir, puis sélectionnez un dossier du bucket Cloud Storage dans lequel vous souhaitez stocker le résultat du notebook.
Cliquez sur Sélectionner.
Sélectionnez le format de sortie du script. Les formats acceptés sont CSV, JSON, ORC et Parquet.
Dans la section Identifiants de notebook programmé, sélectionnez un compte de service dans le menu Compte de service utilisateur.
Dans la section Paramètres, ajoutez des paramètres d'exécution pour le notebook en tant que paires clé/valeur en cliquant sur Ajouter.
Cliquez sur Schedule (Programmer).
gcloud
Exécutez la commande de gcloud CLI décrite dans la section Planifier une tâche Spark (Java ou Python) avec les paramètres supplémentaires suivants:
Paramètres | Description |
---|---|
--notebook
|
Chemin d'accès au contenu d'un notebook pour le notebook d'entrée. Les arguments d'exécution sont accessibles en tant que variables d'environnement. Par exemple, TASK_key=value . Remarque : : Dans la documentation de référence gcloud sur la planification des notebooks en tant que tâches, il est indiqué que la valeur du paramètre --notebook peut être l'URI Cloud Storage du fichier notebook. Cette opération n'est pas prise en charge. Vous ne devez spécifier le chemin d'accès au contenu de notebook que pour le paramètre --notebook . |
--notebook-archive-uris
|
URI Cloud Storage des archives à extraire dans le répertoire de travail de chaque exécuteur. Les types de fichiers compatibles sont JAR , tar , tar.gz , tgz et zip . |
--notebook-file-uris |
URI Google Cloud Storage des fichiers à placer dans le répertoire de travail de chaque exécuteur. |
Ressources de calcul nécessaires pour une tâche lorsque vous utilisez Dataproc sans serveur | |
--notebook-batch-executors-count |
Nombre d'exécuteurs de tâches. |
--notebook-batch-max-executors-count
|
Nombre maximal d'exécuteurs configurables. Si la valeur de notebook-batch-max-executors-count est supérieure à notebook-batch-executors-count , l'autoscaling est activé. |
Configuration de l'environnement d'exécution des images de conteneur | |
--notebook-container-image |
(Facultatif) Image de conteneur personnalisé pour le job. |
--notebook-container-image-java-jars
|
Liste de fichiers JAR Java à ajouter au chemin de classe. Les entrées valides incluent les URI Cloud Storage et les binaires JAR. Par exemple, gs ://BUCKET_NAME/my/path/to/file.jar . |
--notebook-container-image-properties
|
Les propriétés à définir sur les fichiers de configuration du daemon. Les clés de propriété sont spécifiées au format prefix :property . Exemple :: core :hadoop.tmp.dir . Pour en savoir plus, consultez la section Propriétés du cluster. |
Cloud VPC utilisé pour exécuter l'infrastructure | |
--notebook-vpc-network-tags |
Liste des tags réseau à appliquer au job. |
Identifiant du réseau VPC Cloud. Vous pouvez spécifier au maximum l'un des éléments suivants. | |
--notebook-vpc-network-name
|
Réseau VPC Cloud dans lequel la tâche s'exécute. Par défaut, le réseau VPC Cloud nommé Default dans le projet est utilisé. |
--notebook-vpc-sub-network-name |
Sous-réseau VPC Cloud dans lequel la tâche est exécutée. |
Emplacement des sorties de notebook | |
--execution-args
|
Pour les tâches de notebook, l'argument suivant est obligatoire et doit être transmis en tant que TASK_ARGS . |
--execution-args=^::^TASK_ARGS="--output_location,CLOUD_STORAGE_URI_OF_OUTPUT_DIRECTORY" |
Voici un exemple de commande gcloud
utilisée pour planifier les notebooks:
gcloud dataplex tasks create sample-task --project=sample-project --location=us-central1 --lake=my-lake --trigger-type=ON_DEMAND --notebook="projects/my-project-id/locations/us-central1/lakes/my-lake/content/my-notebook.ipynb" --execution-service-account=associated-service-account@sample-project.iam.gserviceaccount.com --execution-args=^::^TASK_ARGS="--output_location,gs://my-bucket/Demo" --notebook-batch-executors-count=2 --notebook-batch-max-executors-count=5 --notebook-container-image=container-image --notebook-container-image-java-jars=java-jar1,java-jar-2
REST
Utilisez APIs Explorer pour créer une tâche.
Gérer les programmations des notebooks
Console
Ouvrir la liste de toutes les planifications de notebooks
Dans la console Google Cloud, accédez à la page Processus de Dataplex.
Cliquez sur l'onglet Notebooks programmés pour afficher la liste des planifications de scripts SQL.
Ouvrir la liste de toutes les planifications d'un notebook spécifique
Dans la console Google Cloud, accédez à la page Explorer de Dataplex.
Sélectionnez le notebook concerné.
Dans le menu Planning, cliquez sur Afficher les programmations.
L'onglet Requêtes programmées s'ouvre et affiche la liste des planifications de notebooks filtrées selon le notebook sélectionné.
Afficher les détails d'une programmation de notebooks
Accédez à l'onglet Notebooks programmés, puis sélectionnez la programmation de notebook requise.
Cliquez sur les détails de la programmation du notebook et sur un aperçu de son contenu, puis sur Détails.
Activer et désactiver une planification de notebooks
Accédez à l'onglet Notebooks programmé et sélectionnez la programmation de notebook requise.
Cliquez sur Désactiver pour désactiver une programmation de notebooks actifs.
Cliquez sur Activer pour activer une programmation de notebooks inactifs.
Supprimer une programmation de notebooks existante
Accédez à l'onglet Notebooks programmé et sélectionnez la programmation de notebook requise.
Cliquez sur Supprimer pour supprimer définitivement une programmation de notebooks existante.
Afficher les journaux et gérer une programmation de notebooks
Accédez à l'onglet Notebooks programmé et sélectionnez la programmation de notebook requise.
Cliquez sur l'onglet Jobs (Tâches), puis sur l'ID de tâche de l'exécution du notebook planifiée que vous souhaitez afficher.
Dans la section Preview Output (Aperçu du résultat), examinez le résultat de l'exécution du notebook.
Cliquez sur Afficher les journaux pour afficher les journaux liés à l'exécution du notebook planifié sélectionnée dans Cloud Logging.
Cliquez sur l'ID de lot Dataproc pour ouvrir la page "Dataproc" dans la console Google Cloud. Accédez aux détails de la session Dataproc sans serveur correspondante.
Cliquez sur Gérer dans Cloud Storage à côté du libellé Résultat pour ouvrir la page Cloud Storage dans la console Google Cloud. Accédez aux détails du bucket Cloud Storage correspondant contenant le résultat de l'exécution du notebook.
gcloud
Pour en savoir plus sur la surveillance des notebooks programmés à l'aide de la gcloud CLI, consultez l'onglet gcloud de la section Surveiller votre tâche.
Pour en savoir plus sur la gestion des notebooks programmés à l'aide de la gcloud CLI, consultez l'onglet gcloud dans Gérer la planification.
REST
Pour en savoir plus sur la surveillance des notebooks programmés à l'aide de REST, consultez l'onglet REST dans Surveiller votre tâche.
Pour en savoir plus sur la gestion des notebooks programmés à l'aide de REST, consultez l'onglet REST dans Gérer la planification.
Sortie d'un notebook planifié
Le résultat de chaque exécution d'un notebook planifié est stocké à l'emplacement que vous avez spécifié pour le dossier Cloud Storage, selon la structure suivante:
CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER
Étapes suivantes
- Planifiez des tâches Spark et SparkSQL personnalisées.
- Configurez des alertes et des notifications pour les tâches Dataplex.