我现在正试着学习数据仓库,但我真的不明白。我的问题并不是很具体,但我只想有人向我解释一下数据仓库的概念。
我现在正在尝试用索的数据库创建一个数据仓库。
在这个数据库中有8个表,对于那些使用这些表的人来说,它们是非常清楚的:
1.维数
尺寸是多少?这是我不明白的重要部分。对我来说,我看到了7个维度:徽章,评论,帖子,PostLinks,标签,用户和投票。但是我不认为使用数据仓库有什么意义,尺寸就是表。
-Would日期是一个维度吗?什么日期?每条评论和帖子?
-Would :将帖子分为问题维度和答案维度是相关的吗?
-What其他尺寸我可以放吗?
2.事实表
我怎么把所有的外键(userId,postId,commentId.)在一张桌子上?例如,假设一个用户发布了一个问题,但是没有评论。我会在我的事实表中使用他的userId一行,在commentId列中使用postId a NULL?
措施。我在考虑事实表中的下列措施:问题数量、用户数量、标签数量.
有人能告诉我如果我朝正确的方向走吗?
发布于 2015-11-19 15:59:29
在构建数据仓库时,您必须回答的第一个问题是“我想回答什么问题?”
以Stack溢出为例,一个问题可能是:“在过去的两年中,每个月大约有多少个帖子?”
要回答这个问题,我们需要创建Post和Post标签事实表。因为这些表都是select和insert,所以我们可以对事实数据进行去或删除,这样就更容易选择了。
所以,我们可能有一个Post事实表,看起来像这样。
Post
----
Post Number
Post Text
Post Timestamp
Post Tag 1
Post Tag 2
Post Tag 3
Post Tag 4
Post Tag 5根据时间戳和按月分组进行选择可能比较简单。我们只关心前5个帖子标签,也不在乎其中一些标签是否为空。
现在,您不必去还原数据。通常,如果对数据进行反错处理,查询会运行得更快。
对于其他可用的数据,您也是这样做的。你想回答什么问题?
发布于 2015-12-26 04:38:56
堆栈溢出可能不是最好的数据模型,如果您想要将您的头脑围绕DW的概念。它不包含许多“传统”事实。我脑海中闪现的唯一例子是上/下投票和用户排名。
你会发现很多我们所说的“无事实的事实”。这些本质上把多维度的交集看作是一个事实,只是一个隐含的“计数”作为唯一的事实。例如,在Post事实中,它只是用户、日期、数据库等的交叉处的计数。
您可能会考虑使用“垃圾”维度这样的概念来支持引用事实表中的标记。这将使您为每个唯一的标记组合分配一个伪键,然后这个键将存储在事实表中。
如果你想学习DW,用你的个人财务,这就是我学到的。您可以通过帐户余额了解快照事实,可以通过购买了解事务性事实,还可以创建供应商和帐户维度等。
https://stackoverflow.com/questions/33808070
复制相似问题