Referência do agendador de ingestão¶
Objetos e procedimentos de banco de dados¶
Os procedimentos a seguir são criados pelo arquivo scheduler/scheduler.sql
.
PUBLIC.CREATE_SCHEDULER()¶
Este procedimento atua como ponto de entrada entre SQL e Java. Ele criará uma tarefa em execução de acordo com a programação disponível na tabela APP_STATE
. Esta tarefa será executada abaixo do procedimento PUBLIC.RUN_SCHEDULER_ITERATION()
quando executado.
PUBLIC.RUN_SCHEDULER_ITERATION()¶
Este procedimento é um ponto de entrada para a implementação Java da tarefa de agendamento real. Ele será invocado sempre que a tarefa do agendador for executada.
PUBLIC.ON_INGESTION_SCHEDULED (process_id VARCHAR)¶
Este procedimento define o fluxo de ingestão para um único processo que foi levado pelo agendador para execução. A implementação padrão não faz nada. Recomendamos implementar isso em Java usando a interface OnIngestionScheduledCallback
.
Manipulador personalizado¶
O recurso do agendador de ingestão consiste em dois manipuladores diferentes que atuam como ponto de entrada de SQL para Java:
CreateSchedulerHandler
RunSchedulerIterationHandler
Recomendamos personalizar apenas o último.
Abordagem do construtor¶
RunSchedulerIterationHandler
pode ser personalizado usando RunSchedulerIterationHandlerBuilder
. Esses objetos auxiliares permitem implementações personalizadas das interfaces subjacentes:
ConnectorErrorHelper
OnIngestionScheduledCallback
Caso não sejam fornecidas, as implementações padrão serão utilizadas.
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();
}
}