Agendar um indexador no Pesquisa de IA do Azure

Nota

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

Defina a schedule propriedade para configurar os indexadores para correrem num calendário. O escalonamento do indexador é útil em situações como:

  • Os dados de origem mudam ao longo do tempo, e queres que o indexador processe automaticamente a diferença.
  • Os dados de origem são muito grandes e você precisa de uma programação recorrente para indexar todo o conteúdo.
  • Um índice é preenchido a partir de múltiplas fontes usando vários indexadores, e deves escalonar os trabalhos para reduzir conflitos.

Quando a indexação não conseguir ser concluída dentro da janela típica de processamento de 2 horas, programe o indexador para funcionar numa cadência de 2 horas para processar um grande volume de dados. Desde que sua fonte de dados ofereça suporte à lógica de deteção de alterações, os indexadores podem retomar automaticamente de onde pararam em cada execução.

Assim que colocas um indexador num cronograma, ele mantém-se no cronograma até eliminares o intervalo ou a hora de início, ou definir disabled para verdadeiro. Se um indexador agendado deixar de disparar inesperadamente, consulte FAQ sobre comportamento de agendamento para os passos de recuperação. Deixar o indexador num horário quando não há nada para processar não afeta o desempenho do sistema. A verificação de conteúdo alterado é uma operação relativamente rápida.

Pré-requisitos

  • Um indexador válido configurado com uma fonte de dados e um índice.

  • Deteção de alterações na fonte de dados. O Armazenamento do Azure e o SharePoint têm deteção de alterações incorporada. Para outras fontes de dados, como SQL do Azure e Azure Cosmos DB, deve ativar manualmente a deteção de alterações.

Definição de cronograma

Uma agenda faz parte da definição do indexador. Se omitir a propriedade schedule, o indexador é executado apenas quando necessário. A propriedade tem duas partes.

Propriedade Descrição
"intervalo" (obrigatório) A quantidade de tempo entre o início de duas execuções consecutivas do indexador. O intervalo mais pequeno permitido é de 5 minutos, e o mais longo é de 1.440 minutos (24 horas). Formate-o como um valor XSD "dayTimeDuration" (um subconjunto restrito de um valor de duração ISO 8601 ).

O padrão para este valor é: P(nD)(T(nH)(nM)).

Exemplos: PT15M a cada 15 minutos, PT2H a cada duas horas.
"StartTime" (opcional) Especifique a hora de início em tempo universal coordenado (UTC). Se omitir este valor, é usado o tempo atual. Esse tempo pode estar no passado, caso em que a primeira execução é agendada como se o indexador estivesse sendo executado continuamente desde a hora de início original.

O exemplo a seguir é um cronograma que começa em 1º de janeiro à meia-noite e é executado a cada duas horas.

{
    "dataSourceName" : "hotels-ds",
    "targetIndexName" : "hotels-idx",
    "schedule" : { "interval" : "PT2H", "startTime" : "2024-01-01T00:00:00Z" }
}

Configurar uma agenda

Especifique os cronogramas numa definição de indexador. Para configurar um agendamento, use o portal Azure, APIs REST ou um SDK do Azure.

  1. Vá para o seu serviço de pesquisa no portal do Azure.
  2. No painel esquerdo, selecione Indexadores.
  3. Abra um indexador.
  4. Selecione Definições.
  5. Desça até Agendar e depois escolha Horário, Diário ou Personalizado para definir uma data, hora ou intervalo personalizado específicos.

Alterne para o separador Definição de Indexador (JSON) na parte superior do ecrã para visualizar a definição de cronograma no formato XSD.

Perguntas frequentes sobre comportamento de agendamento

Posso executar vários trabalhos de indexador em paralelo?

Podes executar vários indexadores simultaneamente, mas cada indexador é uma única instância. Não é possível executar duas cópias do mesmo indexador simultaneamente.

Para indexação baseada em texto, o agendador pode iniciar tantos trabalhos de indexador quanto o serviço de pesquisa suportar, o que determina o número de unidades de pesquisa . Por exemplo, se o serviço tiver três réplicas e quatro partições, você poderá ter 12 trabalhos de indexador em execução ativa, iniciados sob demanda ou agendados.

Para indexação baseada em habilidades, os indexadores são executados em um ambiente de execução específico. Por esta razão, o número de unidades de serviço não afeta o número de tarefas de indexador baseadas em competências que pode executar. Vários indexadores baseados em habilidades podem ser executados em paralelo, mas isso depende da disponibilidade do processador de conteúdo no ambiente de execução.

Os trabalhos agendados começam sempre à hora designada?

Os processos indexadores podem entrar em fila e podem não começar exatamente à hora publicada, dependendo da carga de trabalho de processamento e outros fatores. Por exemplo, se um indexador ainda estiver a correr quando a sua próxima execução agendada for definida para começar, a execução pendente é adiada até à próxima ocorrência agendada, o que permite que o trabalho atual termine.

Para tornar este comportamento mais concreto, considere o seguinte exemplo. Suponha que configura um agendamento do indexador com um intervalo de uma hora e uma hora de início de 1 de janeiro de 2024 às 8:00:00 UTC. Veja o que pode acontecer quando uma execução de indexador leva mais de uma hora:

  1. A primeira execução do indexador começa em ou por volta de 1º de janeiro de 2024 às 8h00 UTC. Suponha que essa execução leva 20 minutos (ou qualquer quantidade de tempo inferior a 1 hora).

  2. A segunda execução começa em ou por volta de 1 de janeiro de 2024 9:00 AM UTC. Suponha que esta execução demora 70 minutos – mais de uma hora – e só termina às 10:10 UTC.

  3. A terceira execução está programada para começar às 10:00 AM UTC, mas nesse momento a execução anterior ainda está em execução. Esta execução agendada é então ignorada. A próxima execução do indexador só começa às 11:00 UTC.

Em casos raros, como durante operações de manutenção ou ao recuperar de situações transitórias, o sistema coloca em fila de espera várias execuções de indexadores. Quando esta condição ocorre, o indexador executa cargas de trabalho pendentes sequencialmente dentro da janela agendada. Por exemplo, se um indexador estiver agendado para ser executado de hora a hora e várias execuções tiverem sido atrasadas ou desencadeadas a pedido, esses trabalhos em espera são executados de forma consecutiva até a fila ficar vazia. Estas execuções não são execuções adicionais, mas representam execuções previamente agendadas ou solicitadas. Embora esse comportamento seja incomum na maioria dos cenários, o indexador foi projetado para processar todas as tarefas enfileiradas para manter a consistência e a atualização dos dados.

Nota

Se tiver requisitos rigorosos de execução de indexadores que são sensíveis ao tempo, considere usar o modelo push API para poder controlar diretamente o pipeline de indexação.

O que acontece se a indexação falhar repetidamente no mesmo documento?

Se definir um indexador para um determinado cronograma mas este falhar repetidamente no mesmo documento todas as vezes, o indexador começa a funcionar num intervalo menos frequente (até ao intervalo máximo de pelo menos uma vez a cada 2 horas ou 24 horas, dependendo de diferentes fatores de implementação) até que progredir com sucesso novamente. Se acredita que resolveu o problema subjacente, execute o indexador manualmente. Se a indexação for bem-sucedida, o indexador regressa ao seu cronograma habitual. Se o indexador não regressar ao seu cronograma normal após uma execução manual bem-sucedida, veja a próxima pergunta.

Um indexador agendado deixou de ser acionado. Como posso repor a programação?

Se um indexador agendado deixar de funcionar, desative-o e depois reative-o para reiniciar o agendamento. Um sinal de que esta recuperação é necessária: não aparecem novas execuções no histórico de execução, mesmo que o agendamento esteja configurado e a fonte de dados alterada.

Configurar disabled para true suspende o horário. Voltar a defini-la para false (ou omitir a propriedade) retoma o agendamento, usando a hora atual como a nova base para o intervalo configurado.

  1. Vá para o seu serviço de pesquisa no portal do Azure.
  2. Selecione Indexadores.
  3. Selecione o indexador para abri-lo.
  4. Selecione Definições.
  5. Defina o indexador para Desativado.
  6. Selecione Guardar.
  7. Defina o indexador novamente para Ativado.
  8. Selecione Guardar.
  9. Selecione o separador Histórico de Execução e verifique se aparece uma nova execução dentro do intervalo seguinte agendado.

Nota

Reativar o indexador reinicia o horário relativo ao tempo atual, não ao original startTime. Por exemplo, se o intervalo for de duas horas e reativar às 15h15, a próxima corrida agendada é por volta das 17h15.

Próximos passos

Para indexadores que são executados de acordo com uma agenda, pode monitorizar as operações obtendo o estado do serviço de pesquisa ou obter informações detalhadas ativando o registo de recursos.