Defesa de dissertação (25/02/2019): João Antônio de Ferreira
Discente: João Antônio de Ferreira
Título: Um framework Algébrico para Workflows de Análise de Dados em Apache Spark
Orientadores: Eduardo Soares Ogasawara (orientador), Rafaelli de Carvalho Coutinho (coorientador)
Banca: Eduardo Soares Ogasawara (CEFET/RJ) (presidente),
Rafaelli de Carvalho Coutinho (CEFET/RJ), Jorge de Abreu Soares (CEFET/RJ), Fabio Andre Machado Porto (LNCC), Leonardo Gresta Paulino Murta (UFF)
Dia/Hora: 25 de fevereiro / 14h
Sala: H522
Resumo:
A atividade típica de um cientista de dados envolve a implementação de diversos processos que caracterizam experimentos de análise de dados, modelados como workflows. Nestas análises há a necessidade de executar diversos códigos em diferentes linguagens de programação (Python, R, C, Java, Kotlin e Scala) em diferentes ambientes de processamento paralelo e distribuído. Dependendo da complexidade do processo e das inúmeras possibilidades para execução distribuída destas soluções, pode ser necessário gastar muita energia em diferentes implementações que podem afastar o cientista de dados do seu objetivo final, que é o de produzir conhecimento a partir dos grandes volumes de dados. Dentro deste contexto, este trabalho visa apoiar na solução de tal dificuldade ao propor a construção do framework WfF, concebido a partir de uma abordagem algébrica que isola a modelagem do processo da dificuldade de executar, de modo otimizado, tais workflows. Também foi criada uma linguagem agnóstica na forma de uma eDSL (Embedded domain-specific language) inspirada nos conceitos da MDA (Model Driven Architecture) para execução de workflow centrado nos dados (dataflow) e um gerador de código Scala para execução no Apache Spark. O uso de UDF (User Defined Functions) escritas em linguagens diversas, regidas por operadores algébricos (funções de segunda ordem da programação funcional) permite processamento otimizado de dados estruturados, semiestruturados e não estruturados ampliando o domínio de aplicações para além do workflow científico, podendo, ser usado em workflows comerciais de análise de dados. As funcionalidades do ecossistema Apache Spark foram avaliadas no processo de otimização da execução de filtros (operador filter) e mapeamentos (operador map) que operam sobre UDF usando a API (Application Program Interface) Catalyst do SparkSQL, e os experimentos apontam a viabilidade desta abordagem.