Olá esse é integration developer bootcamp estamos na etapa de arquitetura e padrões de projeto Dois nesse vídeo falaremos sobre a técnica de paginação a paginação é uma forma eficaz de promover extração de grandes volumes de dados de end points como apis bancos de dados Web Services arquivos e outros esses benefícios são US otimizado dos recursos do pipeline como a memória e a CPU diminui o tempo de execução do pipeline o que evita por exemplo o erro de timeout e garante que o container não sofra quebras com aumento do volume na fonte de dados ou em
épocas sazonais que é a volumetria maior os requisitos para aplicar essa técnica é conhecer o campo de corte para determinar quando a extração terminou e diminuir o número máximo de registros definir o número máximo de registros a serem extraídos por execução para entender um pouco melhor vamos supor que temos um pipeline que é do tipo scheduler e ele possui uma uma base de dados por meio de um hash api logo depois há uma transformação ou o que seja o importante aqui é que nesse brash api que é a nossa fonte de dados ele tenha diversos
registros o volume muito grande e que principalmente ele seja paginável a paginação é o ato de separar em diversas páginas determinados elementos nesse banco de dados que é muito grande eu teria várias páginas e a cada execução do pipeline leria uma quantidade de registros e seria uma página diferente o conceito de página envolve uma quantidade de registros a serem lidas então Aqui nós temos que saber o início da da página o fim da página para entender qual registro será lido e a quantidade de registros que será determinada pelo limite voltando pro pipeline principal nós temos
que entender o seguinte para fazer essa questão da paginação nós vamos utilizar bases de dados temporárias visto que estamos controlando parâmetros que independem da execução para fazer isso nós precisamos de um trig que seja do tipo scheduler E aí aqui a variação de tempo pode ser variável precisamos armazenar eh os seguintes Campos limite por execução quantidade de registros ignorados status do processamento e data e hora da próxima execução passando pontualmente já Vimos que o limite por execução é o limite que é o tamanho da página quantos registros serão retornados agora a quantidade de registros ignorados
é pra gente entender em qual página nós estamos se lemos o registro do do zero ao nove na próxima execução eu preciso ler do registro 10 ao 19 e na próxima do 20 ao 29 e assim por diante então na terceira execução por exemplo do 20 ao 29 eu preciso ignorar todos os registros anteriores para começar minha paginação já o status do processamento di se devemos iniciar se há paginação se estamos no processo de paginação ou se ela já foi finalizada assim o pipeline consegue entender quando ele deve fazer qual tipo de operação por meio
desse atributo por fim data e hora da próxima execução diz respeito a quando o pipeline já foi eh finalizado está na hora de iniciar uma nova paginação assim comparando essa data da próxima execução com a data de início do pipeline conseguimos entender se está na hora de iniciar ou não uma nova paginação para fazer isso a gente vai usar a base temporária em dois momentos do nosso fluxo o primeiro momento é justamente depois do Trigger ele precisa obter os parâmetros de paginação para que Logo no início o pipeline entenda qual tipo de operação deve ser
feita naquela execução por exemplo se estávamos lendo do registro 10 ao 19 se Estamos lendo nessa execução dos registros 10 ou 19 na hora de fazer a paginação nesse serviço hash eu vou colocar os parâmetros de limite de 10 a 19 por exemplo E aí depois que eu faço toda a execução desse fluxo no final eu devo atualizar os parâmetros de paginação na mesma base de dados se nessa execução fizemos do 10 ao 19 na próxima faremos do 20 ao 29 e esses dados são registrados na mesma execução do fluxo anterior visto que na hora
que eu chegar na próxima execução esses serão os dados 20 ou 29 do início da próxima execução E aí na hora de fazer a consulta a a base de dados fará consulta aos parâmetros corretos assim eu consigo entender quando já acabou a paginação quando está na hora e fazer o controle correto da paginação em si da base de dados é importante salientar também que aqui a lógica de início de execução muda temos um schedular que roda em um determinado tempo nesse exemplo de TR em 3 minutos a lógica de início de migração início de paginação
não se encontra mais no Trigger se encontra na lógica em si do pipeline a partir dos parâmetros de paginação então aqui ele vai rodar em loopings a cada 3 minutos ele vai ser ativado nós vamos ler os parâmetros de paginação e fazer uma certa verificação a partir desses parâmetros como por exemplo a data e a hora da próxima execução ao fazer uma comparação do momento de início dessa execução com o momento de início da próxima execução nós conseguimos definir quando a migração deve começar quebrando o paradigma de que essa migração ela fica completamente sobre responsabilidade
do Essa foi a apresentação sobre paginação e nos vemos nos próximos vídeos