Um Framework para facilitar o desenvolvimento de aplicativos para extração e processamento de informações de várias fontes
Resumo
O processo de extração de informações de diversas fontes com o objetivo de gerar um ambiente de Big Data é uma tarefa complexa. As variáveis envolvidas, como o volume de informações, a velocidade com que novas informações aparecem e a variedade de suas origens caracterizam esse ambiente complexo. Essa situação leva os desenvolvedores a lidar com um conjunto de detalhes que a tecnologia disponível requer para seu uso eficiente. O resultado é um processo de extração de dados pouco produtivo. Além disso, as ferramentas disponíveis atualmente são projetadas para cobrir cenários específicos e são difíceis de serem adaptadas. Este trabalho propõe um framework para apoiar o desenvolvedor a lidar com esta tarefa de forma produtiva. O objetivo da estrutura é fornecer uma maneira fácil de desenvolver um pipeline de tarefas resilientes e distribuídas. Ele abstrai detalhes da manipulação do banco de dados e da manipulação do enfileiramento de mensagens. Usando um sistema de enfileiramento de mensagens, ele pode distribuir a carga entre vários nós. O Framework dá ao desenvolvedor a possibilidade de criar módulos coesos e bem acoplados através das filas, permitindo a escalabilidade da estrutura de extração de dados. Assim, o desenvolvedor pode se concentrar em entender as estruturas de dados de origem que pretende extrair. Ele não precisa se preocupar com questões como gerenciamento de filas, balanceamento de carga em um ambiente distribuído, controle de conexões de banco de dados e até mesmo a escrita de enfadonhos comandos SQL, reduzindo a complexidade ao desenvolvimento. Em comparação com as ferramentas disponíveis atualmente, a estrutura proposta é leve, mais fácil de usar e projetada para desenvolvedores. Ela foi concebida para ser usada de forma programática em vez de usar a abordagem arrastar e soltar, resultando em ganhos de produtividade significativos.
Referências
U. Sivarajah, M. M. Kamal, Z. Irani, V. Weerakkody. “Critical analysis of Big Data challenges and analytical methods” . Journal of Business Research 70 (2017), 263–286, 2017.
S. Vinoski. “Advanced Message Queuing Protocol” . Internet Computing, IEEE 10 (12 2006), 87-89, 2006. https://doi.org/10.1109/MIC.2006.116.
Rabbit MQ 2020. Open Source Message Broker. https://www.rabbitmq.com/.
Active MQ 2020. Open Source Protocol Developed by Apache. https://activemq.apache.org/.
Msqm 2020. Microsoft Message Queuing. [link].
Talend 2020. Talend Data Fabric™. https://www.talend.com.
Pentaho 2020. Pentaho Platfom. [link].
Quadrante 2020. Quadrantes Mágicos do Gartner de 2019 para Ferramentas de integração de dados e iPaaS Empresarial. https://www.informatica.com/br/dataintegration-magic-quadrant.html.
Petl 2020. petl - Extract, Transform and Load (Tables of Data). https://petl.readthedocs.io.
M. Radonic, I. Mekterovic. “ETLator - a scripting ETL framework”. In 40th International Convention on Information e Communication Technology, Electronics and Microelectronics (MIPRO). Opatija, Croácia, 1349–1354, 2017. https://doi.org/10.23919/MIPRO.2017.7973632.
C. T. Andersen, Ove and Torp Kristian. “ SimpleETL: ETL Processing by Simple Specifications” . In 20th International Workshop on Design, Optimization, Languages and Analytical Processing of Big Data. Vienna, Austria, 1–6, 2019.
S. K. Jensen, T. B. Pedersen, C. Thomsen, O. Andersen. “Business Intelligence and Big Data. Programmatic ETL” , Vol. 324. Springer, Cham, Chapter 2, 21–50, 2018. https://doi.org/10.1007/978-3-319-96655-7.
PostgreSQL 2020. PostgreSQL. https://www.postgresql.org.
Python 2020. Python Programming Language. https://www.python.org.
W. G. Halfond, J. Viegas, A. Orso. “A classification of SQL-injection attacks and countermeasures” . In Proceedings of the IEEE international symposium on secure software engineering, Vol. 1. IEEE, 13–15, 2006.