Creation of an aggregated / summary database of Oracle, Sql Server and Mongodb reports

This is a design, because in the past I have not done anything like this, and this is a good challenge. I have a server that supports Oracle, Sql Server and Mongodb. You can choose which one to use at startup. In fact, each server stores xml packages that are broken down into their constituent elements.

I need to create a report database that provides aggregation and summary data for reports for the control panel, but the problem (possibility) is Mongodb. I could easily use SQL Server Reporting Services to create reportdb, the same with Oracle, or I could do something like Crystal, which works against both, or even creates db, and sets up a set of triggers for each table, with some logic pl / sql with Oracle or T-Sql with Sql to create db reports on the fly. And that will take care of the report. But this is a mongod. Little or no reporting infrastructure, of course, not outside BIRT, or jaspersoft (Java). I am using C #.

I was thinking about having a C # server component that intercepts the incoming xml packets and extracts the corresponding field data from the element and writes it to the reporting db, maybe something like sqlite (which may be too small). If it was running on sql or Oracle server, then I would use this db instance to support db reports.

In any database, I really only support up to six months. Data will be classified as 24 hours, 1 week, 1 month, 3 months, 6 months, with a progressive archive for compression and backup db.

But this is where it gets foggy. For example, using sqlite as a db report and mongodb as an xml database. Example. If the user wants to deploy, I would have to provide some kind of dynamic update that would pull additional information about the reports from Mongodb, or everything could be done at the server component stage, when it was written to sqlite.

Or all f bol.cks

Any ideas or thoughts are greatly appreciated. Bean.

+4
source share
4 answers

Check out Nucleon BI Studio . You can get a fully functional free 30-day trial, and the full version is $ 250. I used it in the past, it's not bad, and part of what it will cost is to develop.

I am in no way affiliated with the company.

+1
source

In terms of receiving data from mongodb for reporting, you can write your own code on top of 1) mongodb requests 2) Aggregation structure 3) In the Map database / reduce or 4) Use the hadoop connector. You can use the C # driver for this. In addition to this, as you mentioned, there is Jaspersoft or Pentaho integration (http://wiki.pentaho.com/display/BAD/Create+a+Report+with+MongoDB)

+3
source

I think Microsoft Biztalk Server is best for you. You can use the Biztalk server pipeline component to actually process incoming messages. (You can do simple promotions, transformations, etc.). For actual data processing, you can use Biztalk Orchestrations . And for aggregation and reporting, you can use Biztalk Business Activity Monitoring . It supports real-time aggregation of data and puts it in your database. It has a BAM portal from which you can see all stored and aggregated data. If you want to have your own reporting style, you can use Microsoft Report Builder 3 and deploy your reports using SSRS.

+2
source

Perhaps I do not understand your question entirely, but I will give it a chance: first, your question, in a nutshell.

You want to create reports based on different types of data warehouses: sql this, sql, or a document database. The existing options that you feel are the assembly of reports of various types.

You have various options for receiving data. You can intercept data as it enters the system or receive information from your databases. To make a dynamic report with drillthrough, it really depends on the type of reporting tool you want to use. You just need to build a facade that hides the data warehouse - either by intercepting packages and storing them in the database of your choice, or by creating them from the data warehouse of your choice through the same abstraction / facade. You might even think of a hybrid solution in which you initialize from a data warehouse, such as a mango, when you initialize your reporting component, and then dynamically update the data based on incoming packages.

It all depends on where you want to go.

+1
source

Source: https://habr.com/ru/post/1399241/


All Articles