Tous les produits
Search
Centre de documentation

DataWorks:Data Studio : Pour les développeurs

Dernière mise à jour :Aug 10, 2026

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

Remarque

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 :

  1. 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.

  2. Créez une tâche de synchronisation pour importer les données métier dans la table source.

  3. 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 Data Development and O&M > Data Development 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

  1. Étape 1 : Créer un workflow.

    Le développement des données s'organise autour de workflows. Vous devez créer un workflow avant de commencer à développer du code.

  2. Étape 2 : Créer des tables.

    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.

  3. Étape 3 : Créer un nœud.

    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.

  4. Étape 4 : Modifier le nœud.

    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.

  5. É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.

  6. Étape 6 : Déboguer le code.

    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.

  7. Étape 7 : Enregistrer et soumettre le nœud.

    Après avoir débogué le nœud, vous devez l'enregistrer et le soumettre.

  8. É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.

  9. Étape 9 : Déployer la tâche.

    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.

  1. Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur Data Development and O&M > Data Development 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.

  2. 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.

  3. 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.

    Remarque

    Pour 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.

  1. Créez les tables.

    1. Dans le workflow créé à l'étape 1, développez le sous-répertoire, faites un clic droit sur MaxCompute > Table, puis sélectionnez Create Table.

    2. 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.
    |
    Remarque
    • Pour 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.













  2. 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.

    Remarque
    • Les 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
    );
  3. 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_data dans 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.

Remarque

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.

  1. 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.

      1. Dans l'arborescence de navigation, recherchez le workflow créé à l'étape 1 sous Workflow.

      2. 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.

      1. Dans l'arborescence de navigation, recherchez le workflow créé à l'étape 1 sous Workflow.

      2. Double-cliquez sur le workflow pour ouvrir son panneau.

      3. Dans le volet de navigation de gauche du panneau, cliquez sur le nœud souhaité ou faites-le glisser sur le canevas.

  2. 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.

    Remarque

    Lorsque 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.

Remarque
  • 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

Propriétés de base

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
  • Le propriétaire est par défaut l'utilisateur actuel. Vous pouvez le modifier selon vos besoins. Seuls les membres de l'espace de travail actuel peuvent être sélectionnés comme propriétaires.

  • DataWorks génère automatiquement un ID après la soumission du nœud.

Paramètres

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 bank_data du jour précédent (date métier) dans la partition horaire correspondante de la table result_table.

  • Attribuez ${yyyymmdd} à la variable day.

  • Attribuez $[hh24] à la variable hour.

Après avoir configuré ces paramètres dans la section Parameters du volet Scheduling, les valeurs attribuées à day et hour remplaceront automatiquement les variables ${day} et ${hour} dans le code SQL lors d'une exécution planifiée.

Propriétés temporelles

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
  • Vous devez configurer l'Rerun attribute pour le nœud avant de pouvoir le soumettre.

  • Même si un nœud est planifié pour s'exécuter avant son nœud en amont, il ne démarrera pas tant que le nœud en amont n'aura pas été exécuté avec succès.

Dans ce tutoriel, le nœud result_table est configuré pour démarrer à 00:00 et est planifié toutes les heures. Cela signifie que chaque heure, il écrit les données de la table bank_data du jour précédent (date métier) dans la partition horaire correspondante de la table result_table. Dans la section Time Properties du volet Scheduling, définissez Instance Generation sur Immediately After Deployment, Schedule Type sur Normal Scheduling et Recurrence sur Hour. Dans les paramètres de récurrence détaillés, définissez l'Start Time sur 00:00, l'Time Interval sur 1 heure et l'End Time sur 23:59. L'expression cron correspondante est 00 00 00-23/1 ?.

Propriétés des ressources

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épendances

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
  • Si un nœud utilise une instruction select pour interroger des données de table qui ne sont pas produites par un nœud planifié DataWorks, vous pouvez définir Auto Parse sur Non et utiliser le nœud racine de l'espace de travail pour planifier l'exécution du nœud actuel.

  • Si le nœud actuel utilise une instruction select pour interroger des données de table produites par une autre tâche, vous pouvez configurer la dépendance sur le nœud en amont (qui produit les données) de l'une des manières suivantes, afin que le nœud en amont déclenche l'exécution du nœud actuel :

    • Si le nœud en amont ne se trouve pas dans le workflow ou l'espace de travail actuel : Dans la section Parent Nodes du nœud actuel, saisissez le Output Name du nœud en amont.

    • Si le nœud en amont se trouve dans le workflow actuel : Configurez la dépendance en faisant glisser une ligne de connexion entre les nœuds sur le panneau du workflow.

Dans ce tutoriel, supposons qu'une tâche extérieure au workflow actuel produise la table bank_data que le nœud result_table interroge. Dans ce cas, vous devez configurer le nœud racine de l'espace de travail comme dépendance en amont pour le nœud result_table. Cette configuration permet au nœud racine de déclencher l'exécution du nœud result_table.

(Facultatif) Contexte du nœud

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

Ligne de code : Exécution rapide

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 (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 (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.

Remarque

Vous ne pouvez soumettre le nœud qu'après avoir configuré l'Rerun attribute et les Parent Nodes à l'étape 5.

  1. Cliquez sur l'icône 保存 dans la barre d'outils pour enregistrer la configuration du nœud.

  2. 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 :

  1. 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.

  2. 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.

Remarque
  • 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_table est 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.

Remarque
  • 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 à Task Deployment > Create Deploy Task 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
  • Après le déploiement, vérifiez l'état du package de déploiement sur la page Deployment Packages.

  • Les développeurs peuvent uniquement créer des packages de déploiement. Le déploiement proprement dit nécessite des autorisations O&M.

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 (22:00 à 24:00), les modifications ne s'appliqueront qu'aux instances planifiées à partir du surlendemain.

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 à Operation Center > Auto Triggered Task O&M 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.