Les workflows planifiés automatisent le traitement récurrent des données en générant des instances de tâches selon un calendrier prédéfini (quotidien, mensuel, etc.). Chaque tâche s'exécute uniquement lorsque l'heure programmée est atteinte et que toutes les dépendances en amont sont satisfaites, garantissant ainsi la stabilité et l'ordre des pipelines de données complexes. Voici quelques cas d'utilisation typiques :
Automatiser le traitement récurrent des données : synchronisez, nettoyez ou agrégez les données à des intervalles quotidiens, horaires ou hebdomadaires.
Construire des flux de dépendances DAG complexes : intégrez visuellement des nœuds tels que MaxCompute SQL, Hologres, EMR et Python, définissez les dépendances en amont et en aval, et activez la planification automatique.
Gérer et planifier centralement plusieurs sous-tâches : regroupez les tâches logiquement liées au sein d'un seul workflow pour les planifier, les maintenir et les surveiller comme une unité unique.
Démarrage rapide
Cette fonctionnalité est disponible dans la nouvelle version de DataWorks Data Studio. Pour savoir comment distinguer les nouvelles versions des anciennes, consultez la rubrique Distinguer les versions nouvelle et héritée de Data Studio.
Cette section présente un workflow planifié prêt à l'emploi. Vous allez créer un pipeline simple où un nœud virtuel (point de départ) déclenche un nœud MaxCompute SQL (pour le traitement des données). Le workflow calcule automatiquement le nombre total de commandes de la veille et écrit les résultats dans une table chaque matin.
Étape 1 : Préparer le moteur de calcul et les données
Dans l'espace de travail cible, associez un moteur de calcul MaxCompute.
-
Dans MaxCompute, créez la table suivante pour stocker les résultats.
-- Create a simple result table CREATE TABLE IF NOT EXISTS dw_order_count_test ( order_date STRING, total_count BIGINT ) PARTITIONED BY (ds STRING); -- Partitioned by ds to store daily aggregation results
Étape 2 : Créer un workflow planifié
-
Accédez à la page Espaces de travail dans la console DataWorks. Dans la barre de navigation supérieure, sélectionnez la région souhaitée. Localisez l'espace de travail désiré et choisissez dans la colonne Actions.
Si le bouton est libellé Data Development, il ouvre l'ancienne version de Data Studio. Ne cliquez pas dessus.
Cliquez sur l'icône

dans le volet de navigation de gauche, puis, à droite de Project Directory, cliquez sur pour ouvrir la page Create Workflow.Dans la boîte de dialogue Create Workflow, définissez le paramètre Scheduling Type sur Periodic Scheduling, saisissez les informations requises (par exemple, définissez le nom sur
minimal_daily_demo), puis finalisez la création.
Étape 3 : Orchestrer le workflow : faire glisser les nœuds et connecter les dépendances
-
Sur le canevas du workflow, faites glisser un nœud Zero-Load Node depuis le panneau de composants de gauche et nommez-le
start_node.Le nœud Zero-Load sert uniquement à définir le point de départ d'un processus métier et ne s'exécute pas réellement.
Faites glisser un nœud MaxCompute SQL et nommez-le
count_orders.Cliquez sur le cercle situé en bas de
start_nodeet tracez une ligne vers le haut decount_orderspour construire un pipeline de traitement simple.
Étape 4 : Développer le code du nœud
Nous vous recommandons d'activer Data Agent pour bénéficier de suggestions intelligentes de complétion de code et améliorer l'efficacité du développement.
Double-cliquez sur le nœud
count_orderspour ouvrir l'éditeur de code du nœud.-
Rédigez le code de logique métier pour le nœud (des données statistiques simulées sont utilisées ici).
-- bizdate is a defined scheduling variable whose meaning needs to be specified in the scheduling configuration INSERT OVERWRITE TABLE dw_order_count_test PARTITION (ds='${bizdate}') SELECT '${bizdate}' as order_date, COUNT(*) as total_count FROM (SELECT 1 as id UNION ALL SELECT 2 as id) t; -- Simulated dataPour plus d'informations sur le développement de nœuds, consultez la rubrique Développer un nœud MaxCompute SQL.
Cliquez sur le bouton Save en haut de l'éditeur de nœud pour enregistrer la configuration.
Étape 5 : Configurer la planification et les paramètres
-
Revenez au workflow. Sur le côté droit du canevas du workflow, cliquez sur l'onglet Scheduling Settings > Scheduling time :
Définissez la Scheduling Frequency sur Day.
Définissez l'heure de Scheduling time sur
00:05(c'est-à-dire 00:05 tous les jours).
Sur le côté droit de l'éditeur de nœud
count_orders, configurez les options . Ajoutez un paramètre avec le Parameter name défini surbizdateet la Parameter Value définie sur$[yyyymmdd-1](cela représente la date actuelle moins un jour, c'est-à-dire la veille).
Étape 6 : Déboguer un nœud unique et l'ensemble du workflow
-
Débogage du nœud
count_orders:-
Configurer les paramètres de débogage : cliquez sur Debug Configuration sur le côté droit de la page d'édition du nœud.
Dans la section Compute Resource, sélectionnez la ressource de calcul MaxCompute préparée à l'étape 1.
Dans la section Script Parameters, saisissez la Value Used in This Run. La valeur par défaut correspond à la veille de la date actuelle.
Exécuter la tâche de débogage : cliquez sur le bouton Run dans la barre d'outils. Le nœud s'exécute avec les paramètres de débogage que vous avez configurés dans Debug Configuration.
Une fois que les résultats d'exécution répondent aux attentes, cliquez sur Sync to Scheduling dans le coin supérieur droit pour synchroniser la configuration d'exécution avec les paramètres de planification.
-
-
Débogage du workflow :
Revenez au canevas du workflow et cliquez sur l'icône

dans la barre d'outils supérieure.Dans la boîte de dialogue qui s'affiche, saisissez la Value Used in This Run pour le workflow (par exemple, si nous sommes le 20/01/2026,
bizdatedoit être remplacé par20260119).
Étape 7 : Déployer en production
Revenez au workflow et cliquez sur le bouton

dans la barre d'outils supérieure.Dans le panneau de déploiement, le système effectue des vérifications de dépendances et de configuration. Après avoir confirmé que tout est correct, cliquez sur Start Release Production et définissez la méthode de déploiement sur Full Publishing.
Après un déploiement réussi, accédez au Operation and Maintenance Center pour vérifier si le workflow apparaît dans la liste des tâches planifiées.
Vous avez terminé le développement d'un workflow planifié simple. Ce workflow s'exécute automatiquement chaque jour tôt le matin.
Conception et configuration principales
L'orchestration de workflows utilise un canevas DAG visuel pour organiser les tâches avec des nœuds de contrôle (tels que les nœuds de jonction et de branchement) et des nœuds d'interaction (tels que les déclencheurs HTTP), transmettre le contexte via des paramètres de planification, et définir l'ordre d'exécution ainsi que les conditions de déclenchement grâce aux dépendances de planification.
Orchestration de nœuds/workflows
Orchestration de processus simple
Le développement de données implique généralement des pipelines complexes allant de l'intégration multisource à la modélisation en couches (comme la construction des couches ODS et DWD). DataWorks utilise l'orchestration visuelle pour décomposer la logique complexe en sous-nœuds fonctionnels et construire des pipelines de traitement standardisés. Ce modèle basé sur un graphe acyclique dirigé (DAG) permet un flux automatisé piloté par l'état : lorsqu'un nœud en amont réussit, il déclenche immédiatement les tâches en aval, assurant un traitement linéaire, stable et ordonné de bout en bout. À ce stade, l'orchestration prend la forme la plus simple : un DAG statique, linéaire et non réversible.

Orchestration complexe : contrôle de flux
Les nœuds de branchement/jonction et les nœuds for-each/do-while sont disponibles uniquement dans DataWorks Standard Edition et versions ultérieures.
Les nœuds de contrôle de flux font évoluer le développement de données de l'intégration de tâches à l'orchestration métier. Ils vont au-delà du modèle de dépendance linéaire unique des DAG traditionnels en ajoutant une logique avancée grâce à un ensemble de nœuds de contrôle précis.
Nom du nœud | Description du nœud |
Nœud virtuel | Un nœud virtuel n'effectue pas de calculs réels. Il gère centralement plusieurs sous-tâches et sert de nœud de départ d'un workflow. Par exemple, dans un workflow d'analyse des commandes produits, un nœud virtuel nommé Remarque Pour le développement de nœuds autonomes, vous devez utiliser le nœud racine de l'espace de travail comme nœud de dépendance de départ. |
Nœud de branchement | Achemine vers différentes logiques en aval en fonction des résultats en amont. Par exemple, si le total quotidien des commandes est de 0, déclenchez un nœud d'alerte et arrêtez les calculs suivants ; si le total est supérieur à 0, poursuivez vers le nœud de génération de rapports. |
Nœud de jonction | Fusionne les résultats d'exécution de plusieurs branches pour résoudre les problèmes de dépendance en aval. Par exemple, une tâche de règlement financier dépend de deux branches : « règlement normal » et « logique d'ajustement ». Le nœud de jonction garantit que l'archivage final du rapport est déclenché dès qu'une branche se termine avec succès. |
Nœud For-each | Itère sur l'ensemble de résultats provenant d'un nœud d'affectation et exécute des opérations en aval sur chaque élément. Par exemple, pour 31 noms de provinces obtenus par un nœud d'affectation, le nœud for-each exécute une tâche de nettoyage des données 31 fois, traitant une partition de données de province à chaque fois. |
Nœud Do-while | Répète l'exécution jusqu'à ce qu'une condition soit remplie. Par exemple, appelez une API externe toutes les 10 minutes pour interroger l'état de la synchronisation des données. Si la valeur renvoyée est « Processing », la boucle continue. Si la valeur renvoyée est « Completed », la boucle se termine et le traitement suivant commence. |
Pour plus d'informations, consultez la rubrique Nœuds courants dans Data Studio.
Orchestration complexe : conscience de l'état et intégration externe
Les nœuds de vérification sont disponibles uniquement dans DataWorks Professional Edition et versions ultérieures. Les autres nœuds sont disponibles uniquement dans DataWorks Enterprise Edition.
Ces nœuds évaluent si les ressources physiques requises ou les tâches précédentes sont prêtes, et s'intègrent aux systèmes tiers pour combler le fossé de communication entre les plateformes de données et les systèmes métier.
|
Nom du nœud |
Description du nœud |
|
Déclencheur HTTP |
Reçoit des requêtes HTTP de systèmes externes pour déclencher des tâches DataWorks. Par exemple, après qu'un système métier en amont a terminé la clôture quotidienne, il appelle une API HTTP pour déclencher le pipeline de traitement des données T+1 de DataWorks. |
|
Nœud de vérification |
Surveille si les ressources externes (telles que les fichiers OSS ou les partitions MaxCompute) sont prêtes, et déclenche les tâches en aval dès qu'elles deviennent disponibles. Par exemple, un nœud de vérification attend que le fichier journal du jour apparaisse dans OSS, puis démarre la tâche d'analyse des journaux. |
|
Nœud de vérification des dépendances |
Utilise l'interrogation active, les combinaisons logiques et les vérifications de disponibilité des dépendances inter-cycles ou inter-espaces de travail pour déclencher les tâches en aval une fois que toutes les conditions sont remplies. Par exemple, un nœud planifié quotidiennement attend que les 24 tâches horaires de la veille soient terminées. |
Pour plus d'informations, consultez la rubrique Nœuds courants dans Data Studio.
Encapsuler des sous-workflows pour la réutilisation de la logique
Vous pouvez encapsuler un pipeline de sous-tâches stable et réutilisable dans un sous-workflow via un nœud SUB_PROCESS, auquel d'autres workflows peuvent ensuite faire référence. Par exemple, les lignes métier e-commerce, publicité et IoT peuvent partager un pipeline standardisé pour le nettoyage des données, les statistiques récapitulatives et les contrôles Data Quality.
Procédure :
Dans le workflow
child_workflowque vous prévoyez de référencer, définissez la propriété General du workflow sur Can be cited. Cela convertit le workflow en sous-workflow.Dans le workflow principal, faites glisser un nœud SUB_PROCESS et définissez le workflow référencé sur
child_workflow.
Les sous-workflows présentent les contraintes suivantes :
Internalité : le workflow et tous ses nœuds internes ne peuvent avoir aucune dépendance envers des tâches externes.
Isolation : le workflow ne peut pas être directement défini comme dépendance par une tâche externe.
-
Déclenchement passif : après le déploiement, le workflow ne génère pas automatiquement d'instances planifiées. Il s'exécute uniquement lorsqu'il est appelé par un nœud
SUB_PROCESSdans un autre workflow.Pour plus d'informations, consultez la rubrique Créer un sous-workflow.
Fractionnement des workflows et recommandations de conception modulaire
Pour maintenir les workflows gérables et performants, divisez les grands workflows comportant plus de 100 nœuds :
Diviser par domaine métier : séparez les pipelines de traitement pour différents sujets métier (tels que les transactions, les utilisateurs et les produits) en workflows distincts.
Utiliser SUB_PROCESS pour encapsuler la logique commune : encapsulez les étapes de traitement courantes et réutilisables (telles que le nettoyage et le formatage des données) en tant que workflows référençables.
Paramètres de dépendance de planification
Les dépendances de planification connectent les tâches isolées en un pipeline de production de données ordonné grâce à deux conditions : respect de l'heure planifiée et succès des tâches en amont. Lorsque vous orchestrez des nœuds au sein d'un workflow, les dépendances de planification sont établies automatiquement. Vous pouvez également configurer des dépendances plus complexes via les paramètres de dépendance de planification.
Pour plus d'informations, consultez la rubrique Configurer les dépendances de planification.
Dépendance au niveau du workflowUtilisez les dépendances au niveau du workflow lorsque l'ensemble du workflow doit attendre que d'autres tâches (un autre workflow ou un nœud autonome) soient terminées avant de commencer. Cela convient aux scénarios où un workflow agit comme un module métier indépendant. Par exemple, un workflow de ventes attend la sortie d'un workflow de données de base avant de commencer. | Dépendance au niveau du nœudUtilisez les dépendances au niveau du nœud lorsqu'un nœud spécifique dans un workflow doit attendre qu'une tâche externe en dehors du workflow actuel soit terminée. Cela permet une orchestration inter-workflows fine. Par exemple, un nœud récapitulatif dans un workflow de rapports attend qu'un nœud spécifique dans un système financier externe produise une sortie. Nous recommandons de configurer un nœud de vérification des dépendances en amont pour garantir que la tâche dépendante se termine à temps. |
Dépendance inter-cyclesLa dépendance inter-cycles signifie que l'instance du cycle actuel d'une tâche dépend d'instances d'un cycle différent, prenant en charge l'auto-dépendance du même nœud ou la dépendance entre nœuds. Par exemple, les tâches qui utilisent INSERT OVERWRITE pour écraser les partitions dans une table, ou les scénarios impliquant des calculs cumulatifs. Une fois l'auto-dépendance activée, l'instance du jour actuel doit attendre que l'instance de la veille réussisse avant de pouvoir s'exécuter. | Dépendance inter-espaces de travailPour dépendre de tâches dans un autre espace de travail DataWorks, identifiez de manière unique un nœud en utilisant le nom de l'espace de travail et le Output Name, le Name ou l'ID du nœud. Cela convient à la collaboration de données inter-départements et inter-projets. Par exemple, une tâche dans un espace de travail marketing fait référence aux données clés d'un espace de travail comptable. |
Conception et flux de paramètres
Les paramètres d'espace de travail sont disponibles uniquement dans DataWorks Professional Edition et versions ultérieures.
Les paramètres de workflow, les variables de workflow et les paramètres au niveau de l'espace de travail sont pris en charge uniquement lorsque vous utilisez un groupe de ressources serverless.
DataWorks Data Studio prend en charge quatre niveaux de transmission de paramètres et permet un transfert dynamique de données flexible entre les nœuds via les paramètres de contexte de nœud. Classés de la portée la plus basse à la plus élevée :
Paramètres de nœudLorsque le même code SQL doit traiter différentes données de partition chaque jour, utilisez les paramètres de nœud pour définir les dates dynamiquement. Les constantes, les variables intégrées et les expressions temporelles personnalisées sont prises en charge. Pour plus d'informations, consultez la rubrique Configurer les paramètres de planification. | Paramètres de contexteTransmettez des valeurs dynamiquement aux nœuds en aval via les paramètres de sortie en amont. Les constantes, les variables et les résultats d'exécution en amont sont tous pris en charge. Pour plus d'informations, consultez la rubrique Configurer les paramètres de contexte. |
Paramètres de workflowLorsque des dizaines de nœuds dans un workflow doivent partager certains identifiants métier, les paramètres de workflow s'appliquent à tous les nœuds du workflow et éliminent le besoin de modifier les paramètres de nœud un par un. Pour plus d'informations, consultez la rubrique Paramètres de workflow. Remarque Les sous-workflows au sein d'un workflow peuvent référencer directement les paramètres du workflow. | Paramètres d'espace de travailLorsque le code s'exécute dans différents environnements, les noms de base de données et les chemins d'accès aux ressources diffèrent généralement. Les paramètres au niveau de l'espace de travail distinguent les environnements et s'appliquent à tous les nœuds de l'espace de travail. Par exemple, définissez un paramètre d'espace de travail Pour plus d'informations, consultez la rubrique Configurer les paramètres d'espace de travail. |
Paramètres de planification
La différence clé entre les workflows planifiés et les anciens processus métier est qu'un workflow définit la planification dans son ensemble, tandis qu'un processus métier n'est qu'un regroupement physique et ne prend pas en charge la définition d'une planification globale.
Les planifications sont définies au niveau du workflow. Les nœuds internes peuvent uniquement définir un délai d'exécution, calculé en ajoutant le délai à l'heure de planification définie par le workflow.
|
Dimension |
Configuration au niveau du workflow |
Comportement au niveau des nœuds internes |
|
Attribut temporel |
Heure absolue (par exemple, 02:00) |
Heure relative (délai basé sur l'heure de planification du workflow) |
|
Attribut de cycle |
Définit les cycles quotidiens/horaires/minutiers/hebdomadaires/mensuels/annuels |
Hérite du cycle du workflow et ne peut pas être modifié |
|
Logique de déclenchement |
Arrivée de l'heure physique + succès en amont |
Heure physique + délai + succès en amont |
Débogage et exécution
Une fois le développement des nœuds et du flux de travail terminé, déboguez les nœuds individuellement et exécutez l'intégralité du flux de travail afin de vérifier leur exactitude avant le déploiement.
Débogage d'un nœud unique
Le débogage d'un nœud unique permet de valider la logique du code au sein d'un seul nœud, par exemple en vérifiant une instruction SQL, un script Python ou une tâche de synchronisation Data Integration. Ce mode exécute uniquement le nœud actuel sans déclencher les dépendances en amont ou en aval.
-
Dans le panneau Debug Configuration situé à droite du nœud, configurez les paramètres suivants :
Nom du paramètre
Description
Ressource de calcul
Sélectionnez la ressource de calcul associée. Si aucune ressource de calcul n'est disponible, choisissez Create Compute Resource dans la liste déroulante.
ImportantAssurez-vous que la ressource de calcul et le groupe de ressources sont connectés. Pour plus d'informations, consultez Connectivité réseau.
Groupe de ressources
Sélectionnez un groupe de ressources ayant réussi le test de connectivité lors de l'association de la ressource de calcul. Certains nœuds permettent de configurer des packages de dépendance sur le groupe de ressources pour étendre l'environnement d'exécution.
(Facultatif) Jeu de données
Certains nœuds (tels que Shell et Python) prennent en charge le montage de jeux de données pour accéder aux données non structurées stockées dans OSS ou NAS.
(Facultatif) Paramètres de script
Lorsque vous configurez le contenu du nœud et définissez des variables à l'aide du format
${parameter_name}, vous devez définir le Parameter name et la Parameter Value dans la section Script Parameters. À l'exécution, les variables sont remplacées dynamiquement par les valeurs réelles. Pour plus d'informations, consultez Configurer les paramètres de planification.(Facultatif) Rôle associé
Certains nœuds (tels que Shell et Python) permettent de configurer des rôles associés pour accéder aux ressources d'autres services Alibaba Cloud.
Dans la barre d'outils située au-dessus du nœud, cliquez sur Save, puis sur Run pour exécuter la tâche du nœud.
Consultez le journal d'exécution et les résultats d'exécution en bas du nœud.
Débogage du flux de travail
Le débogage du flux de travail permet de vérifier l'exactitude des dépendances de données, du passage des paramètres et de l'ordre d'exécution entre plusieurs nœuds du pipeline. Après avoir débogué chaque nœud individuellement, vous pouvez déboguer une partie du pipeline ou l'intégralité du flux de travail.
Sur la page du canevas DAG du flux de travail, cliquez sur le bouton Run dans la barre d'outils supérieure. Vous pouvez également sélectionner un nœud, cliquer dessus avec le bouton droit de la souris et choisir Run to this node ou Run from this node pour effectuer une vérification partielle.
Dans la boîte de dialogue qui s'affiche, attribuez des valeurs temporaires à toutes les variables des nœuds du flux de travail (telles que
${bizdate}) pour cette session de débogage.Le système exécute strictement les nœuds de haut en bas selon les relations de dépendance définies dans le DAG. Vous pouvez surveiller l'état des nœuds en temps réel sur le canevas et cliquer sur n'importe quel nœud pour afficher le journal d'exécution.
-
Cliquez sur le bouton Return situé à gauche du canevas pour revenir à l'état de développement du flux de travail.
L'historique d'exécution situé à droite affiche tous les enregistrements d'exécution de débogage du flux de travail.
Tous les nœuds courants impliquant un contrôle de flux (do-while, branch et join) doivent être placés au sein d'un flux de travail et fonctionner conjointement avec les nœuds en amont et en aval pour être correctement débogués et exécutés.
Gestion et opérations
Gérer les nœuds de flux de travail
DataWorks vous permet d'importer des nœuds autonomes existants dans un flux de travail, de supprimer des nœuds d'un flux de travail ou de déplacer des nœuds entre différents flux de travail pour une réutilisation efficace et une gestion modulaire.
Importer des nœuds existants dans un flux de travail
Vous pouvez ajouter des nœuds autonomes existants n'appartenant à aucun flux de travail au canevas du flux de travail actuel via l'option Import Node afin de les réutiliser.
Double-cliquez sur le flux de travail cible pour ouvrir la page d'édition du canevas.
Dans le panneau des composants à gauche, accédez à l'onglet Import Node.
Le panneau répertorie tous les nœuds autonomes pouvant être ajoutés. Filtrez et effectuez une recherche par Node Type, Path ou Node Name pour localiser rapidement le nœud cible.
Une fois le nœud trouvé, faites-le glisser vers le canevas pour terminer l'importation.
Supprimer des nœuds d'un flux de travail
Vous pouvez retirer un nœud d'un flux de travail pour en faire un nœud autonome, ou le déplacer directement vers un autre flux de travail.
-
Retirer d'un flux de travail en tant que nœud autonome
Utilisez cette fonctionnalité lorsque vous devez découpler un nœud d'un flux de travail afin qu'il n'en fasse plus partie.
Dans l'arborescence du projet ou sur le canevas du flux de travail, cliquez avec le bouton droit de la souris sur le nœud cible.
Dans le menu contextuel, sélectionnez Remove from workflow.
Dans la boîte de dialogue de confirmation, sélectionnez le chemin cible où le nœud sera stocké après suppression, puis confirmez.
-
Déplacer vers un autre flux de travail
Utilisez cette fonctionnalité lorsque vous devez restructurer un processus métier et migrer un nœud du flux de travail actuel vers un autre flux de travail.
Dans l'arborescence du projet ou sur le canevas du flux de travail, cliquez avec le bouton droit de la souris sur le nœud cible.
Dans le menu contextuel, sélectionnez Move to another workflow.
-
Dans la liste qui s'affiche, sélectionnez le flux de travail cible et confirmez.
Vous pouvez également sélectionner un nœud et le faire glisser directement vers le flux de travail cible pour le déplacer.
Avant d'effectuer cette opération, évaluez soigneusement l'impact potentiel sur les processus métier existants et reconfigurez rapidement les dépendances au nouvel emplacement.
Lorsque vous retirez ou déplacez un nœud d'un flux de travail, les dépendances en amont et en aval configurées pour ce nœud au sein du flux de travail d'origine sont rompues.
Les paramètres de flux de travail configurés sur le nœud deviennent également inefficaces.
Cloner un flux de travail
Le clonage copie un flux de travail existant — y compris tous ses nœuds internes, son code et ses dépendances — pour générer un flux de travail indépendant. Pour cloner, accédez à Project Directory, cliquez avec le bouton droit de la souris sur le flux de travail cible et sélectionnez Cloning.
Le clonage copie presque toutes les configurations, ce qui peut introduire des risques. Avant de déployer le flux de travail cloné, vérifiez les points suivants (vérification de « l'isolation de l'environnement ») :
Tables de sortie et sources de données cibles : Le code du flux de travail cloné écrit dans les mêmes tables cibles que le flux de travail d'origine. Vous devez modifier les noms des tables cibles dans le code (par exemple, changez
ods_user_tableendev_ods_user_table) ou modifier la configuration de sortie du nœud pour éviter que plusieurs tâches n'opèrent sur la même table, ce qui provoquerait des conflits de données.Dépendances en amont : Vérifiez la configuration des dépendances en amont du flux de travail. Par défaut, le flux de travail cloné dépend toujours des tâches en amont d'origine. Confirmez que cela correspond à vos attentes. Sinon, cela pourrait entraîner une confusion dans le pipeline de données ou l'exécution à vide des tâches.
Configuration des paramètres : Vérifiez les paramètres personnalisés du flux de travail et de ses nœuds internes, en particulier les paramètres liés aux partitions de date (tels que
${bizdate}), les chemins d'entrée/sortie et autres paramètres. Assurez-vous qu'ils sont corrects dans le nouvel environnement.
En plus de cloner des flux de travail, vous pouvez également cloner des nœuds au sein d'un flux de travail, mais la copie de nœuds entre différents flux de travail n'est pas prise en charge.
Gestion des versions
Lorsqu'un nœud interne est déployé individuellement, une nouvelle version est également générée pour le flux de travail.
La gestion des versions enregistre automatiquement chaque modification apportée au flux de travail, permet de consulter et de comparer les versions historiques, et offre la possibilité de restaurer n'importe quel état historique si nécessaire.
À droite du canevas du flux de travail, le panneau Version affiche deux types d'enregistrements :
Enregistrement de développement : Généré chaque fois que vous cliquez sur Save sur le canevas. Cet instantané prévient la perte accidentelle de code pendant le développement et n'affecte pas les tâches en cours d'exécution en production.
Enregistrement de déploiement : Généré après le déploiement d'un flux de travail dans l'environnement de production. Il s'agit de la version exécutée par le planificateur de production. Lorsque des problèmes surviennent avec les tâches de production, concentrez-vous sur les enregistrements de déploiement pour la restauration.
Cas d'utilisation typiques
Restauration rapide en cas d'échec : Lorsqu'une tâche de production échoue en raison de modifications de code, utilisez Restore pour revenir à la dernière version de déploiement stable en un clic, afin de minimiser les temps d'arrêt.
Audit et traçabilité des modifications : Pour enquêter sur le moment et l'auteur d'une modification logique, utilisez la liste des versions et les fonctionnalités Diff pour retracer chaque modification de code.
Récupération de code : Si vous supprimez accidentellement une logique de code sans l'enregistrer, restaurez-la à partir de l'enregistrement de développement le plus récent.
Points importants à considérer
La restauration écrase la zone de développement actuelle : Restore utilise la version historique sélectionnée pour écraser tout le code et toutes les configurations sur le canevas actuel. Avant de restaurer, sauvegardez les modifications non validées en les copiant dans un éditeur de texte local.
Un nouveau déploiement est requis après une restauration : Restore ne fait que restaurer le code à l'état de développement. Vous devez le déployer manuellement pour que la restauration prenne effet en production.
Déploiement et opérations
Déploiement de nœuds/flux de travail : Une fois le développement du flux de travail terminé, déployez les nœuds/flux de travail dans l'environnement de production. À ce stade, les nœuds de l'environnement de développement génèrent des tâches planifiées correspondantes dans l'environnement de production. Pour plus d'informations, consultez Déployer des nœuds et des flux de travail.
Opérations sur les nœuds/flux de travail : Les flux de travail dans l'environnement de production sont planifiés périodiquement en fonction des paramètres de planification. Accédez au Operation and Maintenance Center pour consulter l'état de planification des flux de travail planifiés et effectuer les opérations connexes. Pour plus d'informations, consultez Tâches planifiées et Instances planifiées.
Mécanisme d'exécution des tâches
Dans les scénarios de planification, la réussite globale d'un flux de travail dépend de l'état d'exécution de ses tâches internes.
La réussite globale d'un flux de travail est déterminée par l'état final de ses nœuds internes :
Échec : Si un nœud critique échoue, l'instance entière du flux de travail est généralement marquée comme échouée.
Gel/Pause : Si un nœud au sein du flux de travail est manuellement gelé ou mis en pause, et que ce nœud est un nœud en amont pour les nœuds suivants, le pipeline est interrompu et l'ensemble du flux de travail est également marqué comme échoué.
Nœud de jonction : Si le flux de travail utilise un nœud de jonction, même si un nœud d'une branche en amont échoue, l'ensemble du flux de travail peut renvoyer « succès » tant que la logique propre au nœud de jonction détermine le succès. Par conséquent, concevez soigneusement les vérifications en amont pour les nœuds de jonction afin d'éviter que des tâches ne s'exécutent avec des erreurs non détectées.
Scénarios particuliers :
Lorsque vous gelez une instance de backfill data d'une tâche de flux de travail, l'instance du flux de travail est définie sur l'état succès.
Dans les scénarios de backfill data, si le système détermine qu'une tâche ne peut pas être exécutée, le flux de travail est défini sur l'état échec.
Il existe une latence entre la mise à jour de l'état de l'instance et l'occurrence réelle de l'événement d'échec.
Quotas et limites
Limite du nombre de nœuds : Un seul flux de travail prend en charge jusqu'à 400 nœuds internes. Pour garantir les performances de chargement du canevas et la maintenabilité, maintenez le nombre de nœuds inférieur à 100. Pour les scénarios plus vastes, utilisez un découpage modulaire.
-
Limites des sous-flux de travail :
Un flux de travail dont l'option référençable est activée ne peut pas avoir ses nœuds dépendre de tâches externes, ni être directement dépendu par des tâches externes. Dans le cas contraire, une erreur se produit lors du déploiement.
Après le déploiement d'un tel flux de travail dans l'environnement de production, aucune instance planifiée n'est générée automatiquement par défaut. Le flux de travail s'exécute en tant que sous-tâche uniquement lorsqu'il est référencé par un nœud SUB_PROCESS dans un autre flux de travail.
Nombre maximal d'instances parallèles : Les flux de travail planifiés ne permettent pas de définir le nombre maximal d'instances parallèles au niveau du flux de travail. Vous ne pouvez définir cette limite que pour les tâches internes au flux de travail. Pour limiter l'exécution simultanée, configurez Max Parallel Instances dans la politique de planification des nœuds individuels. Pour plus d'informations, consultez Configurer les politiques de planification.
Types de nœuds non pris en charge : EMR Spark Streaming, Flink SQL Streaming, Flink JAR Streaming et Flink Python Streaming ne sont pas pris en charge dans les flux de travail. Ils ne peuvent être développés et exécutés qu'en tant que nœuds autonomes.
FAQ
-
Q : Quelle est la différence entre un flux de travail et un processus métier ?
R : Un flux de travail est une entité de planification unifiée, tandis qu'un processus métier est simplement un regroupement basé sur des dossiers.
-
Q : Pourquoi le débogage réussit-il alors que la planification périodique échoue ?
R : La cause la plus fréquente est une incohérence d'environnement. Concentrez-vous sur les points suivants :
Différences de groupes de ressources : Lors du débogage, vous avez peut-être utilisé un groupe de ressources personnel ou de débogage, tandis que la planification de production utilise un groupe de ressources de production. Vérifiez que le groupe de ressources de production est valide, dispose d'une capacité suffisante et possède les autorisations appropriées.
Différences d'autorisations : Le compte d'exécution de l'environnement de production peut ne pas disposer des autorisations d'accès à certaines tables, fonctions ou ressources.
Différences de dépendances : Les dépendances dans l'environnement de production sont incohérentes avec celles de l'environnement de développement, ou la sortie des dépendances en amont n'existe pas dans l'environnement de production.
-
Q : Pourquoi une instance reste-t-elle toujours en attente/ne s'exécute-t-elle pas ?
R : Une instance s'exécute uniquement lorsque toutes les conditions sont remplies : heure de planification, ressources de planification disponibles et achèvement des dépendances en amont.
Dépendances en amont non achevées : Dans Operation Center, consultez la vue des dépendances de l'instance pour vérifier quelle tâche en amont n'a pas encore abouti.
Attente de ressources : La file d'attente du groupe de ressources de calcul est pleine et la tâche attend en ligne pour obtenir des ressources.
Gel du flux de travail/du nœud : Vérifiez si le flux de travail ou ses nœuds en amont ont été manuellement gelés ou mis en pause.
Instance non générée : Vérifiez que l'heure actuelle a atteint l'heure de planification du flux de travail. Si la tâche vient d'être déployée, vous devez attendre le prochain cycle de planification pour que les instances soient générées. Pour plus d'informations, consultez Heure de planification et génération d'instances.
-
Q : Pourquoi l'ensemble du flux de travail apparaît-il comme échoué alors que certains nœuds ont réussi ?
R : Cela est déterminé par les règles d'évaluation de l'état du flux de travail :
Échec du chemin critique : Si un nœud dont les dépendances en aval ne sont pas complètes échoue, l'ensemble du flux de travail est marqué comme échoué, même si d'autres branches parallèles ont réussi.
Nœud gelé : Le gel d'un nœud interne entraîne l'échec de l'ensemble du flux de travail.