谢谢:这里的两个答案都非常有帮助,但我只能选择一个。我非常感谢您的建议!
我们的数据仓库将比传统的分析报告更多地用于工作流报告。我们的用户更关心“当前情况”而不是历史。(尽管历史也很重要。)我们是一个没有成本或相关计算的政府实体。大多只是给定位置内和具有相关历史的人数。
我们正在使用 Oracle,我发现尽可能使用星型连接具有明显的优势,并且希望将所有内容重新架构为与我们的业务使用合理的星型模式非常相似。这个 DW 中的速度至关重要,许多测试已经向我证明了星型模式方法。
我们的“person”表是关键——它包含超过 400 万条记录,将是查询中最常用的来源。 它可以在具有多个维度(如年龄、性别、隶属关系、位置等)的恒星中心看到。这是一个很长的表,特别是当我将它加入地址和联系信息时。
但是,当我们开始查看历史时,它更像是一个维度表。例如,有两个不同的历史记录表,其人员键指向人员表。一个拥有超过 2000 万条记录,另一个拥有近 5000 万条记录,并且每天都在增长。
这个表是事实表还是维度表?一个可以同时工作吗?如果是这样,那会是一个很大的性能问题吗?查询更多维度而不是事实是否很常见?如果使用 person 表作为维度的 DIFFERENT 事实表实际上只有 60,000 条记录(小得多),会发生什么情况。
我认为我的问题是我们的数据及其使用不符合星型模式的常用示例。
澄清: 下面添加了一些好的想法,但也许我遗漏了太多,无法很好地解释。这里有更多信息:
我们处理选民数据库。除了按不同群体统计选民人数外,我们没有任何措施:按政党、按年龄、按地点统计选民人数;按选票类型和选举、选票状态和选举等统计选民人数。我们确实有“投票历史”日志以及活动审计日志(地址变更、政党等)。我们有关于哪些选民是选举工作人员的信息以及所有相关信息。我想我稍后会谈到外围的东西。
现在我专注于我们的两个主要“业务流程”:选民登记(即选民)和选举投票率。首先,选民是事实。其次,选民是一个维度,还有政党、选举和选票类型。(如果有人担心 - 不,我们不知道人们如何投票。只是他们这样做。哈哈)
我希望这能澄清一点。