views:

92

answers:

2

For a new project I'm working I have the need to store some data into a database. The type of data and access model fits well with the NoSQL model and document databases. We are considering things like MongoDB but are still yet undecided.

One of the requirements is to be able to allows Business Intelligence tools to consume some of our data. Others I work for indicate that these tools allow consuming data directly from relational databases. I know not know what types of Business Intelligence tools need to mine the data.

Do BI tools typically support non-SQL databases as well? Are there other standard integration options that they have (Some seem to support web services of flat files) that might be applicable? Is it worth choosing a relational database simply so it can be more easily consumed by a third party BI tool?

+1  A: 

Do BI tools typically support non-SQL databases as well?

No. And they really can't. Non-SQL databases are very different from each other. NoSQL is really just a loose set of "things not SQL".

However, the problem you're going to face is a classic one. Most NoSQL database are run under the concept that you can "batch" and "output" the reporting that you're planning to do. (typically this means map-reduce)

So if you want to use common BI tools, you simply have to "bridge the gap".

MongoDB supports a CSV export that can then be imported into a relational DB for analysis. For some complex queries, you'll likely need to write "map-reduce" queries and then export that data. Obviously, you'll have to write a couple of export / import scripts.

But it's quite possible to provide BI reporting and still use MongoDB as the primary store of data. You'll still need an RDBMS running for the BI suite. But it's unlikely to require much hardware as it's just used for reporting and not for live data.

Gates VP
A: 

MongoDB is very nice but it isn't flexible. The developer defines the relations between the entities when developing the application. However business intellegence means that people with domain knowledge can look for new relations between entities. Data can get new meaning that was unknown when the developer developed the structure of the tables/collections.

TTT