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 amont sont satisfaites, garantissant ainsi la stabilité et l'ordre des pipelines de données complexes. Voici quelques cas d'utilisation typiques :
Automatisation du traitement récurrent des données : synchronisez, nettoyez ou agrégez les données à des intervalles quotidiens, horaires ou hebdomadaires.
Création de 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 amont et aval, et activez la planification automatique.
Gestion et planification centralisées de 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 la nouvelle version de l'ancienne, consultez la rubrique Distinction entre la nouvelle et l'ancienne version de Data Studio.
Cette section présente un workflow planifié prêt à l'emploi. Vous allez construire 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 Workspaces de la console DataWorks. Dans la barre de navigation supérieure, sélectionnez la région souhaitée. Repérez 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 Node 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 créer 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 du 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éveloppement d'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 h 05 chaque jour).
Sur le côté droit de l'éditeur du 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:-
Configuration des 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écution de 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 et les conditions de déclenchement grâce aux dépendances de planification.
Orchestration de nœuds/workflows
Orchestration de processus simples
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 orienté acyclique (DAG) permet un flux automatisé piloté par l'état : lorsqu'un nœud amont réussit, il déclenche immédiatement les tâches aval, garantissant 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 de manière centralisée 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 | Oriente vers différentes logiques aval en fonction des résultats amont. Par exemple, si le total quotidien des commandes est égal à 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 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 des branches 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 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 de données 31 fois, en traitant une partition de données de province à chaque itération. |
Nœud Do-while | Répète l'exécution jusqu'à ce qu'une condition soit satisfaite. Par exemple, appelez une API externe toutes les 10 minutes pour interroger l'état de 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 assurer la 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 amont a terminé la clôture quotidienne, il appelle une API HTTP pour déclencher le pipeline de traitement de 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 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 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éation d'un sous-workflow .
Recommandations de fractionnement et de conception modulaire des workflows
Pour maintenir la facilité de gestion et les performances des workflows, fractionnez les grands workflows comportant plus de 100 nœuds :
Fractionnement 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.
Utilisation de 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étrage des dépendances de planification
Les dépendances de planification relient des 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 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épendances de planification.
Pour plus d'informations, consultez la rubrique Configuration des 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 démarrer. 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 d'un système financier externe produise une sortie. Nous vous 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, pour les tâches qui utilisent INSERT OVERWRITE pour écraser les partitions d'une table, ou dans les scénarios impliquant des calculs cumulatifs. Une fois l'auto-dépendance activée, l'instance du jour en cours 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 comptabilité. |
Conception et flux des paramètres
Les paramètres d'espace de travail sont disponibles uniquement dans DataWorks Professional Edition et versions ultérieures.
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 des nœuds. Classés du périmètre le plus restreint au plus large :
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 Configuration des paramètres de planification. | Paramètres de contexteTransmettez des valeurs dynamiquement aux nœuds aval via les paramètres de sortie amont. Les constantes, les variables et les résultats d'exécution amont sont tous pris en charge. Pour plus d'informations, consultez la rubrique Configuration des 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 bases 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 Configuration des 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 h 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 amont |
Heure physique + délai + succès amont |
Débogage et exécution
Une fois le développement des nœuds et du workflow terminé, déboguez les nœuds individuellement et exécutez l'intégralité du workflow afin de vérifier leur bon fonctionnement 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 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 la rubrique 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 au format
${parameter_name}, vous devez renseigner les champs Parameter name et 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 la rubrique 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 afin d'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 en bas du nœud.
Débogage du workflow
Le débogage du workflow 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 workflow.
Sur la page du canevas DAG du workflow, 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 workflow (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 workflow.
L'historique d'exécution sur la droite affiche tous les enregistrements des exécutions de débogage du workflow.
Tous les nœuds courants impliquant un contrôle de flux (do-while, branch et join) doivent être placés au sein d'un workflow 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 workflow
DataWorks vous permet d'importer des nœuds autonomes existants dans un workflow, de supprimer des nœuds d'un workflow ou de déplacer des nœuds entre workflows pour une réutilisation efficace et une gestion modulaire.
Importer des nœuds existants dans un workflow
Vous pouvez ajouter des nœuds autonomes existants n'appartenant à aucun workflow au canevas du workflow actuel via l'option Import Node afin de les réutiliser.
Double-cliquez sur le workflow 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 identifié, faites-le glisser vers le canevas pour terminer l'importation.
Supprimer des nœuds d'un workflow
Vous pouvez retirer un nœud d'un workflow pour en faire un nœud autonome, ou le déplacer directement vers un autre workflow.
-
Retirer d'un workflow en tant que nœud autonome
Utilisez cette fonctionnalité lorsque vous devez découpler un nœud d'un workflow afin qu'il n'en fasse plus partie.
Dans l'arborescence du projet ou sur le canevas du workflow, 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 de destination où le nœud sera stocké après suppression, puis confirmez.
-
Déplacer vers un autre workflow
Utilisez cette fonctionnalité lorsque vous devez restructurer un processus métier et migrer un nœud du workflow actuel vers un autre workflow.
Dans l'arborescence du projet ou sur le canevas du workflow, 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 workflow cible et confirmez.
Vous pouvez également sélectionner un nœud et le faire glisser directement vers le workflow cible pour le déplacer.
Avant d'effectuer cette opération, évaluez attentivement l'impact potentiel sur les processus métier existants et reconfigurez rapidement les dépendances au nouvel emplacement.
Lorsque vous supprimez ou déplacez un nœud d'un workflow, les dépendances en amont et en aval configurées pour ce nœud au sein du workflow d'origine sont rompues.
Les paramètres de workflow configurés sur le nœud deviennent également inefficaces.
Cloner un workflow
Le clonage copie un workflow existant — y compris tous ses nœuds internes, son code et ses dépendances — pour générer un workflow indépendant. Pour cloner, accédez à Project Directory, cliquez avec le bouton droit de la souris sur le workflow cible et sélectionnez Cloning.
Le clonage copie presque toutes les configurations, ce qui peut introduire des risques. Avant de déployer le workflow 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 workflow cloné écrit dans les mêmes tables cibles que le workflow 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 workflow. Par défaut, le workflow 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 workflow 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 workflows, vous pouvez également cloner des nœuds au sein d'un workflow, mais la copie de nœuds entre workflows 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 workflow.
La gestion des versions enregistre automatiquement chaque modification apportée au workflow, 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 workflow, 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 workflow dans l'environnement de production. Il s'agit de la version exécutée par le planificateur de production. Lorsque des tâches de production rencontrent des problèmes, 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 en un clic à la dernière version de déploiement stable du workflow, 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 changement de code.
Récupération de code : Si vous supprimez accidentellement une logique de code sans l'enregistrer, restaurez-la à partir du dernier enregistrement de développement.
Points importants à considérer
La restauration écrase la zone de développement actuelle : L'option Restore utilise la version historique sélectionnée pour écraser tout le code et les configurations présents sur le canevas actuel. Avant de restaurer, sauvegardez les modifications non validées en les copiant dans un éditeur de texte local.
Un redéploiement est requis après une restauration : L'option 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/workflows : Une fois le développement du workflow terminé, déployez les nœuds/workflows 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 la rubrique Déployer des nœuds et des workflows.
Opérations sur les nœuds/workflows : Les workflows de l'environnement de production sont planifiés périodiquement selon les paramètres de planification. Accédez au Operation and Maintenance Center pour consulter l'état de planification des workflows planifiés et effectuer les opérations associées. Pour plus d'informations, consultez les rubriques 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 workflow dépend de l'état d'exécution de ses tâches internes.
La réussite globale d'un workflow est déterminée par l'état final de ses nœuds internes :
Échec : Si un nœud critique échoue, l'instance de workflow entière est généralement marquée comme ayant échoué.
Gel/Pause : Si un nœud au sein du workflow 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 workflow est également marqué comme ayant échoué.
Nœud de jonction : Si le workflow utilise un nœud de jonction, même si un nœud d'une branche en amont échoue, l'ensemble du workflow 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 de données d'une tâche de workflow, l'instance de workflow est définie sur l'état succès.
Dans les scénarios de backfill de données, si le système détermine qu'une tâche ne peut pas être exécutée, le workflow est défini sur l'état échec.
Il existe une latence entre la mise à jour du statut de l'instance et la survenue réelle de l'événement d'échec.
Quotas et limites
Limite du nombre de nœuds : Un seul workflow 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-workflows :
Un workflow dont l'option référençable est activée ne peut pas avoir de nœuds dépendant de tâches externes, ni être directement dépendant de tâches externes. Dans le cas contraire, une erreur se produit lors du déploiement.
Après le déploiement d'un tel workflow dans l'environnement de production, aucune instance planifiée n'est générée automatiquement par défaut. Le workflow 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 workflow.
Nombre maximal d'instances parallèles : Les workflows planifiés ne permettent pas de définir le nombre maximal d'instances parallèles au niveau du workflow. Vous ne pouvez définir cette limite que pour les tâches internes au workflow. Pour limiter l'exécution simultanée, configurez l'option Max Parallel Instances dans la politique de planification des nœuds individuels. Pour plus d'informations, consultez la rubrique 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 workflows. 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 workflow et un processus métier ?
R : Un workflow 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 de l'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 des ressources.
Workflow/nœud gelé : Vérifiez si le workflow 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 workflow. 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 la rubrique Heure de planification et génération d'instances.
-
Q : Pourquoi l'ensemble du workflow apparaît-il comme ayant échoué alors que certains nœuds ont réussi ?
R : Cela est déterminé par les règles d'évaluation du statut du workflow :
Échec du chemin critique : Si un nœud dont les dépendances en aval ne sont pas complètes échoue, l'ensemble du workflow est marqué comme ayant é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 workflow.