Referenz zu Datenaufnahmeplan¶
Datenbankobjekte und Prozeduren¶
Die folgenden Prozeduren werden von der Datei scheduler/scheduler.sql
erstellt.
PUBLIC.CREATE_SCHEDULER()¶
Diese Prozedur dient als Einstiegspunkt zwischen SQL und Java. Erstellt eine Aufgabenausführung, die gemäß dem in der Tabelle APP_STATE
verfügbaren Zeitplan ausgeführt wird. Bei der Ausführung dieser Aufgabe wird die Prozedur PUBLIC.RUN_SCHEDULER_ITERATION()
ausgeführt.
PUBLIC.RUN_SCHEDULER_ITERATION()¶
Diese Prozedur ist ein Einstiegspunkt in die Java-Implementierung der eigentlichen Scheduling-Aufgabe. Wird immer dann aufgerufen, wenn die Scheduler-Aufgabe ausgeführt wird.
PUBLIC.ON_INGESTION_SCHEDULED (process_id VARCHAR)¶
Diese Prozedur definiert den Datenaufnahmeablauf für einen einzelnen Prozess, der vom Scheduler zur Ausführung genommen wurde. Die Standardimplementierung führt keine Aktion aus. Wir empfehlen, dies in Java unter Verwendung der Schnittstelle OnIngestionScheduledCallback
zu implementieren.
Kundenspezifischer Handler¶
Das Feature Datenaufnahme-Scheduler besteht aus zwei verschiedenen Handlern, die als Einstiegspunkt von SQL nach Java dienen:
CreateSchedulerHandler
RunSchedulerIterationHandler
Wir empfehlen, nur den letzteren Handler anzupassen.
Ansatz: Builder¶
RunSchedulerIterationHandler
kann mithilfe von RunSchedulerIterationHandlerBuilder
angepasst werden. Diese Hilfsobjekte ermöglichen kundenspezifische Implementierungen der zugrunde liegenden Schnittstellen:
ConnectorErrorHelper
OnIngestionScheduledCallback
Falls diese nicht vorhanden sind, werden die Standardimplementierungen verwendet.
class CustomOnIngestionScheduledCallback implements OnIngestionScheduledCallback {
@Override
public void onIngestionScheduled(String processId) {
// CUSTOM LOGIC
}
}
class CustomHandler {
// Path to this method needs to be specified in the PUBLIC.RUN_SCHEDULER_ITERATION procedure using SQL
public static Variant runIteration(Session session) {
return RunSchedulerIterationHandler.builder(session)
.withOnIngestionScheduledCallback(new CustomOnIngestionScheduledCallback())
.build()
.runIteration()
.toVariant();
}
}