Можно ли построить OLAP-куб, если детали модели заранее не известны?

StackOverflow https://stackoverflow.com/questions/1002334

  •  05-07-2019
  •  | 
  •  

Вопрос

Простите за неясный вопрос — я не особо знаком с OLAP и кубами.Поясню свою ситуацию...

Я хотел бы создать базу данных для хранения результатов анкет, где в каждой анкете может быть несколько десятков вопросов.Собрав несколько тысяч заполненных анкет, я хотел бы проанализировать результаты, и это звучит как хороший кандидат для вещей типа OLAP (о которых я знаю очень мало).Мне нужно иметь возможность выполнять запросы «всем респондентам мужского пола в возрасте 20–30 лет, имеющим собаку», т. е.объединение ответов на вопросы «сколько вам лет», «есть ли у вас собака» и т. д.

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

Вот суть моего вопроса:в то время как в этом месяце моя анкета может содержать вопросы о поле, возрасте и наличии собаки, анкета следующего месяца может включать вопрос, скажем, о цвете глаз.Возможно (а может и нет) возникнут некоторые вопросы.Возможно ли это в мире OLAP, или вам нужно заранее знать все «измерения» (если я использую правильный термин) при проектировании куба?

Кроме того, если я провожу несколько разных опросов с разными, но частично перекрывающимися вопросами, могу ли я хранить их все в одном кубе и выполнять запросы к различным опросам?В каждом опросе может быть несколько десятков вопросов, причем пара десятков вопросов пересекается с другими опросами.Поддерживают ли OLAP-системы подобные задачи?Я просто не знаю, насколько они жесткие и подходят ли они для такого использования.

Любая помощь очень ценится.

ПС.Прежде чем кто-то это предложил, я только что купил набор инструментов для хранилищ данных Кимбалла, но еще не успел его прочитать.(Я подозреваю, что это все равно не может дать прямого ответа на этот вопрос).

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

Решение

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

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

Начну с того, что я тоже новичок в OLAP, но думаю, что понимаю, чего вы хотите достичь.

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

Вам также может понадобиться другое измерение, связанное с вопросом, которое группирует их в анкеты, но это может быть просто значение в самом измерении вопроса, т.е.Вопрос {opronatereid = 1, oftybnumber = 4, obstertext = "У вас есть собака?" }.

Не уверен, что это поможет, но, надеюсь, даст вам несколько идей.

Еще один новичок в OLAP...

1) У меня есть опыт создания кубов OLAP только с помощью Mondrian (Pentaho), который позволяет вам пересмотреть схему куба, которая представляет собой просто XML-файл, и перестроить их (или, говоря языком Pentaho, опубликовать).Так что для этой платформы, во всяком случае, нет таких требований, чтобы заранее знать все ваши размеры.

2) Я согласен с рекомендацией Лазуруса о создании набора вопросов.Не требуется, чтобы каждый из ваших «фактов» имел значение, присутствующее во всех измерениях, поэтому, если вы просматриваете измерение «Вопрос n», то я считаю, что это должно дать вам данные только для тех анкет, где «Вопрос n» — это соответствующее измерение.

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