Agendador de ingestão¶
Biblioteca que fornece elementos e recursos comuns usados em todos os conectores Snowflake.
Requisitos¶
A implementação padrão do agendador requer que os seguintes arquivos sejam executados durante a instalação do conector:
core.sql
(consulte: Referência de SQL essencial)configuration/app_config.sql
(consulte: Referência de SQL da configuração do aplicativo)configuration/connector_configuration.sql
(consulte: Referência de configuração do conector)scheduler/scheduler.sql
(consulte: Referência do agendador de ingestão)
Visão geral¶
A tarefa do agendador cuida de acionar a ingestão de recursos em momentos apropriados de acordo com sua configuração. Esta tarefa não é iniciada pelo SDK em si e precisa ser criada e retomada, por exemplo, durante a etapa de finalização da configuração. Existem duas maneiras de conseguir isso: usando o procedimento chamado PUBLIC.CREATE_SCHEDULER() de SQL ou chamando SchedulerCreator#createScheduler() diretamente do código Java.
A implementação padrão criará a tarefa do agendador usando a expressão fornecida em connector_configuration
, sob a chave global_schedule
. Quando a tarefa do agendador padrão é executada, ela procura todas as definições de ingestão de recursos habilitadas que têm seus ScheduleType na configuração definida para GLOBAL
e seus processos de ingestão correspondentes. Cada um dos processos é então atualizado para o status IN_PROGRESS
. Este status será atualizado novamente para SCHEDULED
após a iteração de ingestão ser concluída. Então para cada um deles OnIngestionScheduledCallback é executado. Este retorno de chamada pode ser completamente personalizado e pode ser implementado usando SQL ou Java. A implementação padrão deste retorno de chamada não faz nada, no entanto, o SDK também fornece uma implementação deste retorno de chamada usando o módulo Reator de tarefa. Esta implementação recupera os dados sobre recursos do banco de dados e coloca um item de trabalho contendo esses dados na fila do reator de tarefa.
Quando o item de trabalho é concluído, outro retorno de chamada chamado OnIngestionFinishedCallback é executado. Este retorno de chamada altera o estado do processo de volta para SCHEDULED
uma vez que a ingestão é feita.