Datenaufnahmeplan¶
Bibliothek, die allgemeine Elemente und Features bereitstellt, die in allen Snowflake-Konnektoren verwendet werden.
Anforderungen¶
Die Standardimplementierung des Schedulers erfordert, dass die folgenden Dateien während der Installation des Konnektors ausgeführt werden:
core.sql
(siehe SQL-Hauptreferenz)configuration/app_config.sql
(siehe SQL-Referenz für App-Konfiguration)configuration/connector_configuration.sql
(siehe Referenz zur Konnektorkonfiguration)scheduler/scheduler.sql
(siehe Referenz zu Datenaufnahmeplan)
Übersicht¶
Die Scheduler-Aufgabe sorgt dafür, dass die Datenaufnahme (Ingestion) von Ressourcen zu geeigneten Zeitpunkten entsprechend ihrer Konfiguration ausgelöst wird. Diese Aufgabe wird nicht vom SDK selbst gestartet, sondern muss erstellt und fortgesetzt werden, z. B. während des Schritts „Konfiguration abschließen“. Es gibt zwei Möglichkeiten, dies zu erreichen: mit der Prozedur PUBLIC.CREATE_SCHEDULER() aus SQL oder durch Aufrufen von SchedulerCreator#createScheduler() direkt aus dem Java-Code.
Die Standardimplementierung erstellt die Scheduler-Aufgabe unter Verwendung des Ausdrucks, der in connector_configuration
unter dem Schlüssel global_schedule
angegeben ist. Wenn die Standard-Scheduler-Aufgabe ausgeführt wird, sucht sie nach allen aktivierten Definitionen für die Datenaufnahme von Ressourcen, deren ScheduleType in der Konfiguration auf GLOBAL
eingestellt ist, und nach den entsprechenden Ingestion-Prozessen. Jeder der Prozesse wird dann auf den Status IN_PROGRESS
aktualisiert. Dieser Status wird wieder auf SCHEDULED
aktualisiert, nachdem der Datenaufnahmelauf abgeschlossen ist. Dann wird für jeden von ihnen OnIngestionScheduledCallback ausgeführt. Dieser Callback kann vollständig kundenspezifisch sein und mit SQL oder Java implementiert werden. Die Standardimplementierung dieses Callbacks tut nichts, aber das SDK bietet auch eine Implementierung dieses Callbacks unter Verwendung des Moduls Task Reactor. Diese Implementierung ruft die Daten zu Ressourcen aus der Datenbank ab und fügt ein Work-Element, das diese Daten enthält, zur Task Reactor-Warteschlange hinzu.
Wenn das Work-Element beendet ist, wird ein weiterer Callback namens OnIngestionFinishedCallback ausgeführt. Dieser Callback ändert den Prozessstatus zurück auf SCHEDULED
, sobald die Datenaufnahme abgeschlossen ist.