Cette rubrique répond aux questions fréquemment posées sur le remplissage des données.
Nous vous recommandons de consulter d'abord le guide d'utilisation Gérer les instances de remplissage des données.
Pourquoi le parallélisme ne s'applique-t-il pas aux nœuds horaires ou à la minute ?
Pourquoi aucune instance de remplissage n'est-elle générée pour un nœud ?
Comment remplir les données pour les nœuds hebdomadaires ou mensuels
Fonctionnement du remplissage des données
La fonctionnalité de remplissage des données permet de traiter les données pour une plage temporelle historique ou future. Les paramètres de planification utilisés par un nœud sont automatiquement remplacés par les valeurs correspondantes en fonction de l'horodatage de données sélectionné. L'exemple suivant illustre l'écriture de données incrémentielles depuis une base de données MySQL vers une partition basée sur le temps dans MaxCompute. Pour un nœud de synchronisation par lots, configurez le paramètre de planification bizdate=$bizdate à trois endroits : 1) Dans les paramètres de la source de données, utilisez la condition de filtre STR_TO_DATE('${bizdate}','%Y%m%d') <= gmt_modify_time AND gmt_modify_time < DATE_ADD(STR_TO_DATE('${bizdate}','%Y%m%d'), interval 1 day) pour filtrer les données incrémentielles. 2) Dans les paramètres de la destination des données, définissez les informations de partition sur pt=${bizdate} et sélectionnez Insert Overwrite comme règle de nettoyage. 3) Dans le panneau de configuration de la planification, saisissez bizdate=$bizdate dans le champ Paramètres et sélectionnez Générer une instance pour le lendemain (T+1). La valeur ${bizdate} doit être cohérente dans les trois configurations afin de garantir que chaque exécution planifiée synchronise uniquement les données incrémentielles correspondant à l'horodatage de données.
Échec du parallélisme pour les nœuds horaires et à la minute
-
Symptôme
Pour un nœud planifié à l'heure ou à la minute, les instances ne s'exécutent pas en parallèle, même si vous activez le parallélisme pour le remplissage des données.
-
Cause
Le paramètre de parallélisme pour le remplissage des données détermine si les instances pour une plage d'horodatages de données, avec une granularité quotidienne, s'exécutent simultanément. Il ne contrôle pas la concurrence des instances au sein d'une même journée pour les nœuds horaires ou à la minute. La concurrence intra-journalière pour ces nœuds dépend de la configuration d'une auto-dépendance. Pour plus d'informations, consultez Scénario 2 : Configurer une dépendance sur le cycle précédent.
-
Résolution
Si vous désactivez le parallélisme, les instances pour différents horodatages de données s'exécutent en série. L'instance pour l'horodatage de données suivant démarre uniquement après la fin de la précédente.
Si vous activez le parallélisme, vous pouvez définir le nombre d'instances concurrentes (par exemple, 2, 3, 4 ou 5) pour exécuter en parallèle les instances de remplissage des données pour plusieurs horodatages de données.
Exemple de scénario : Supposons que vous deviez remplir une semaine de données pour un nœud horaire ou à la minute.
Si le nœud possède une auto-dépendance, les instances de cette semaine s'exécutent séquentiellement dans l'ordre chronologique.
Si le nœud ne possède pas d'auto-dépendance, toutes les instances de chaque jour s'exécutent en parallèle.
Pourquoi les instances passent-elles à l'état En attente (Planification)
-
Symptôme
Après avoir spécifié un horodatage de données pour le remplissage, l'instance ne s'exécute pas. Elle reste à l'état En attente (Planification) et est mise en évidence en jaune.
-
Cause
Cela se produit si l'heure d'exécution planifiée pour l'horodatage de données que vous avez sélectionné est dans le futur.
-
Résolution
Pour exécuter ces instances immédiatement, sélectionnez l'option Run Retroactive Instances Scheduled to Run after the Current Time dans la boîte de dialogue Backfill Data.
RemarqueSi vous sélectionnez un horodatage de données correspondant à une heure d'exécution future et que vous ne cochez pas cette case, l'instance passe à l'état En attente (Planification).
Si vous sélectionnez un horodatage de données correspondant à une heure d'exécution future et que vous cochez cette case, l'instance s'exécute immédiatement.
Pourquoi les remplissages récents sont-ils en attente ?
-
Symptôme
Lorsque vous remplissez les données pour l'horodatage d'hier ou d'aujourd'hui, l'instance passe à l'état En attente (Planification).
-
Cause
La planification de la plateforme repose généralement sur un modèle T+1, ce qui signifie que les données avec l'horodatage d'hier sont traitées par une exécution planifiée pour aujourd'hui. Lorsque vous remplissez les données pour un horodatage spécifique, vous réexécutez l'instance de cycle pour cette date.
Pour trouver l'instance de cycle planifiée pour aujourd'hui, vous devez filtrer par l'horodatage d'hier. Sur la page Cycle Instance dans Operation Center > Cycle Task O&M, définissez le filtre Data Timestamp sur Yesterday pour afficher les instances de cycle correspondantes et leurs statuts.
Pourquoi un remplissage crée-t-il plusieurs instances
-
Symptôme
Le remplissage des données pour une plage horaire telle que 00:00 à 01:00 génère plusieurs instances.
-
Cause
Le nombre d'instances générées dépend de la configuration de planification du nœud.
Par exemple, si un nœud horaire est planifié pour s'exécuter toutes les heures de 00:00 à 23:59, le remplissage des données pour la plage horaire 00:00 à 01:00 génère deux instances avec des heures d'exécution planifiées à 00:00 et 01:00.
De même, si un nœud est planifié pour s'exécuter toutes les 30 minutes, le remplissage des données pour la plage horaire 00:00 à 01:00 génère trois instances avec des heures d'exécution planifiées à 00:00, 00:30 et 01:00.
Pourquoi les remplissages importants sont-ils en attente de ressources
-
Symptôme
Lors d'une opération de remplissage de données à grande échelle, certaines instances passent à l'état En attente (Ressources) et sont mises en évidence en jaune.
-
Cause
Chaque groupe de ressources possède une limite maximale de concurrence pour l'exécution des nœuds. Si le nombre de nœuds s'exécutant simultanément dépasse cette limite, les nouvelles instances sont mises en file d'attente à l'état En attente (Ressources).
RemarquePour résoudre ce problème, consultez Attente de ressources.
Pourquoi l'erreur « heure d'exécution hors plage » ?
-
Symptôme
Une erreur peut survenir lors du remplissage des données, indiquant que l'heure d'exécution du nœud déclenché est en dehors de la plage horaire sélectionnée.
-
Cause
Cette erreur se produit parce que l'heure d'exécution planifiée réelle du nœud est en dehors de la plage horaire que vous avez spécifiée. Pour les nœuds horaires et à la minute, vous devez spécifier une fenêtre d'heure d'exécution pour le remplissage des données. Par exemple, dans la boîte de dialogue Backfill Data, si vous définissez Select a run time window sur
00:00 ~ 01:00mais que le nœud déclenché est planifié pour s'exécuter à une heure différente, l'opération de remplissage échoue. Pour résoudre ce problème, ajustez la fenêtre d'heure d'exécution afin d'inclure l'heure d'exécution planifiée du nœud.
Pourquoi aucune instance de remplissage n'est-elle générée ?
-
Symptôme
Vous avez lancé une opération de remplissage des données pour un nœud, mais aucune instance de remplissage n'a été générée.
-
Cause
Les instances ne sont pas générées si l'horodatage de données est en dehors de la plage de dates effective du nœud. Assurez-vous que les horodatages de données pour le remplissage se situent dans la plage de dates effective du nœud. Sur le panneau de configuration de la planification du nœud, vous pouvez voir des paramètres tels que : Time attribute est défini sur Normal scheduling, Rerun attribute n'est pas sélectionné, Auto rerun on error n'est pas sélectionné, la plage de dates effective est de 1999-09-09 à 1999-10-22 (la planification prend effet uniquement dans cette plage), Suspend scheduling n'est pas sélectionné, le cycle de planification est Daily et l'heure planifiée est 00:19. Si l'horodatage de données pour le remplissage des données est en dehors de la plage de dates effective, aucune instance de remplissage n'est générée.
Remplissage des nœuds hebdomadaires et mensuels
-
Description : Lors du remplissage des données pour les nœuds hebdomadaires ou mensuels, vous devez définir l'horodatage de données sur la veille de l'heure d'exécution planifiée. Un nœud planifié pour s'exécuter un jour spécifique de la semaine ou du mois s'exécute uniquement ce jour désigné. Les autres jours, des instances de test à blanc sont générées, mais le nœud ne s'exécute pas réellement. Le statut d'une telle instance indique un cycle de test à blanc hebdomadaire ou mensuel. Pour plus d'informations, consultez Scénario 1 : Test à blanc pour le cycle hebdomadaire/mensuel.
RemarqueL'horodatage de données pour le remplissage est calculé comme suit :
horodatage de données = Date d'exécution planifiée - 1 jour.Pour plus d'informations sur la relation entre les paramètres de planification, les horodatages de données, les heures planifiées et les heures d'exécution réelles, consultez Formats pris en charge pour les paramètres de planification.
-
Exemple : Remplissage des données pour un nœud mensuel
Pour un nœud planifié pour s'exécuter à 00:00 le premier jour de chaque mois, vous devez définir l'horodatage de données sur le dernier jour du mois précédent. Pour un nœud mensuel dont le cycle de planification est défini sur Monthly et dont l'heure d'exécution est
00 00 00 1 * ?, définissez les dates de début et de fin pour Data Timestamp dans la boîte de dialogue Backfill Data sur 2022-11-30 pour traiter les données de novembre 2022, puis cliquez sur OK.
Impact de la limite d'instances parallèles sur les remplissages
Lorsque le paramètre maximum parallel instances est activé pour un nœud, cette limite s'applique à la fois aux instances de remplissage des données et aux instances de cycle régulières. Elles partagent le même quota de concurrence.
Lorsque la concurrence des instances dépasse la limite, le système applique principalement une limitation aux instances de remplissage des données historiques, c'est-à-dire aux instances dont les horodatages de données sont antérieurs à aujourd'hui.
La limite d'instances parallèles maximales s'applique uniquement aux instances générées après l'activation du paramètre. Les instances déjà en cours d'exécution ou en file d'attente ne sont pas affectées.
La valeur pour le nombre maximal d'instances parallèles peut varier de 1 à 10 000, la valeur par défaut étant 1.