Tutorial de paginação - parte 1

Nos passos iniciais do pipeline de paginação, nós configuramos o trigger do pipeline e usamos uma sequência de componentes para configurar e salvar os parâmetros de paginação, como descrito abaixo:

1. Configure o trigger do pipeline para um scheduler trigger de cinco minutos.

Esse pipeline migra um banco de dados diariamente às 1 da manhã. O pipeline é ativado em intervalos regulares para verificar se está na hora de começar a paginação. Aqui, configuramos o trigger para ativar o pipeline a cada cinco minutos.

2. Consulte os parâmetros da paginação usando um componente Object Store (OS).

Esse componente consulta um banco de dados OS para encontrar parâmetros de paginação. Esses parâmetros são:

  • Start timestamp: a data e hora nos quais o pipeline foi ativado.

  • Limit: o número máximo de resultados a serem retornados.

  • Start: o índice do primeiro registro a ser processado nesse passo do processo de paginação.

  • End: o índice do último registro a ser processado nesse passo do processo de paginação.

  • Step: esse parâmetro assume o valor EXTRACTING_DATA quando o processo de paginação está ocorrendo ou FINISHED quando ele termina ou quando o pipeline é executado pela primeira vez.

  • Next execution timestamp: a data e hora do próximo processo de migração.

Para consultar os parâmetros, selecionamos a operação “Find by Object ID” e definimos o Object ID como:

{{ CONCAT(metadata.pipeline.name, "_v" , metadata.pipeline.versionMajor) }}

Aqui, usamos a função CONCAT para nomear o ID do Object Store como o nome desse pipeline seguido de sua versão.

Atribua valor 0 para os parâmetros limit e skip desse componente e ative a opção Unique Index.

Durante a primeira execução do pipeline, os parâmetros da paginação não existirão, então precisamos definir valores padrão para eles. Faremos isso no passo 3.

3. Defina valores padrão para os parâmetros da paginação utilizando um componente JSON Generator.

Utilizamos a função Double Braces DEFAULT para atribuir valores padrão aos parâmetros da paginação recuperados pelo Object Store se eles não existirem. Isso acontece durante a primeira execução do pipeline.

O parâmetro JSON desse componente deve ser configurado desta maneira:

{
    "control":{
        "startTimestamp": {{ metadata.execution.startTimestamp }},
        "limit": {{ DEFAULT( message.data[0].limit, 500 ) }},
        "start": {{ DEFAULT( message.data[0].start, 0 ) }},
        "end": {{ DEFAULT( message.data[0].end, 500 ) }},
        "step": {{ DEFAULT( message.data[0].step, "FINISHED" ) }},
        "nextExecutionTimestamp": {{ message.data[0].nextExecutionTimestamp }}
    }
}

Nesse exemplo, nós atribuímos o valor 500 para a propriedade limit. Ao aplicar a paginação, você deve mudar esse valor de acordo com sua necessidade de processamento de dados. Um valor de limit muito alto pode sobrecarregar o pipeline, fazendo com que a paginação perca seu propósito; um valor muito pequeno pode deixar o processo lento.

4. Salve a propriedade contol usando um componente Session Management.

5. Divida o fluxo de integração usando um componente Choice.

Esse componente divide o fluxo de integração nos três caminhos mencionados anteriormente: o caminho FINISHED, o caminho EXTRACTING_DATA e o caminho de erro. Vamos descrever como cada caminho deve ser construído nos próximos artigos.

Last updated