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.