Planificateur d’ingestion¶
Bibliothèque qui fournit des éléments et fonctions communs à tous les connecteurs Snowflake.
Exigences¶
La mise en œuvre par défaut du planificateur nécessite l’exécution des fichiers suivants lors de l’installation du connecteur :
core.sql
(Voir : Référence SQL principale)configuration/app_config.sql
(Voir : Référence SQL de la configuration de l’appli)configuration/connector_configuration.sql
(Voir : Référence de la configuration des connecteurs)scheduler/scheduler.sql
(Voir : Référence du planificateur d’ingestion)
Vue d’ensemble¶
La tâche de planification se charge de déclencher l’ingestion des ressources aux moments appropriés en fonction de leur configuration. Cette tâche n’est pas lancée par le SDK lui-même et doit être créée et reprise, par exemple, lors de l’étape de finalisation de la configuration. Il y a deux façons d’y parvenir : en utilisant la procédure appelée PUBLIC.CREATE_SCHEDULER() à partir de SQL ou en appelant SchedulerCreator#createScheduler() directement à partir du code Java.
L’implémentation par défaut crée la tâche de planificateur à l’aide de l’expression fournie dans connector_configuration
, sous la clé global_schedule
. Lorsque la tâche de planification par défaut est exécutée, elle recherche toutes les définitions d’ingestion de ressources activées dont la configuration ScheduleType est définie sur GLOBAL
, ainsi que les processus d’ingestion correspondants. Chacun des processus est ensuite mis à jour au statut IN_PROGRESS
. Ce statut sera à nouveau mis à jour sur SCHEDULED
une fois l’itération d’ingestion terminée. Ensuite, pour chacune d’entre elles, OnIngestionScheduledCallback est exécuté. Ce rappel peut être entièrement personnalisé et peut être mis en œuvre à l’aide de SQL ou de Java. L’implémentation par défaut de ce rappel n’a aucune incidence, mais le SDK fournit également une implémentation de ce rappel à l’aide du module Réacteur de tâches. Cette implémentation récupère les données relatives aux ressources dans la base de données et place un élément de travail contenant ces données dans la file d’attente de Task Reactor.
Lorsque l’élément de travail est terminé, un autre rappel appelé OnIngestionFinishedCallback est exécuté. Ce rappel ramène l’état du processus à SCHEDULED
une fois l’ingestion terminée.