В основном да.
Если у вас была простая сетка
Salary Januari Februari March April May June
Q1 Q2
Me 1100 1100 1100 1100 1500 1500
Collegue1 2000 2000 2000 0 0 0
Время - это иерархическое измерение с двумя уровнями (показано).
Другое показанное измерение - «EmployeeID». Другое измерение (не показано) может быть в PointOfView (например, Бюджет / Факт).
Сумма (например, 1100) - это Мера, и она составляет ваши факты (неидентифицирующие части фактов). Измерения определяют функции консолидации для каждой меры на разных уровнях (например, сумма (Q1) == SUM (сумма (январь ... март))). Обратите внимание, что консолидация будет вести себя по-разному в зависимости от меры (например,% от налога на прибыль не будет суммироваться, а будет каким-то образом консолидирован: насколько точно искусство дизайна куба OLAP).
(пустяки: вы можете рассчитать показатели, которые используют MDX для запроса, например, отклонения суммы по сравнению с предыдущим кварталом, средней заработной платы за весь квартал и т. Д.; Будет довольно ясно, что снова формулы консолидации требует мысли).
В этот момент вы начнете видеть, что разработка правил консолидации зависит от порядка, в котором рассчитываются правила (если формула для «отклонения зарплаты%» оценивается ПЕРВЫМ, а затем консолидируется, вам необходимо ее усреднить; однако если исходная мера SALARY сначала консолидируется (суммируется) до уровня Q1, Q2, то производная мера может быть рассчитана так, как если бы она была на самом низком уровне.
Теперь все становится веселее, когда вы решаете, как хранить куб. Существуют два основных способа:
- рассчитать все ячейки (включая все объединения во всех сценариях)
- рассчитать на лету
Никого не удивит, что большинство движков OLAP сходятся на гибридных методах (HOLAP), где значительная часть часто используемых уровней консолидации предварительно рассчитывается и сохраняется, а другие части вычисляются на лету.
Некоторые будут хранить базовые данные в стандартной СУБД (ROLAP), а другие - нет (OLAP). Механизмы, ориентированные на высокую производительность, как правило, хранят все данные в предварительно вычисленных кубах (прибегая к «множеству маленьких субкубов» для очень разреженных измерений).
Ну, в любом случае, это было немного напыщенно. Мне понравилось читать то, что я когда-то узнал, занимаясь хранилищем данных и OLAP