Friday 15 May 2015

Design questions for using RavenDB for reporting -


I am working on a project where I am collecting data from different sources, and later I will do some reporting Need information? All reports are predefined.

I am thinking of using RavenDB for it, as I think it can be a good fit to reduce indexed and map / part so that I Make the index.

What is the way to go to one-index-per-report or does it come with any loss? And how about the index starvation?

One-index-per-report will inspire many additional indexes instead "one-index Instead of "Duty-Dataset", then create several reports around each dataset.

If you are mapping / decreasing then there may be more than one dataset per copy. For example, you may have the following indexes:

  • OrderDetailsIndex
  • OrderTotalsByCustomer
  • OrderTotalsByMonth
  • OrderTotalsByDay
  • OrderTotalsByProduct

    You can create many reports from these indexes.

    You do not do want to have many indexes like:

    • Commands Customer
    • Order Byteet
    • Commandbiz zipcode

      These are only multiple maps which can be limited to the same index, so they will be redundant to split.

      If you have a report per index, it will exit control:

      • OrderDetailsIndex_ForReportA
      • OrderDetailsIndex_ForReportB

        The difference between A and B can only be the layout of the field.

        And finally, you may want to consider upgrading to RavenDB 2.5. There is a new feature called "Streaming Unbound Results", which you can read about it. Perhaps one index is the best way to feed the data in a report. If your reporting engine requires a IEnumerable data source (mostly), then you may want to use it.

No comments:

Post a Comment