「这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」。
接着上一篇,继续来看下维度表技术的详细。
维度表结构最大特点就是都有主键列,之前的文章说过,这个主键对应的是事实表中的一个一个外键。
事实表中记录的是现实世界的物理行为,而维度的意义就是代表物理事件中的具体环境,描述环境我们就是说维度。比如销售事务中的环境,有产品、时间、市场等等。
1、物理代理键
我们常常在设计表的时候用到的主键不是操作型系列的自然键,因为行为跟踪的需要,不会轻易采用自然键,减少多余维度的展示。另外,还因为维度的自然键会来自多个应用,如果都建立,那么很可能出现兼容性问题。
2、自然键、持久键和超自然键
上面说到主键没有自然键,但实际上的自然键很多受业务的影响,如雇员拉入黑名单,又重新工作,然后还会转岗,则雇员的账号和手机号码作为自然键本身肯定是会发生点变化的,现在应用方面为该雇员创建单一键,这种情况下就是要建立一个新的持久键保证不管业务规则如何发生变化,还是保持号码不变。
3、下钻
这个词我第一次看到也是很不解,下钻就是仅需要在查询上增加一个行头指针。新行的头指针是一个维度属性,附加了SQl语言的group by表达式。属性就是来自事实表中关联查询的维度信息。
4、退化维度
事实表中常见退化维度,这是一种常见于交易和累计快照表中的维度。比如结算表,其中包含非常多的金额数据项,所有的数据项中事实行其实都是继承了结算单的描述性维度,结算单中的诸多数据维度可以在数据中正常显示,不影响事实表的维度展示。