Cette rubrique explique comment créer une tâche planifiée dans Data Studio en utilisant un job MaxCompute comme exemple. Ce guide vous permet de démarrer rapidement avec les fonctionnalités de base de Data Studio.
Prérequis
Vous avez lié la source de données requise. Pour plus d'informations, consultez Préparatifs : Lier un moteur de calcul ou un cluster.
Vous disposez des autorisations du rôle Development. Pour savoir comment accorder des autorisations, consultez Ajouter des membres à un espace de travail et gérer leurs rôles.
Cette rubrique utilise un nœud ODPS SQL comme exemple. Par conséquent, l'espace de travail doit être lié à une source de données MaxCompute.
Contexte
Data Studio de DataWorks offre une interface de développement visuelle pour divers moteurs de calcul, tels que MaxCompute, Hologres, EMR et CDH. Il prend en charge le développement intelligent de code, le nettoyage des données, le traitement des données et le déploiement standardisé des tâches, garantissant ainsi un développement des données efficace et stable. Pour plus d'informations, consultez Data Studio (hérité).
En général, le processus d'écriture des données métier brutes dans DataWorks et leur transformation en une table de résultats finale comprend les étapes suivantes :
-
Créez plusieurs tables de données dans DataWorks. Par exemple :
Une table source pour stocker les données synchronisées depuis d'autres sources de données.
Une table de résultats pour stocker les données nettoyées et traitées par DataWorks.
Créez une tâche de synchronisation pour importer les données métier dans la table source.
Créez un nœud de calcul pour nettoyer et traiter les données de la table source par couches, puis écrivez le résultat de chaque couche dans la table de résultats correspondante.
Vous pouvez également uploader directement des données locales vers la table source dans DataWorks après avoir créé la table. Vous pouvez ensuite utiliser un nœud de calcul pour nettoyer et traiter les données, puis stocker les résultats dans la table de résultats. L'exemple de cette rubrique implique l'upload de données locales et leur nettoyage via un nœud de calcul.
Accéder à Data Studio
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Data Development.
Procédure
-
Le développement des données s'organise autour de workflows. Vous devez créer un workflow avant de commencer à développer du code.
-
DataWorks vous permet de créer des tables visuellement, qui sont ensuite affichées dans une structure de répertoire. Avant de commencer le développement des données, vous devez créer une table dans le moteur de calcul pour stocker les résultats du nettoyage des données.
-
DataWorks encapsule les tâches de différents moteurs de calcul dans différents types de nœuds. Vous pouvez sélectionner le type de nœud approprié en fonction de vos besoins métier.
-
Sur la page d'édition du nœud, rédigez votre logique métier en utilisant la syntaxe du moteur de base de données du nœud.
-
Étape 5 : Configurer les paramètres de planification du nœud.
Définissez les propriétés de planification pour exécuter le nœud périodiquement.
-
DataWorks propose trois méthodes pour déboguer votre code et vérifier sa logique : Exécution rapide pour les extraits de code, Exécuter et Exécution avancée.
-
Étape 7 : Enregistrer et soumettre le nœud.
Après avoir débogué le nœud, vous devez l'enregistrer et le soumettre.
-
Étape 8 : Exécuter des tests de fumée.
Pour garantir l'exécution efficace des tâches de production et éviter le gaspillage de ressources de calcul, exécutez des tests de fumée sur votre tâche dans l'environnement de développement afin de vérifier son exactitude avant le déploiement.
-
DataWorks n'exécute que les tâches planifiées déployées dans l'environnement de production. Une fois les tests de fumée réussis, vous devez déployer la tâche dans le système de planification de production.
Étape 1 : Créer un workflow
DataWorks organise le développement des données autour de workflows. Les workflows utilisent des panneaux de type conteneur pour les nœuds de développement, regroupant les outils connexes, les optimisations et les actions de gestion autour d'un objet central. Cette approche simplifie le développement et la gestion. Vous pouvez regrouper les tâches métier connexes dans un seul workflow pour répondre à vos exigences.
-
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Data Development.
-
Créez un workflow.
Vous pouvez créer un workflow de l'une des deux manières suivantes :
Méthode 1 : Placez le curseur sur l'icône
et cliquez sur Create Workflow.Méthode 2 : Dans l'arborescence de navigation de gauche de Data Studio, faites un clic droit sur Workflow et sélectionnez Create Workflow.
-
Saisissez un nom et une description pour le workflow, puis cliquez sur Create.
Ce tutoriel crée un workflow nommé
Create your first scheduled task. Dans un scénario réel, vous devez planifier vos workflows en fonction de vos exigences métier.RemarquePour plus d'informations sur les workflows, consultez Créer et gérer des workflows.
Étape 2 : Créer des tables
Les nœuds de Data Studio nettoient et traitent vos données source. Par conséquent, vous devez d'abord créer des tables dans le moteur de calcul pour stocker les résultats du nettoyage des données et définir la structure de la table.
-
Créez les tables.
Dans le workflow créé à l'étape 1, développez le sous-répertoire, faites un clic droit sur , puis sélectionnez Create Table.
Configurez le nom de la table, l'instance du moteur et les autres informations.
Dans ce tutoriel, les deux tables suivantes sont créées.
|
**Nom de la table**
|
**Description**
| | --- | --- | |
`bank_data`
|
Stocke les données métier brutes.
| |
`result_table`
|
Stocke les résultats des données nettoyées.
|RemarquePour les instructions de création de table, consultez Instructions de création de table.
Pour plus d'informations sur la création visuelle de tables pour divers moteurs, tels que la création de tables MaxCompute ou EMR, consultez Créer une table.
-
Configurez la structure de la table.
Accédez à la page d'édition de la table, basculez en mode DDL et utilisez les instructions DDL pour configurer la structure de la table. Une fois la structure de la table générée, saisissez un Display Name pour la table dans la section General. Ensuite, soumettez-la à la fois à l'environnement de développement et à l'environnement de production. Après avoir soumis la table, vous pouvez la visualiser dans le projet de la source de données de l'environnement correspondant. Pour afficher les informations sur la source de données liée pour chaque environnement, consultez Lier des ressources de calcul MaxCompute.
RemarqueLes opérations sur les tables, telles que la création et les mises à jour, ne prennent effet dans le moteur de calcul qu'après leur soumission à l'environnement correspondant.
Vous pouvez également configurer visuellement la structure de la table en fonction de vos besoins métier et des instructions à l'écran. Pour plus d'informations sur la création visuelle de tables, consultez Créer et utiliser des tables MaxCompute.
L'instruction suivante sert de référence pour générer la structure de la table
bank_data.CREATE TABLE IF NOT EXISTS bank_data ( age BIGINT COMMENT 'Age', job STRING COMMENT 'Job type', marital STRING COMMENT 'Marital status', education STRING COMMENT 'Education level', default STRING COMMENT 'Whether the user has a credit card', housing STRING COMMENT 'Housing loan', loan STRING COMMENT 'Personal loan', contact STRING COMMENT 'Contact method', month STRING COMMENT 'Month of the year', day_of_week STRING COMMENT 'Day of the week', duration STRING COMMENT 'Last contact duration, in seconds', campaign BIGINT COMMENT 'Number of contacts performed during this campaign', pdays DOUBLE COMMENT 'Days since the last contact from a previous campaign', previous DOUBLE COMMENT 'Number of contacts performed before this campaign', poutcome STRING COMMENT 'Outcome of the previous marketing campaign', emp_var_rate DOUBLE COMMENT 'Employment variation rate', cons_price_idx DOUBLE COMMENT 'Consumer price index', cons_conf_idx DOUBLE COMMENT 'Consumer confidence index', euribor3m DOUBLE COMMENT 'Euribor 3-month rate', nr_employed DOUBLE COMMENT 'Number of employees', y BIGINT COMMENT 'Whether the client has subscribed to a term deposit' );L'instruction suivante sert de référence pour générer la structure de la table
result_table.CREATE TABLE IF NOT EXISTS result_table ( education STRING COMMENT 'Education level', num BIGINT COMMENT 'Number of people' ) PARTITIONED BY ( day STRING, hour STRING ); -
Uploadez les données.
Stockez vos données métier brutes dans une table DataWorks. Dans cet exemple, le fichier local banking.txt est uploadé vers la table
bank_datadans DataWorks pour simuler un scénario réel d'écriture de données. Dans l'assistant d'importation de données, sélectionnez d'abord la table cible bank_data, confirmez que le schéma de la table inclut des champs tels que age, job, marital, education, default et housing, puis définissez les paramètres de partition. Ensuite, uploadez le fichier local banking.txt, définissez le format de fichier sur CSV, le délimiteur sur une virgule, le jeu de caractères sur GBK et la ligne de début d'importation sur 1, puis cochez la case « Première ligne est l'en-tête ». Enfin, sélectionnez Match by Name comme méthode de mappage des champs, confirmez que le mappage entre les champs source et cible est correct, puis cliquez sur Import Data pour terminer l'opération. Pour plus d'informations sur l'upload de données, consultez Uploader des données locales vers la table bank_data.
Étape 3 : Créer un nœud
Sélectionnez un type de nœud approprié pour le développement en fonction de vos exigences métier.
Les nœuds DataWorks sont classés en nœuds de synchronisation de données et nœuds de calcul. Dans un processus de développement typique, vous utilisez d'abord une tâche de synchronisation par lots pour synchroniser les données des bases de données métier vers un entrepôt de données. Ensuite, vous utilisez les nœuds de calcul DataWorks pour nettoyer et traiter les données des tables de l'entrepôt.
-
Créez un nœud.
Vous pouvez créer un nœud de l'une des deux manières suivantes :
-
Méthode 1 : Créer depuis l'arborescence de navigation.
Dans l'arborescence de navigation, recherchez le workflow créé à l'étape 1 sous Workflow.
Faites un clic droit sur le moteur souhaité et sélectionnez un nœud approprié sous Create Node.
-
Méthode 2 : Créer depuis le panneau du workflow.
Dans l'arborescence de navigation, recherchez le workflow créé à l'étape 1 sous Workflow.
Double-cliquez sur le workflow pour ouvrir son panneau.
Dans le volet de navigation de gauche du panneau, cliquez sur le nœud souhaité ou faites-le glisser sur le canevas.
-
-
Configurez l'instance du moteur du nœud, son nom et d'autres paramètres.
Ce tutoriel crée un nœud ODPS SQL nommé
result_table, identique au nom de la table de résultats créée à l'étape 2.RemarqueLorsque vous utilisez les nœuds DataWorks pour le développement des données, vous nettoyez les données avec un nœud de développement et stockez les résultats dans une table de résultats. Nommez le nœud d'après la table de résultats qu'il alimente pour faciliter la localisation des données de table produites par le nœud.
Dans la section Common Nodes du panneau Data Studio, faites glisser le nœud ODPS SQL sur le canevas à droite pour le créer.
Étape 4 : Modifier le nœud
Recherchez le nœud créé à l'étape 3 dans l'arborescence de navigation du workflow ou sur le panneau du workflow. Double-cliquez sur le nœud pour ouvrir l'éditeur. Selon le type de nœud, rédigez votre logique métier en utilisant la syntaxe de la base de données correspondante.
Dans ce tutoriel, le nœud result_table écrit les données d'une partition spécifique de la table bank_data dans la partition correspondante de la table result_table. La partition cible est définie à l'aide des variables day et hour.
Pendant le développement du code, si vous devez remplacer dynamiquement les paramètres dans un contexte de planification, vous pouvez définir des variables dans votre code en utilisant le format
${your_variable_name}. Vous pouvez ensuite attribuer une valeur à cette variable lors de la configuration des paramètres de planification à l'étape 5.Pour plus d'informations sur les paramètres de planification, consultez Formats pris en charge pour les paramètres de planification.
Pour plus d'informations sur la syntaxe de développement pour différents types de nœuds, consultez Créer et utiliser des nœuds.
--@exclude_output=xc_DPE_E2.result_table
--@exclude_input=bank_data
--odps sql
--***********************************************************--
--author:xxx
--create time:2022-08-11 14:33:23
--***********************************************************--
INSERT OVERWRITE TABLE result_table partition (day='${day}', hour='${hour}')
SELECT education
, COUNT(marital) AS num
FROM bank_data
WHERE day='${day}' and hour='${hour}'
GROUP BY education;
Le code suivant est fourni à titre de référence.
INSERT OVERWRITE TABLE result_table partition (day='${day}', hour='${hour}')
SELECT education
, COUNT(marital) AS num
FROM bank_data
GROUP BY education;
Étape 5 : Configurer les paramètres de planification
Configurez les propriétés de planification pour exécuter le nœud périodiquement. Sur la page de l'éditeur de nœud, cliquez sur Scheduling dans le volet de navigation de droite et configurez les propriétés en fonction de vos exigences métier.
|
Paramètre |
Description |
|
DataWorks affiche automatiquement le nom, l'ID, le type et le propriétaire du nœud. Ces propriétés ne nécessitent pas de configuration distincte. Remarque
|
|
|
Définissez les paramètres utilisés pour la planification du nœud. DataWorks fournit des paramètres intégrés et personnalisés pour l'attribution dynamique de paramètres lors de la planification des tâches. Si vous avez défini des variables dans le code à l'étape 4, vous pouvez leur attribuer des valeurs ici. Ce tutoriel attribue des valeurs aux variables de l'étape 4 pour écrire les données horaires de la table
Après avoir configuré ces paramètres dans la section Parameters du volet Scheduling, les valeurs attribuées à |
|
|
Les propriétés temporelles définissent comment et quand le nœud s'exécute. Utilisez ces paramètres pour configurer la génération périodique d'instances, le cycle de planification, l'heure d'exécution, la prise en charge de la réexécution et la période de délai d'attente pour l'arrêt automatique des tâches. Remarque
Dans ce tutoriel, le nœud |
|
|
Configurez le groupe de ressources de planification à utiliser lorsque la tâche est déployée dans l'environnement de production pour la planification. Ce tutoriel utilise le groupe de ressources serverless par défaut fourni lors de l'activation de DataWorks. Pour plus d'informations, consultez Utiliser un groupe de ressources serverless. |
|
|
Définissez les dépendances en amont et en aval pour la planification des nœuds. Configurez les dépendances en fonction de la lignée des données. Cela garantit que le nœud actuel ne s'exécute qu'après la réussite des tâches en amont qui produisent les données requises, lui permettant ainsi d'interroger correctement les données de la table en amont. Remarque
Dans ce tutoriel, supposons qu'une tâche extérieure au workflow actuel produise la table |
|
|
Définit comment les paramètres sont transmis entre les nœuds en amont et en aval. Un nœud en aval peut utiliser cette fonctionnalité pour récupérer des valeurs d'un nœud en amont. Remarque
Cette fonctionnalité est généralement utilisée avec des nœuds d'assignation ou des paramètres d'assignation.
|
Étape 6 : Déboguer le code
Vous pouvez utiliser les méthodes suivantes pour déboguer la logique de votre code et vous assurer qu'elle est correcte.
|
Méthode |
Description |
Recommandation |
|
Exécute rapidement un extrait de code sélectionné. |
Utilisez cette méthode lorsque vous devez exécuter rapidement un morceau de code. |
|
|
Barre d'outils : Run ( |
Attribue des valeurs constantes aux variables pour un test d'exécution. Remarque
La première fois que vous cliquez sur Run sur un nouveau nœud, vous devez attribuer manuellement des valeurs constantes aux variables du code dans la boîte de dialogue. Cette attribution est enregistrée et n'a pas besoin d'être répétée pour les exécutions suivantes. |
Utilisez cette méthode si vous devez déboguer fréquemment l'ensemble du code. |
|
Barre d'outils : Advanced Run ( |
Nécessite d'attribuer des valeurs constantes aux variables pour chaque test d'exécution. |
Utilisez cette méthode si vous devez modifier les attributions de variables pour un test d'exécution. |
Ce tutoriel utilise Advanced run pour tester les résultats de l'exécution pour 2022.09.07 14:00. Dans la boîte de dialogue Parameters, sélectionnez un Scheduling Resource Group (par exemple, Public Scheduling Resource Group). Dans la section Custom Parameters, définissez les valeurs des paramètres (par exemple, day=20220907 et hour=14). Cliquez sur OK pour exécuter le code. Le journal d'exécution indique que l'exécution a réussi.
Étape 7 : Enregistrer et soumettre le nœud
Après avoir configuré et testé le nœud, vous devez enregistrer la configuration et soumettre le nœud à l'environnement de développement.
Vous ne pouvez soumettre le nœud qu'après avoir configuré l'Rerun attribute et les Parent Nodes à l'étape 5.
Cliquez sur l'icône
dans la barre d'outils pour enregistrer la configuration du nœud.Cliquez sur l'icône
dans la barre d'outils pour soumettre le nœud à l'environnement de développement.
Étape 8 : Exécuter des tests de fumée
Effectuez des tests de fumée avant de déployer une tâche pour garantir l'exécution efficace des tâches de production et éviter le gaspillage de ressources de calcul. Les tests de fumée s'exécutent dans l'environnement de développement ; vous devez donc d'abord soumettre le nœud à cet environnement. Après la soumission :
Cliquez sur l'icône
dans la barre d'outils et configurez la date métier dans la boîte de dialogue de test de fumée.Une fois le test de fumée terminé, cliquez sur l'icône
dans la barre d'outils pour afficher les résultats du test.
Ce tutoriel teste si la configuration des paramètres de planification répond aux attentes. Le nœud result_table est planifié pour s'exécuter toutes les heures de 00:00 à 23:59. Par conséquent, la configuration illustrée ci-dessous générera deux instances horaires, avec des heures d'exécution planifiées de 00:00 et 01:00 respectivement.
Une instance est un instantané d'une tâche généré lorsqu'une tâche périodique s'exécute selon son planning.
Étant donné que le nœud
result_tableest configuré comme une tâche horaire, vous devez non seulement configurer la date métier pour le test de fumée, mais également sélectionner la plage horaire des instances à exécuter.Pour plus d'informations sur les tests de fumée, consultez Exécuter des tests de fumée.
Cliquez sur l'icône Smoke testing (☑) dans la barre d'outils supérieure. Dans le panneau de test de fumée qui s'affiche, définissez la Business Date (par exemple, 2022-09-01), l'Start Time (00:00) et l'End Time (01:00).
Étape 9 : Déployer la tâche
Dans un espace de travail en mode de base, les tâches sont planifiées périodiquement après soumission. Dans un espace de travail en mode standard, une tâche soumise passe à l'état « à déployer ». Vous devez ensuite déployer la tâche dans l'environnement de production pour activer la planification périodique.
DataWorks prend uniquement en charge la planification automatique pour les tâches déployées dans l'environnement de production. Une fois les tests de fumée réussis, vous devez déployer la tâche dans le système de planification de production pour activer la planification périodique.
Pour plus d'informations sur les différences entre les modes d'espace de travail, consultez Différences entre les modes d'espace de travail.
Dans un espace de travail en mode standard, toutes les modifications soumises dans Data Studio, telles que la création, la mise à jour ou la suppression de nœuds, de ressources et de fonctions, sont envoyées à la page de déploiement des tâches en attente de déploiement. Pour appliquer ces modifications, vous devez accéder à et créer un package de déploiement pour les publier dans l'environnement de production. Les modifications ne deviennent actives qu'après un déploiement réussi. Pour plus d'informations, consultez Déployer des tâches.
Le tableau suivant décrit le processus de déploiement.
|
Rubrique de déploiement |
Description |
|
Contrôle du processus de déploiement |
Les autorisations de rôle et les contrôles de processus contraignent les opérations de déploiement. Après avoir effectué un déploiement, assurez-vous que l'état du package de déploiement est « réussi ». Remarque
|
|
Contrôle du temps d'effet du déploiement |
Pour les déploiements effectués pendant la fenêtre quotidienne de génération d'instances ( Remarque
Cette restriction affecte à la fois les modes de génération d'instances Next Day et Immediately After Deployment. Pour plus d'informations sur ces modes, consultez Modes de génération d'instances. |
Étapes suivantes
Vous pouvez accéder à pour afficher les tâches de planification par lots déployées dans l'environnement de production et effectuer les opérations O&M associées. Pour plus d'informations, consultez O&M de base pour les tâches périodiques.