Ir para o conteúdo principal

[SPIKE] Verificar frameworks de visualização de dados Open-Source (R, Python, JS e C#)

OBJETIVO

Avaliar ferramentas de visualização de dados, e sua integração com diversos serviços.

JUSTIFICATIVA

O Data Studio e o Power BI, embora ferramentas potentes, são limitados em comparação à qualquer linguagem de programação, na maioria dos aspectos.

ENVOLVIDOS

Desenvolvimento do Estudo:

  • João Thomas de Souza Telles 

Suporte Técnico:

  • Anderson Gomes de Souza 

Coordenador de Análise e Gestão de Dados:

  • Abdenildo Deividy Sobreira dos Santos

Product Owner:

  • Pedro Henrique de Andrade Gomes 


     

    GLOSSÁRIO

    • Visualizando informação... por que não usar uma linguagem de programação?
    • Conhecendo a alternativa em R
    • Conhecendo a alternativa em Python
    • Conhecendo a alternativa em JavaScript
    • Conhecendo a alternativa em C#
    • Comparativos
    • Conclusão
    • Referências

    Visualizando informação... por que não usar uma linguagem de programação?

    Uma das etapas mais importantes da Análise de Dados é a visualização dos dados. No cenário atual, os métodos de visualização utilizados são todos ferramentas prontas, que tem como vantagem a conveniência, e até mesmo a velocidade na criação de visualizações potentes. Porém essas ferramentas tem falhas grandes: o Data Studio não é viável atualmente devido ao requerimento do banco ter um IP externo publicado, enquanto o Power BI é caro, lento, de difícil adaptabilidade e integração em um ambiente web. Então surge a dúvida, por que não... R? Por que não... Python? Por que não... uma alternativa open-source? Este estudo busca analisar qual a melhor alternativa, e documentar as alternativas conhecidas nas linguagens citadas no título.

    Conhecendo a alternativa em R

    O R é....(alguma coisa)

    Integrando R com outras linguagens!

    - C# com ASP.NET : O R possui uma biblioteca, R.NET, que permite algum nível de integração entre R e C#, mas o ASP.NET entra em conflito com ela. A solução neste cenário seria subir uma imagem do Docker com um aplicativo em R Shiny e utilizar o Iframe dentro da página, conforme o exemplo abaixo(note que 1 - o dashboard abaixo é público, e 2 - não foi feito para ser utilizado como Iframe).

    image.png

    - Python!!!: O R é extremamente integrável com Python, como demonstrado nestes https://www.business-science.io/business/2018/10/08/python-and-r.htmlhttps://towardsdatascience.com/five-ways-to-work-seamlessly-between-r-and-python-in-the-same-project-bf173e35fdef artigos

    - Javascript: é universalmente compatível, desde que você use uma linguagem que terá interface web. (Em alguns casos não é necessária a interface web, mas na maioria.)

    Vantagens e desvantagens do R

    - Mais fácil na hora de criar visualizações.

    - Ao que tudo indica, deve ser mais rápido que Python(ainda não testei PyScript)

    - Não tem um back-end muito bom, depende sempre de outra linguagem em caso de implementação web.

    - Alta complexidade de implementação em um cenário onde existem vários dashboards a serem feitos em R.

    Conclusão(Sobre o R)

    O R é uma linguagem potente devido às suas facilidades e capacidade de lidar com dados eficientemente, além de ser eficaz na geração de gráficos e visualizações. Com o uso de um app Shiny rodando em Docker, é possível integrar R com qualquer cenário web, porém ao mesmo tempo, essa é a limitação do R. Em um cenário em que se é necessário construir vários dashboards com R, você teria que ou implementar várias instâncias do Docker(uma para cada dashboard), ou construir uma aplicação em R extremamente robusta. Além disso, seria necessário um back-end em outra linguagem que não fosse R.

    Conhecendo a alternativa em Python

    O Python é uma linguagem potente, com capacidade de trabalhar tanto na estruturação do projeto no back-end, quanto na visualização dos dados. Seja integração com IA, visualização de dados ou projetos web, Python é uma linguagem extremamente potente.

    Com a biblioteca Dash, você consegue criar dashboards interativos através do Python, usando Pandas e Plotly, porém essa alternativa requer um back-end feito em Python.

    image.png

    Com o uso de PyScript, auxiliado ou não pela biblioteca Altair, é possível utilizar Python da mesma maneira que JavaScript, reduzindo muito a necessidade de um back-end feito em Python, conforme é demonstrado no vídeo a seguir: https://www.youtube.com/watch?v=3mfqTGs05cE. O PyScript é algo extremamente recente, porém já é extensamente utilizado em diversos projetos.

    image.png

    Integrando Python com outras linguagens!

    - C#: O ambiente .Net dificulta integrações. Porém, existe a biblioteca IronPython para C#, que simula Python no código, mas compila esse código para .Net; a desvantagem disso é que IronPython não é Python, então não é possível fazer muitas das coisas que Python faz. Com PyScript, a história é diferente: assim como JavaScript, PyScript é integrável em qualquer ambiente web.

    - R: O R é extremamente integrável com Python, como demonstrado nestes https://www.business-science.io/business/2018/10/08/python-and-r.htmlhttps://towardsdatascience.com/five-ways-to-work-seamlessly-between-r-and-python-in-the-same-project-bf173e35fdef artigos. 

    - Javascript: Universalmente compatível.

    Vantagens e desvantagens do Python

    - Linguagem robusta, permite um front e um back-end, removendo a necessidade de outra linguagem fazer o back-end(como seria com R)

    - De mais fácil integração, graças ao PyScript

    - Maior customização dos Dashboards

    - Maior complexidade de código

    - Relativamente pesado(mesmo pesado, ainda mais rápido que o Power BI)

    Conclusão(Sobre o Python)

    O Python é uma alternativa potente, altamente independente e adaptável.  Conhecido na Data Science por causa de bibliotecas com Pandas e Plotly, o Python se apresenta como uma alternativa que requer esforço. Embora possua diversas vantagens em sua independência e capacidade de integração, ele também é correspondentemente mais complexo: você consegue fazer de tudo, mas ao mesmo tempo, você precisa saber fazer de tudo. O Python é extremamente viável no cenário atual da Coordenadoria, principalmente devido ao conhecimento já adquirido por alguns membros da mesma.