1

请原谅我这个毛骨悚然的问题 - 我对 OLAP 和多维数据集并不是很熟悉。说明一下我的情况...

我想建立一个数据库来存储问卷结果,每个问卷可能有几十个问题。在收集了几千份已完成的问卷后,我想分析结果,这听起来像是 OLAP 类型的东西(我对此知之甚少)的一个很好的候选者。我需要能够对“所有拥有狗的 20-30 岁男性受访者”进行查询——即结合“你多大了”、“你有没有狗”等的答案。

我还希望能够存储下个月以及下个月的调查结果等,并运行显示本月与上个月的查询等。到目前为止,一切都很好,我想。

这是我的问题的核心:虽然这个月我的问卷可能有关于性别、年龄和养狗的问题,但下个月的问卷可能会包括一个关于(比如)眼睛颜色的问题。它可能(或可能不会)也放弃一些问题。这在 OLAP 世界中是否可行,或者您在设计多维数据集时是否需要提前了解所有“维度”(如果我使用了正确的术语)?

此外,如果我正在运行多个不同但重叠的问题的调查,我可以将它们全部存储在同一个多维数据集中并跨调查运行查询吗?每个调查可能有几十个问题,其中几十个与其他调查重叠。OLAP 系统是否适合这种事情?我只是不知道它们有多严格,以及它们是否真的适合这种用法。

非常感谢任何帮助。

PS。在有人建议之前,我刚刚购买了 Kimball 的数据仓库工具包,但还没有机会阅读它。(我怀疑它可能不会直接回答这个问题)。

4

3 回答 3

2

这里有一份白皮书,其中有一节涵盖了建模调查数据。这可能是您正在寻找的东西。

于 2009-07-13T00:21:58.100 回答
1

我首先要说我也是 OLAP 新手,但我想我已经掌握了您想要实现的目标。

实际上,您的问题是您的维度之一,该问题的答案是事实表的一部分,即事实表具有答案并且具有与年龄、性别、地区(可能)、问题相关的维度。它可能感觉有点前后矛盾,但这是我正在接受的 OLAP。

您可能还需要另一个与问题相关的维度,将它们分组到问卷中,但这可能只是问题维度本身的一个值,即 Question { QuestionnaireID = 1, QuestionNumber = 4, QuestionText = "Do you own a dog?" }。

不知道这是否有帮助,但如果没有别的,希望能给你一些想法。

于 2009-06-16T15:52:17.657 回答
0

另一个OLAP新手也在这里......

1) 我只有使用 Mondrian (Pentaho) 创建 OLAP 多维数据集的经验,它确实允许您修改多维数据集的模式,这只是一个 XML 文件,并重建它们(或用 Pentaho 讲,发布)。所以对于那个平台,无论如何,没有这样的要求提前知道你的所有维度

2) 我同意 Lazurus 关于创建问题维度的建议。并不要求您的每个“事实”都具有在所有维度中都存在的值,因此,如果您要查看“问题 n”的维度,那么我相信它应该只为您提供“问题n”是一个相关的维度。

于 2009-06-16T16:20:18.750 回答