Можно ли построить куб OLAP, если детали модели не известны заранее? - PullRequest
0 голосов
/ 16 июня 2009

Извините за неясный вопрос - я не очень знаком с OLAP и кубами. Позвольте мне объяснить мою ситуацию ...

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

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

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

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

Любая помощь с благодарностью.

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

Ответы [ 3 ]

2 голосов
/ 13 июля 2009

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

1 голос
/ 16 июня 2009

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

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

Вам также может потребоваться другое измерение, относящееся к вопросу, которое группирует их в вопросники, но это может быть просто значение в самом измерении вопроса, т. Е. Question {QuestionnaireID = 1, QuestionNumber = 4, QuestionText = "У вас есть собака? " }.

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

0 голосов
/ 16 июня 2009

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

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

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

...