Galera, como vocês fazem a parte de relatórios de vocês? #1782
Replies: 1 comment
-
Faala @wilsonneto-dev, tudo beleza? 1 - Quando eu penso em fazer um relatório, antes de tudo começo pela projeção da Query no banco de dados, como ela será projetada para o usuário? É algo complexo que envolve muitos relacionamentos? Então, preciso ver estratégia de SQL Tunning. Se estiver aberta a opção para um banco NoSql para auxilar, eu utilizo ou o **MongoDB ou Elasticsearch, o conjunto ELK (Elasticsearch, Logstash e Kibana) eu usaria em uma aplicação crítica, para a parte da Infra. Usando somente o Elasticsearch ou MongoDB, criaria uma rotina agendada, um JOB, que consultaria os dados do banco relacional e verificaria novos registros, armazenando no banco NoSql o qual seria utilizados para a consulta dos relatórios. 2 - Na parte Visual, complementando a estratégia acima, eu montaria essa API de relatórios conectado ao banco NOSQL, poderia usar gráficos caso fosse necessário, ou seja, na maioria das vezes. Eu gosto muito de ler sobre Data Visualization e tento alinhar com a pessoa que solicitou o relatório, que existem boas práticas para isso e determinados gráficos para exibir tal informação: Você pode pesquisar no Google por: KPI (Key Performance Indicator) best practices, isso tudo está dentro de Data Visualization, Já tive muitos problemas com relatórios personalizados, normalmente eu crio todos os possíveis cenários de relatórios, fazendo com que o usuário possa escolher as colunas, mas se realmente tiver que ser personalizado, talvez terá que adotar um modelo relacional utilizando as práticas de sql tunning (Nunca testei com Nosql). 3 - Maravilha, é basicamente esse caminho que sigo, percebi que minhas informações talvez agregue pouco. Eu utilizo o MongoDB hoje, no backend eu faço tarefas para migrar os dados do relacional para o Mongo e a API de relatórios (Aqui eu utilizo o GraphQl para uma buscar mais personalizada;), a minha SPA consome essa api e eu gero os relatórios sob demanda, utilizando estratégia de Lazy Execution, assim eu consigo ter mais performance consumindo menos recursos de Infra. Espero ter acrescentando algo! Grande abraço e boa sorte. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Bom dia pessoal,
meu cenário é, estou finalizando um projeto pessoal, admin/web app/mobile, vai ter cadastros de usuários... Quero mensurar 3 métricas da plataforma (web e mobile), número de usuários, novos usuários por período, acessos a plataforma e acessos a cada item do catálogo.
Aqui entra duas dúvidas, na verdade gostaria de sugestões... Como vocês fazem os relatórios de vocês:
1 - Ferramentas: Utilizam alguma ferramenta? Tipo Kibana+Logstash e Elastic Search... Já trabalhei em projetos web q enviavam os eventos pro Google Analytics e lá mesmo faziam os reports... Indicam alguma ferramenta? Lembrando que preciso dos dados consolidados do app e do web em um mesmo lugar (Acho que o Analitics não faz isso)
2 - Lado da SPA/React: Se for fazer no próprio app de admin da plataforma, como vocês fazem os relatórios em SPA's, simplesmente buscam os dados da API e mostram na tela em gráficos, há um padrão de boas práticas quando se trata de relatórios? Estou usando React + React MUI (Já passe pro projetos que geravam o relatório na página ou em PDF no próprio admin, mas muitas vezes haviam mudanças em como o pessoal gostaria dos dados e precisávamos desenvolver um novo relatório apenas para mudar alguma dimensão)
3 - Ingestão de dados/eventos - Sobre o fluxo se eu for criar na própria plataforma pretendo fazer o seguinte fluxo, a SPA dispara um evento que salvo em uma fila, alguém escuta esta fila e salva em uma base de eventos/logs, a cada 6h uma função serverless passa consolidando os dados das últimas 6 horas em tabelas prontas para os relatórios. Penso em utilizar PostgreSQL para a base da plataforma e MongoDB para a base de reports consolidados e eventos/logs. Acreditam ser uma boa escolha utilizar o mongo aqui?
Muito obrigado!
Abraços!
Beta Was this translation helpful? Give feedback.
All reactions