Deduplicação de dados não-estruturados de processos streaming em tempo real

Detalhes bibliográficos
Ano de defesa: 2021
Autor(a) principal: Esteves, João Victor Azevedo
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade do Estado do Rio de Janeiro
Centro de Tecnologia e Ciências::Instituto de Matemática e Estatística
Brasil
UERJ
Programa de Pós-Graduação em Ciências Computacionais
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://www.bdtd.uerj.br/handle/1/20124
Resumo: A duplicação de dados é um problema comum em aplicações de processamento contínuo de dados, que pode ocorrer devido aos erros de software ou à adoção de medidas de prevenção de perda de dados, esse problema é usualmente tratado após a ingestão dos dados de um repositório, seja por um processo auxiliar ou pelas próprias análises sobre os dados desconsiderarem duplicatas. Entretanto, com a necessidade de análises feitas o mais próximo do momento da criação de um dado e no menor tempo possível, ambas abordagens se tornam insuficientes para atender a ambos os requisitos, sendo necessário que a deduplicação ocorra em tempo de ingestão. Este trabalho explora métodos podem ser utilizados com a biblioteca Apache Spark para tratar a deduplicação de dados em tempo real, analisando o uso de recursos e o tempo de entrega de cada método e identificando seus casos de usos. E investiga operadores de deduplicação nativos do Apache Spark (distinct e dropDuplicates) e ferramentas auxiliares (RocksDB, Apache Ignite e Apache Hudi), que fornecem mecanismos de deduplicação de dados e tolerância a falhas a aplicação. Os resultados experimentais mostram que há um aumento no tempo de entrega dos dados ao utilizar mecanismos externos, mas que estes mecanismos se tornam primordiais para que um processo de ingestão garanta que não haja a perda dos dados utilizados durante a deduplicação, garantindo que nenhuma duplicata seja persistida. Além disso, outros fatores influenciam a escolha do melhor método de deduplicação, como o uso de recursos computacionais e o tamanho dos dados persistidos