Como fazer reportagens com MongoDB?

Estou a pensar em MongoDB para o meu próximo grande projecto, mas tenho algumas preocupações. Em particular, como posso fazer relatórios?

O meu entendimento é que não posso fazer o mesmo tipo de ligações e agregação que normalmente faria numa base de dados relacional. O relatório que eu tinha em mente envolve a agregação de um monte de dados de diferentes "tabelas" com critérios rigorosos.

Isto é fácil de fazer em MongoDB, ou vai ser uma grande dor de cabeça?

Author: mpen, 2013-01-11

7 answers

Enquanto o Pentaho e a Jespersoft e outras soluções de relatórios legados têm maneiras de bombear dados para fora do MongoDB, existem duas soluções mais recentes concebidas explicitamente para análise e relatórios sobre dados do MongoDB:
  • JSON Studio . Esta é uma solução comercial que lhe permite construir visualmente pipelines de agregação e conectá-los a gráficos.
  • SlamData . Esta é uma solução de código aberto que lhe permite executar consultas SQL directamente no MongoDB (incluindo ligações, grupo Por, ter, etc), através da interface GUI ou uma API. A versão atual do projeto tem Visualização de dados, e permite criar e incorporar painéis de relatórios em aplicações MongoDB.
Porque ambos correm em cima de MongoDB (contra a outra abordagem, isto é, bombeando os dados para fora e normalizando-os para relatar em Mondrian ou algo assim), eles são muito mais fáceis e mais naturais para os relatórios MongoDB. O outro lado é que porque os dados não são carregados em cubos de todas as memórias (por exemplo), a experiência de relatórios pode sofrer se você tentar fazer a complicada geração de relatórios em tempo real.

Disclaimer: Eu sou um contribuinte para o projeto SlamData, embora eu não tenho nenhuma afiliação com JSON Studio.

 19
Author: John A. De Goes, 2016-08-31 17:20:49

Parece que as ferramentas de código aberto como o JasperReports e Pentaho pode ligar para o MongoDB, também, se você quiser pular para o NoSQL navio, mas sem saltar para o NoSQL navio, você pode usar um ODBC ou OLE DB driver como Simba um e, em seguida, usar qualquer normal SQL reporting ferramenta como DBxtra

 4
Author: Miguel Garcia, 2013-01-15 15:32:03
Em geral, não use o mongodb só porque quer experimentar algo novo num ambiente de produção: é isso que lhe vai trazer muitas dores de cabeça. Há um grande post Stackoverflow sobre quando usá - lo: https://stackoverflow.com/a/1477354/1248724

Em relação à apresentação de relatórios: Map-Reduce {[[3]}, especialmente um incremental irá ajudá-lo muito, mas você não pode tratar o mongoDB como uma base de dados relacional. Não é só um. Por exemplo, a consulta para um subdocument loucura. A agregação-Framework mongoDB fará bem na maioria dos casos, mas tem seus limites em comparação com SQL.

 2
Author: Zarathustra, 2017-05-23 10:30:55

Se estiver a utilizar. NET, é fácil escrever relatórios utilizando relatórios DexExpress. Ele funciona bem com o driver MongoDb.NET, apenas uma limitação, você tem que ter tipos fortes para cada agregação que você está usando em seus dados. Todos os tipos que você pode usar a partir do seu fornecedor de db aplicação principal, para que não será uma grande dor de cabeça. Se as suas coleções MongoDB são semelhantes às tabelas de dados SQL, você pode usar drivers ODBC, desta forma é muito limitado, mas você pode usar qualquer serviço de relatórios que funciona com ODBC conexao. Eu prefiro usar primeiro: "DevExpress" XtraReports.

 2
Author: Eugene Bosikov, 2015-11-18 20:39:11

Não sei se consegue fazer em MongoDB todos os seus relatórios mais têm tempo de resposta suficiente. Então você poderia adicionar uma ferramenta em cima de MongoDB para esse propósito. Por exemplo, o icCube agora suporta o MongoDB para este tipo de uso. Não faz sentido extrair todo o conjunto de dados, mas a maior parte do tempo de dados para o relato e análise representam apenas uma fração do todo e faz sentido conectar uma ferramenta OLAP em memória para o relato e análise.

 1
Author: Marc Polizzi, 2014-05-22 09:17:52

Tanto quanto sei, não há uma maneira fácil de realizar juntas, agregações, etc. da mesma forma que faria numa base de dados relacional em Mongo. Existem diferentes ferramentas de análise externa que você pode usar para isso. Na minha empresa, usamos O Sisense e ligamo-lo ao MongoDB através de um driver ODBC, que nos permite utilizar funcionalidades do tipo SQL nos nossos dados e funciona muito bem. No entanto, eu não sei de uma maneira de fazer isso nativamente em MongoDB.

 1
Author: Dan, 2015-04-14 13:45:13

O Relatório MongoDB é facilitado porque tem a estrutura de agregação que fornece uma api que pode ser conectada a um software de relato. Aqui está um artigo que fornece detalhes sobre relatórios e visualização MongoDB http://blog.jinfonet.com/mongodb-reporting-visualization-jreport/

 0
Author: Bon, 2014-09-23 13:56:56