Jobs de backfill
Après avoir créé un Job qui s'exécute selon un calendrier, il arrive que vous deviez remplir des données dans le système. Par exemple :
- Une erreur dans le système a entraîné une perte de données sur une période de temps. Vous devez remplir les données pour cette plage de dates.
- Vous souhaitez importer des données d’avant l’exécution du système pour une analyse historique.
Un backfill pour les données doit utiliser la même automatisation de job que celle que vous utilisez pour maintenir vos données à jour. Les backfills de Job vous permettent d'exécuter des jobs en utilisant votre automatisation existante pour différentes plages de dates.
Fonctionnement d'un remplissage
Un remplissage exécute votre Job plusieurs fois avec différents parameters pour recréer les exécutions du Job à partir d'une plage de dates antérieure. Pour créer un remplissage, vous sélectionnez la plage de dates que vous souhaitez remplir et l'intervalle de temps utilisé pour diviser la plage en exécutions de Job. Lorsque vous exécutez le remplissage, il génère le nombre d'exécutions en fonction de la plage de dates et de l'intervalle de temps sélectionnés.
Vous pouvez configurer le remplissage pour remplacer les paramètres existants transmis à chaque exécution, ou vous pouvez ajouter de nouveaux paramètres que le job utilise lorsqu'ils sont présents.
Le Job doit gérer les parameters que vous lui donnez pour traiter les données correctes pour la plage de dates de remplissage. Cela pourrait nécessiter des modifications de votre Job. Pour un exemple de la façon de créer une query qui gère correctement une plage de dates, consultez le tutoriel, Configurer une query récurrente avec prise en charge du remplissage à l'aide de Lakeflow Jobs.
Comment les plages de dates génèrent les exécutions de Job
Un remplissage consiste généralement en plusieurs exécutions de Job définies sur le même intervalle de temps que vos exécutions de Job régulières sur la période que vous devez remplir. En utilisant le même intervalle de temps que votre Job régulier, les performances et les optimisations que vous avez configurées dans votre Job sont maintenues. Le fait de diviser le remplissage en plusieurs exécutions permet également de les Trigger en parallèle, ce qui complète le remplissage plus rapidement.
Par exemple, si vous avez eu des erreurs dans votre traitement horaire les 9 et 10 août, vous devez générer un remplissage rétroactif pour couvrir les données manquantes de ces jours. Créez un remplissage pour ces deux jours, en lui donnant un intervalle de temps d'une heure. Cela Trigger jusqu’à 48 exécutions, une pour chaque heure de données dans la plage de dates. Chaque exécution reçoit des paramètres pour l’heure qu’elle doit traiter.
Comment les remplissages s'exécutent en parallèle
Un remplissage qui comporte plus d'un intervalle de temps dans sa plage de dates Trigger plusieurs exécutions, qui peuvent être exécutées en parallèle dans de nombreux cas. Comment pouvez-vous configurer des exécutions parallèles ?
Les jobs ont une limite de concurrence maximale. Par default, cette valeur est définie sur un, mais vous pouvez la définir plus haut. Ceci se trouve dans les paramètres du Job, et est accessible sous Paramètres avancés :
-
Dans votre Workspace, cliquez
sur **Tâches et pipelines** dans la barre latérale.
-
Cliquez sur le nom du Job pour lequel vous souhaitez modifier les paramètres. Ceci ouvre la page détaillée du monitoring du Job.
-
Les paramètres sont affichés dans le panneau de droite. Sélectionnez Paramètres avancés .
-
Sous Paramètres avancés , vous pouvez modifier le nombre maximal d'exécutions simultanées en cliquant sur
.
Définir cette valeur sur un nombre supérieur à un permet ce nombre d'exécutions de job parallèles. Par exemple, définir cette valeur sur
2permet à deux exécutions de job de s'exécuter simultanément.
Les Jobs avec des tâches de pipeline ne peuvent pas être exécutés en parallèle et affichent un avertissement. Consulter Limitations.
Prérequis
Votre job doit prendre en charge un paramètre pour une date ou une heure utilisée pour obtenir les données correctes dans le processus de remplissage. De nombreux Jobs qui s'exécutent selon un calendrier régulier ont déjà un parameter qui utilise une heure que vous pouvez remplacer, mais vous pouvez également définir un parameter qui est propre à vos rétrofillings.
Créer un remplissage
Vous créez un remplissage via l'interface utilisateur des jobs.
-
Dans votre Workspace, cliquez
sur **Tâches et pipelines** dans la barre latérale.
-
Cliquez sur le nom du job pour lequel vous souhaitez créer un remplissage. Ceci ouvre la page détaillée du monitoring du Job.
-
Cliquez sur la flèche vers le bas (
) à côté de Exécuter maintenant en haut de la page.
-
Sélectionnez **Exécuter le remplissage** dans la liste déroulante qui apparaît. Ceci ouvre la boîte de dialogue **Exécuter le remplissage**.

-
Sélectionnez une Plage de dates et d'heures correspondant à la plage que vous souhaitez rétroporter.
-
Databricks choisit un intervalle de temps par default pour vos remplissages, en fonction de votre Trigger ou de votre calendrier. Si vous souhaitez modifier l'intervalle de temps, dans les listes déroulantes à droite de Chaque , sélectionnez l'intervalle de temps que vous désirez. Par exemple, pour utiliser un intervalle de temps d'1 heure, choisissez 1 et Heure pour l'intervalle de temps. Au bas de la boîte de dialogue, l'interface inclut une note sur le nombre de nouvelles exécutions que vos sélections génèrent.
Si votre remplissage divise la plage de dates en plus de 100 exécutions, un avertissement apparaît lorsque vous le configurez et vous ne pouvez pas start les remplissages. Dans ce cas, vous devez modifier votre **Plage de dates et d'heures** en plusieurs étapes de moins de 100 exécutions chacune. Vous pouvez le faire avec plusieurs remplissages, ou en augmentant l'intervalle de temps des remplissages.
-
Sous paramètres de Job , vos paramètres existants sont affichés avec des clés et des valeurs. Si vous avez un paramètre ou un ensemble de paramètres pour la plage de dates du Job, vous pouvez les remplacer en modifiant le champ Valeur . Sinon, vous pouvez créer un nouveau paramètre en ajoutant une nouvelle Clé et une nouvelle Valeur .
Par exemple, si votre Job prend l'heure du Trigger du Job comme parameter de date et heure iso, vous pouvez ignorer ce parameter avec
{{backfill.iso_datetime}}. Pour afficher la liste des références de valeur possibles, cliquez sur le bouton { } à côté de la valeur que vous souhaitez remplacer, et sélectionnez une référence pour l'insérer dans le champ Valeur .Pour obtenir la liste des parameters, y compris les parameters spécifiques au backfill, consultez Références de valeur prises en charge.
Vous pouvez également ajouter d'autres paramètres qui ne figurent pas dans votre liste de paramètres normale et qui peuvent être pris en compte par votre automatisation. Par exemple, si vous vouliez avoir un traitement différent pour un job de remplissage, vous pourriez ajouter un paramètre
backfilldéfini surtrue. -
Remplacez éventuellement tout autre paramètre utilisé pour contrôler le job afin qu'il corresponde aux données que vous souhaitez rétro-remplir.
-
Cliquez sur **Exécuter** pour start les exécutions de remplissage.
Les exécutions de rattrapage apparaissent dans la liste des exécutions avec le texte Backfill dans leur nom, pour les différencier des autres exécutions de Job.
Limitations
-
Les remplissages s'exécutent toujours entièrement. Vous ne pouvez pas exécuter un sous-ensemble de tâches ou de tables dans un remplissage.
-
Limitations spécifiques aux Lakeflow pipelines :
- Les tâches de pipeline ne sont pas paramétrées. Le pipeline est exécuté tel quel.
- Les tâches de pipeline ne peuvent pas être exécutées simultanément, les jobs avec des tâches de pipeline sont donc exécutés séquentiellement plutôt qu'en parallèle. Un avertissement s'affiche dans la boîte de dialogue Exécuter le remplissage lorsque cela se produit, et dans Paramètres , si vous définissez le nombre maximal d'exécutions simultanées à plus de 1 lorsqu'une tâche de pipeline est dans le Job.
Databricks recommande de rétropédaler les LakeFlow Pipelines en utilisant la fonctionnalité d'ajout unique du pipeline. Pour plus d'information, consultez Rétropédalage des données historiques avec des pipelines.
Ressources supplémentaires
Pour consulter un tutoriel expliquant comment créer une query et des paramètres pouvant être utilisés par un Job de remplissage, consultez Configurer une query récurrente avec prise en charge du remplissage à l'aide de Lakeflow Jobs.