问题
What makes access to OLAP Cubes/Datamarts and similar datastructures, faster than to relational databases?
EDIT
A bounty of 200 will be provided asap.
回答1:
I would say mainly because of different purposes.
OLAP cubes / datamarts are used mainly in read mode for data analysis by business users whereas I'm assuming when mentioning relational DBs you're talking about OLTP usage requiring for example ACID transactions.
Those different purposes means:
- different constraints for the implementation leading to different data structures; read/only data structures are much faster than read/write counterparties; row-oriented DBs are quite good for OLTP usage but rather innefficient (as useless information is accessed for nothing) for OLAP usage where you mainly want to access a whole column/measure (hence the buzz about vertical DBs; note that in-memory OLAP systems are column oriented as well).
- for very large systems, OLAP systems may perform as well some pre-calculation of certains dimension aggregations.
- different content: the whole "operational" data is not required and the business model might be simplified towards analysis purpose by business users; then subset of data might be used, joins can be done upfront when creating dimensions, etc...
In addition OLAP has a more powerful language (MDX) with higher concepts like hierarchical dimensions; implementations can take advantage of that and propose internal data structures optimized for those concepts.
My 2 cents.
来源:https://stackoverflow.com/questions/10551541/what-makes-access-to-olap-cubes-datamarts-and-similar-datastructures-faster-t