1)集成是数据仓库的重要特性,需要把面型应用的数据转换为面向主题的数据仓库数据
2)应用之间数据差异集中表现在:
① 编码、命名习惯、度量单位上的差异
② 各种应用采用不同的物理实现,同一个应用有时会把数据拆分到不同数据库中(mysql,hbase),或者同一个业务的数据拆分到不同的表中(主表,扩展表)
3)面对应用数据的差异,除了统一命名规范、统一字段等公共处理外,还需要进行业务分析,将业务关系大、对源系统影响差异小的表进行整合;将业务关系小、对源系统影响差异大的表进行拆分。
维度整合
整合的方式主要采用主从表设计:将多个表中的公共字段放在主表中,从属信息分别放在从表中。主表的主键使用源主键和表标志作为复合主键。以上是对于维度的整合,而具体到表整合分为:
① 垂直整合,不同的数据源包含相同数据集,如,A业务会员表,B业务会员表,都属于会员信息应精良这和在会员维度,丰富维度属性
② 水平整合,不同的数据源包含不同数据集:
+ 判断数据集是否交叉,是则去重
+ 判断自然键是否冲突,是则加工成复合主键,否则直接用数据集的主键作为整合表的主键
+ 在物理实现时将来源字段作为分区字段
维度拆分
在整合数据时遇到以下场景进行维度拆分才是明智之举:
1)水平拆分:
① 维度属性随类型变化会发生很大变化时,没有必要把所有属性整合在一张表中,而用主维度保存公共数据,保证核心维度的稳定性,同时建立多个子维度,保证扩展性
② 两个业务相关性低,整合在一起会对模型的稳定性和易用性产生影响
2)垂直拆分:
考虑到某些维度属性的来源表产出时间早,某些产出晚;某些属性位数使用频率高,某些频率低;某些属性稳定性高,某些经常变化。把产出时间早、使用频率高、稳定性高的属性放在主维度中,把产出时间晚、使用频率低、经常变化的属性放在子维度中
网友评论