I am embarking on a business intelligence project which will require abstracting access to two existing data warehouses. I need to design an application architecture to allow self-service business intelligence to join up the data and provide a single view over the two existing warehouses. I have come up with something like this:
I am struggling with the virtualization/caching piece and wondering if there are any enterprise design patterns to solve my problem. Would an architecture like this work to abstract star schemas in data warehouses? I'm looking at products such as Red Hat JBoss Data Virtualization and Red Hat JBoss Data Grid (amongst others).
We are not using Hibernate currently and my understanding of Data Grids is that they are key-value stores, or object stores and therefore unsuitable for caching a relational model. I should also mention that we are keen to use vendor products for the Self-Service Dashboard part, but we may end up doing some custom-build in this area if vendors can't offer us everything we want.