大数据之路--维度设计
一、维度设计基础1、维度的基本概念维度是维度建模的基础和灵魂。在维度建模中将度量称为事实将环境描述为维度唯独用于分析事实所需要的多样环境。维度所包含的表示维度的列称为维度属性。维度属性是查询约束条件、分组和报表标签生成的基本来源是数据易用性的关键。维度的作用一般是查询约束、分类汇总以及排序。2、设计方法1选择维度或新建维度。维度必须唯一。2确定主维表一般是ODS表直接与业务系统同步。3确定相关维表不同业务系统或者同一业务系统中的标之间存在关联性。确定哪些表和主维表存在关联关系。4确定维度属性从职位表中选择维度属性或者生成新的维度属性从相关为表中选择维度属性或生成新的维度属性。需注意①尽可能生成丰富的维度属性②尽可能多的给出包括一些富有意义的文字性描述③区分数值型属性和事实用于查询约束条件或分组统计则是维度属性用于参与度量的计算sum则是事实。④尽可能沉淀出通用的维度属性:是数仓建模中“公共逻辑下沉、一致性维度”原则的具体体现核心是将需要多表关联、字段混合处理、字段解析的通用属性在DIM层统一加工、固化。其价值不仅在于简化下游使用逻辑、降低复杂度更在于保证全链路维度口径统一减少重复开发和数据偏差提升数仓的稳定性、效率和可维护性是企业级数仓实现“一次加工、全链路复用”的关键操作。3、一致性维度和交叉探查当存在重复的维度但维度属性或维度属性的值不一直是会导致交叉探查无法进行或结果错误。一致性表现形式1️⃣共享维表2️⃣一致性上卷其中一个维度的维度属性是另一个维度的维度属性的子集且两个维度的公共维度属性结构和内容相同3️⃣交叉属性,两个维度具有部分相同属性。二、维度设计高级主题1、维度整合原因不同业务系统独立维护1垂直整合不同的来源表包含相同的数据集只是存储的信息不同(legft join。2水平整合不同的来源表包含不同的数据集不同的自己之间无交叉也可以存在部分交叉union all.2、维度拆分1水平拆分单表太大查询、拉链、全量刷新极慢提升查询性能只扫对应分片便于并行计算降低单表压力1️⃣将维度的不同分类实例化为不同的维度同时在主维度中保存公共属性维度属性随类型变化较大时2️⃣维护单一维度包含所有的可能属性业务的关联度较低2垂直拆分大宽表查询慢、IO 重字段变更频率不一样放一起维护麻烦常用字段和不常用字段混在一起浪费性能减少锁冲突、提升并发1️⃣按使用频率拆主维表扩展维表2️⃣按变化频率拆基本信息表变动信息表3️⃣按字段大小/类型拆
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2502723.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!