Tous les produits
Search
Centre de documentation

DataWorks:Paramètres de planification

Dernière mise à jour :Oct 10, 2026

Cette rubrique répond aux questions fréquentes concernant les paramètres de planification.

Comment obtenir l'heure précédente avec un paramètre de planification lorsque le calcul franchit la limite du jour ?

  • Problème

    Si le format de partition de la table est day=yyyymmdd,hour=hh24, la tâche lit les données de l'heure précédente. Les paramètres $[yyyymmdd] $[hh24-1/24] fonctionnent correctement, sauf à minuit, où l'heure devient 23 du jour actuel. Comment gérer ce cas ?

  • Solution

    Modifiez la formule de calcul. Définissez datetime sur $[yyyymmdd-1/24], et conservez la formule de calcul pour hour sous la forme $[hh24-1/24].

    Configuration

    • Dans le code, définissez day=datetime, hour={hour},

    • Affectez les paramètres du nœud comme suit : datetime=[yyyymmdd-1/24],hour=[hh24-1/24]

    Scénario en temps réel

    • Si une instance est planifiée pour 2021-7-21 00:00:00, la soustraction d'une heure fait basculer vers le jour précédent. Ainsi, $[yyyymmdd-1/24] correspond à 20210720 et $[hh24-1/24] à 23.

    • Si une instance est planifiée pour 2021-7-21 01:00:00, la soustraction d'une heure reste dans le jour actuel. Ainsi, $[yyyymmdd-1/24] correspond à 20210721 et $[hh24-1/24] à 00.

Comment gérer les espaces dans un format de partition contenant l'année, le mois, le jour, l'heure, la minute et la seconde, tel que pt=yyyy-mm-dd hh24:mi:ss ?

Important

L'affectation des paramètres de planification ne prend pas en charge les espaces.

Utilisez deux variables personnalisées :

  • Année, mois et jour : Paramètre datetime=$[yyyy-mm-dd]

  • Heure, minute et seconde : Paramètre hour=$[hh24:mi:ss]

Après avoir obtenu séparément la date et l'heure, concaténez-les avec un espace dans le code sous la forme pt=${datetime} ${hour}. Par exemple, utilisez cette instruction SQL : select * from xc_demo_partition where dt='${key1} ${key2}';. Sous Schedule > Parameters, configurez key1=$[yyyymmdd] key2=$[hh24miss].

Un nœud est planifié quotidiennement à 20 h 00 et son paramètre utilise l'heure planifiée ($cyctime ou $[yyyymmddhh24miss]). Une défaillance en amont retarde son démarrage jusqu'à 00 h 00 le lendemain. Le paramètre se résout-il en 20 h 00 ou 00 h 00 ?

L'heure planifiée correspond au moment où une instance est censée s'exécuter. L'heure de démarrage réelle peut différer, par exemple en raison de l'attente de ressources. L'heure planifiée est fixe et ne change pas avec l'heure d'exécution réelle.

Les paramètres de planification utilisent l'heure planifiée de l'instance. Leurs valeurs résolues sont définies lors de la génération de l'instance et ne changent pas avec son heure d'exécution réelle. Dans Operation Center > Periodic Instances, le panneau Properties affiche Scheduled Time comme l'heure d'exécution prévue, par exemple 2021-07-13 00:00:00. Comparez-la avec Start Time, par exemple 00:00:27. Dans Data Development, configurez Schedule > Parameters avec var1=$bizdate var2=$cyctime var3=$[yyyymmdd] var4=$[yyyymmddhh24miss], et conservez la formule de calcul pour Set the scheduling cycle sur Day et and the scheduled run time sur 00:00. Dans le code, utilisez select '${var1}' '${var2}'; pour vérifier séparément les valeurs de la date métier et de l'heure planifiée.

Comment configurer les paramètres temporels dans un nœud ODPS Spark ?

Lors de la création d'un nœud ODPS Spark, configurez ses paramètres sur la page d'édition. Le système utilise l'ordre configuré.

Après avoir défini les variables dans le code, cliquez sur Schedule à droite de l'éditeur et affectez les valeurs dans le panneau des paramètres. Pour plus d'informations sur les paramètres de planification, consultez Formats des paramètres de planification. Par exemple, saisissez Parameters dans le champ du nœud ODPS Spark : $(var). Ajoutez une ligne au tableau des paramètres avec le nom du paramètre var et la valeur $bizdate. Cliquez sur Scheduling Parameter Preview pour vérifier les valeurs résolues.

Comment utiliser les valeurs des paramètres de planification dans des nœuds qui ne peuvent pas les traiter directement ?

Certains nœuds, tels que les nœuds de synchronisation par lots, ne peuvent pas utiliser directement le résultat d'un paramètre de planification et nécessitent une conversion supplémentaire. Configurez un nœud d'affectation en amont. Celui-ci doit référencer le paramètre de planification, convertir le résultat, puis transmettre la valeur finale au nœud aval via le contexte du nœud.

Quelle est la différence entre l'obtention d'une date via une fonction de date MaxCompute et via un paramètre de planification ?

  • Une fonction de date MaxCompute renvoie l'heure affichée par la machine exécutant la tâche de calcul. L'exécution de la même instance à des moments différents peut produire des résultats différents.

  • Un paramètre de planification est calculé à partir de l'heure planifiée. Son résultat reste identique, quelle que soit l'heure d'exécution de la même instance.

Comment tester les paramètres de planification dans Data Development ?

Le système de planification remplace automatiquement les paramètres de planification. Pour les tester dans Data Development comme ils le seraient par le planificateur, utilisez un test de fumée dans l'environnement de développement.

Remarque

Les tâches Data Integration ne disposent pas de fonctionnalité de test dans l'environnement de développement. Pour tester le remplacement des paramètres pour ces tâches, créez un nœud SQL et testez d'abord les paramètres indépendamment avec un test de fumée dans l'environnement de développement. Une fois les résultats conformes aux attentes, utilisez les paramètres dans le nœud Data Integration.

FAILED: ODPS-0130161:[1,84] Parse exception - invalid token '$' Problème

Cause : Le paramètre de planification n'a pas reçu de valeur, ou l'affectation a échoué.

Solution Solution :

  1. Vérifiez si le paramètre de planification possède une valeur.

  2. Vérifiez si le paramètre configuré respecte les exigences. Pour plus d'informations, consultez Formats des paramètres de planification.

Important

Après avoir modifié les paramètres, validez et publiez la tâche. Vérifiez ensuite le panneau Properties de la tâche périodique dans Operation Center en production pour confirmer la présence des dernières valeurs.

params format error,please check your params(key=values)

Solution :

  1. Vérifiez si la variable possède une valeur.

  2. Vérifiez la présence d'espaces superflus dans le paramètre de planification.

  3. Ne combinez pas un point (.) et des caractères chinois dans le nom d'un nœud.

Exemple : time①=②$[yyyymmdd③hh24:mi:ss]time1=$[yyyymmdd]④time2=$[hh24:mi:ss] (①②③④ indiquent l'emplacement des espaces).

  • Ne mettez pas d'espaces autour du signe égal (=) dans un paramètre de planification ; voir ① et ②.

  • Les espaces ne sont pas pris en charge au sein d'une affectation de paramètre de planification ; voir ③.

  • Séparez deux paramètres de planification par un seul espace ; voir ④.

Quelles sont les différences d'affectation des valeurs entre Run, Advanced Run et un test de fumée dans l'environnement de développement ?

Opération

Description

Run

Lors de la première exécution du nœud, affectez manuellement une constante à la variable ; cette première valeur est enregistrée. Si vous modifiez le code, la variable utilise toujours la valeur attribuée lors de la première exécution.

Advanced Run

Pour une exécution avancée, affectez manuellement des constantes aux variables dans le code actuel. Si vous modifiez les variables dans le code, utilisez Advanced Run pour les affecter à nouveau.

Remarque

Pour modifier le groupe de ressources d'exécution de la tâche, utilisez Advanced Run.

Test de fumée dans l'environnement de développement

Sélectionnez manuellement une date métier pour simuler la planification automatique et obtenir les valeurs des paramètres pour cette date.

Dans l'éditeur de code de la page Data Development, utilisez des variables intégrées, telles que ${bdp.system.cyctime}, ou des variables personnalisées, telles que ${var1}. Affectez les valeurs dans le panneau Schedule > Parameters à droite, par exemple var1=$bizdate. Les variables sont remplacées automatiquement lorsque vous utilisez Run ou Advanced Run. Pour un test de fumée dans l'environnement de développement, choisissez une date métier dans la barre d'outils supérieure pour simuler la planification.

Comment afficher le remplacement des paramètres de planification dans l'environnement de production ?

Après avoir modifié un paramètre de planification dans Data Development et validé et publié la tâche, vérifiez sa valeur dans le panneau Properties de la tâche périodique dans Operation Center en production. Si elle n'est pas conforme aux attentes, vérifiez l'état de publication de la tâche et le package de publication pour confirmer que la publication a réussi. Dans le panneau Properties de l'instance périodique, affichez les valeurs de remplacement pour une instance individuelle.

Important

Les paramètres d'exécution d'une instance sont mis à jour en temps réel avec la dernière configuration des paramètres de la tâche périodique de production, que l'instance ait été exécutée ou non.

Scénario en temps réel :

  • Le jour actuel, le paramètre de planification time1 de l'instance périodique A1 pour le nœud A a la valeur $bizdate. L'instance s'est exécutée avec succès ce jour-là, et la valeur utilisée dans le code était la date métier bizdate (valeur spécifique).

  • Plus tard dans la journée, le paramètre time1 passe de $bizdate à $cyctime. Le paramètre d'exécution affiché pour l'instance de ce jour devient l'heure planifiée cyctime (valeur spécifique).

  • Si vous réexécutez cette instance, elle utilise la dernière configuration : time1=$cyctime

  • Pour voir les valeurs de remplacement des paramètres utilisées avant la modification, consultez les journaux. Pour plus d'informations, consultez la FAQ sur l'affichage des valeurs de remplacement dans les journaux.Comment afficher les valeurs des paramètres de planification utilisées par une instance dans ses journaux ?.

Dans la page Operation Center > Periodic Instances, sélectionnez une instance. Dans le champ Execution Parameters du panneau Properties, affichez les valeurs résolues réelles, telles que var1=20210708233000 var2=20210709000000, et confirmez que les valeurs sont mises à jour comme prévu.

Comment afficher les valeurs des paramètres de planification utilisées par une instance dans ses journaux ?

Recherchez SKYNET_PARAVALUE dans le journal.

07-09 00:00:19  INFO SKYNET_RERUN_MODE=1:
07-09 00:00:19  INFO SKYNET_FLOW_PARAVALUE=:
07-09 00:00:19  INFO SKYNET_ONDUTY=xxx:
07-09 00:00:19  INFO SKYNET_SYSTEMID=:
07-09 00:00:19  INFO CALC_ENGINE_IDENTIFIER=xxx:
07-09 00:00:19  INFO SKYNET_SOURCEID=xxx:
07-09 00:00:19  INFO SKYNET_PARAVALUE=var1=20210708233000 var2=20210709000000:
07-09 00:00:19  INFO SKYNET_TASKID=xxx:
07-09 00:00:19  INFO SKYNET_TENANT_ID=283789484710656:
07-09 00:00:19  INFO SKYNET_ID=700003341088:
07-09 00:00:19  INFO SKYNET_JOBID=700200619122:
07-09 00:00:19  INFO SKYNET_NODENAME=xc_partition_copy:
07-09 00:00:19  INFO SKYNET_CYCTYPE=0:
07-09 00:00:19  INFO SKYNET_DSC_JOB_VERSION=1:
07-09 00:00:19  INFO SKYNET_TASK_INPUT={}:
07-09 00:00:19  INFO SKYNET_FLOWNAME=ATCLOUD_FLOW:
07-09 00:00:19  INFO FILE_ID=700003341088:

Comment définir un fuseau horaire pour les paramètres de planification ?

L'heure d'été est prise en charge pour la génération des instances et les calculs de partition des paramètres, afin que les tâches s'exécutent correctement lors des jours de transition. Par exemple, dans le fuseau horaire Pacifique des États-Unis :

  • Le jour du début de l'heure d'été, 23 instances sont générées. La soustraction de 10 minutes à 03 h 00 donne 01 h 50. Une tâche planifiée pour 02 h 00 ce jour-là s'exécute comme une tâche vide.

  • Le jour de la fin de l'heure d'été, 24 instances sont générées. La soustraction de 10 minutes à 03 h 00 donne 02 h 50.

Pour un nœud quotidien, hebdomadaire ou mensuel planifié dans l'intervalle ignoré le jour du début de l'heure d'été, l'instance générée est planifiée pour minuit ce jour-là.

Les paramètres de planification sont configurés et publiés pour le nœud, mais la valeur renvoyée ne change jamais

Vérifiez si un paramètre de processus métier portant le même nom remplace le paramètre de planification. Pour la procédure, consultez Utiliser les paramètres de workflow.

Si un tel paramètre de processus métier existe, supprimez-le s'il n'est pas utilisé. S'il doit être conservé, renommez le paramètre de planification du nœud.