Вопрос

Я использую Saiku 2.5 и не уверен, как смоделировать следующую ситуацию:

Дименты:

  • Категория (~ 20 рядов)
  • Подкатегория (~ 100 рядов)
  • SubsUbcategory (~ 1200 рядов)
  • Subsubsubcategory (~ 8000 рядов)
  • Другие1 (~ 100000 рядов)
  • Другие 2 (~ 50000 рядов)
  • Другие 3 (~ 500 рядов)
  • Другие 4 (~ 500 рядов)
  • Другие 5 (~ 200 рядов)
  • Другие 6 (~ 200 рядов)
  • Другие 7 (~ 100 рядов)
  • Другие 8 (~ 10 рядов)

Измерения:

  • Факты (~ 20000000 рядов)

Отношения

  • Факт имеет другой [ d
  • Факт имеет SubbSubcategory
  • SububSubCategory имеет SubbCategory
  • Sububcategory имеет подкатегорию
  • Подкатегория имеет категорию

Я хотел бы знать, лучше ли это с точки зрения производительности, деко-нормализовать все категории в одну таблицу или оставить его такими, какими она есть. Каждая таблица «категория» имеет варэр (8) и два текста ().

Это было полезно?

Решение

Я хотел бы знать, лучше ли это с точки зрения производительности, деко-нормализовать все категории в одну таблицу или оставить его такими, какими она есть.

Вы оптимизируете хранилище данных для выполнения чтения, поэтому я бы выбрал денормализацию таблиц категорий. Вы говорите примерно 8000 рядов или полтора страницы в большинстве реляционных баз данных. Вы можете сохранить эту таблицу в памяти.

Похоже, что схема звезды будет работать для вас. Если другие измерения имеют отношения, то схема снежинки была бы оправдана.

Другие советы

Ваши категории должны быть в одной таблице, так как соединения строк 8K просты.

Другие должны быть разделены на несколько таблиц. Это позволит Мондриана выполнять соединение на высоких уровнях (низкая кардинальность), когда это возможно, и, таким образом, работать лучше.

Мондриан хорошо играет с обоими сценариями.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top