首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据仓库如何标准化以跟踪元数据更改?

数据仓库如何标准化以跟踪元数据更改?
EN

Database Administration用户
提问于 2017-03-09 19:35:55
回答 1查看 190关注 0票数 1

我需要构建一个仓库结构,它由定期的提要填充,这些提要由刮取的数据、权限源和主源组成。为了确定数据集市应该使用哪些数据的优先级,我需要跟踪每个数据点的创建(何时获得这些数据?)、更新(数据何时更改?)和现有匹配(该数据上次出现的时间是什么时候?)。从我的研究来看,5NF是我应该使用的规范化水平。

例如,我可能会得到一个提要,它按照学生最喜欢的类的列表和排名顺序给出学生的名字。另一个提要可能带有相同的数据,但可能有一个不完整的类列表,或者缺少秩顺序。每个提要都会带有唯一和可靠的学生标识符。

我想至少会有三张表格来处理这些数据:

  1. 学生(s_id,姓名)
  2. Student_Class (s_id,class_id)
  3. Student_Class_Order (s_id、class_id、order_num)

其中每一个都有isDeleted、created_time、created_feed_id、modified_time、modified_feed_id、matched_time、matched_feed_id的列。

什么样的结构最有意义?似乎应该插入任何新的数据池组合,并且我不应该有更新(除了一个软删除标志)。有什么想法吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-03-10 09:32:49

简单来说,答案是:定义你的最终结果(需求)并从那里向后工作。

使用DW模式,规范化很快就会从窗口中消失。

在我的例子中,我们有3个ETL模式。

  1. 分期:表被提取到我们的DW中,就像它们在源系统中所显示的一样,加上一些元数据的列,正如您所描述的。关键是提取时间。
  2. Transform:这些表具有与最终结果维度和事实表完全相同的模式。此时,我们正在将数据从OLTP模式降为DW星型模式。同样,它还有ETL元数据的字段。原始的提取日期时间可以与记录一起运行。
  3. 存储:这是我们的最终结果,一个由OLAP多维数据集读取的DW星型模式。为了加载我们的数据,我们将转换与最终的数据存储表进行比较。插入新行。如果某一行变了,我们就把旧的换掉,插入新的。为此,我们为is_current、valid_from datetime和valid_to datetime提供了字段。

从技术上讲,我们不需要3个模式。这只是一个惯例,它允许我们保持整洁。

阅读关于金球方法缓慢变化的维数的文章。输入1或2等。您将看到存储所需元数据所需的字段的示例。

跟你的公司谈谈他们想要什么或者需要DW能做什么。无论您是否需要SCD,都会对您的模式、所需的元数据以及最终可能达到的正常化水平产生重大影响。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/166721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档