暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数仓维度建模推荐使用代理键

数据资本主意 2021-09-15
4185

  • 代理键(Surrogate key)一般是指维度表中使用顺序分配的整数值作为主键,也称为“代理关键字”。代理关键字用于维度表和事实表的连接。

  • 自然键(Natural Key)是业务系统中已经存在的,通常是具有一定业务含义的一个字符型的标志符,可以唯一地标志维度表中的每一条记录。比如组织机构代码等。


在维度模型中采用代理键的好处有很多。例如,将维度与源系统的更改隔离开来,以及启用维度成员的历史版本控制。另外,数据仓库中的查询性能  是将代理键合并到维度模型中的另一个主要原因,这不应被忽视。代理键是一个非智能的、系统生成的、分配为维度主键的数字(int或smallint)值。为了理解维度的粒度,还必须定义替代键(即自然键)这对于在任何数据仓库环境中跨多个事实表和分析区域启用统一维度至关重要。

一些数据库和数仓设计人员认为由于硬件性能能力的提高,不需要代理键。但是,由于数据量不断扩大,查询量不断增加,查询的数据量也越来越大,因此对于每个应用程序和数据库管理系统,使查询连接尽可能高效非常重要。

根据最近的OLAP调查,最突出的问题是查询性能不佳。使用代理键是优化维度查询的首要方法,主要有三个方面的原因。

一、简化的高性能连接

使用代理键将简化事实和维度表之间的连接。在事实表或事实表索引中扫描单个较小的数值(通常为4个字节(int)或2个字节(smallint)),而不是一个大字符值或混合数据类型的多个属性。显然,对单个小数值的连接会更快。维度具有由业务键(在源系统中提供唯一性的属性)和必要的元数据标记(例如,源系统标识符、生效日期)组成的多部分自然键非常常见。自然键描述了维度表的唯一性和粒度。识别和记录与自然键和代理键相关联的元数据至关重要。

这些多部分的自然键通常由字符值组成,当您的事实表包含数百万或数十亿条记录时,这些字符值加起来可能会占用大量空间。BI需要从数据库中检索大量记录是很常见的,即使呈现给用户的结果通常是汇总的。

在维度模型中,需要查看维度成员在事实发生日期出现时的状态是很常见的。如果使用自然键来处理维度的变化,对维度成员的更改将导致现有记录被“停用”例如,将非活动日期设置为前一个日期,并插入当前值进入新纪录。如果没有代理键,就无法执行join来准确地连接事实表和维度表相反,必须执行低效的日期范围操作。

示例:

select d.col1, d.col2, sum (f.amt)

from dimension d, fact f

where d.col3 = f.col3

and f.tran_date between d.effective_date and d.inactive_date

and d.col4 = Widgets”

group by d.col1, d.col2

当使用代理键时,优化查询的任务减少了只有一种可能的方法将事实表连接到维度。这样做的一个附带好处是用户不会错误地连接维度和事实表。在上面的例子中,如果用户忘记在事实交易日期包括范围连接,可能会导致重复计算

任何必须对BI工具生成的复杂分析查询进行故障排除或调整的人都会喜欢通过使用代理键来简化维度连接。一个事实表通常有许多关联的维度表十个连接到一个事实表的情况并不少见。此外,许多维度可能与一个事实表有多种关系(角色)。通常有许多类型的日期需要用事实记录表示每一种都需要连接到日期维度。例如,在订单事实表上,您可能有下订单日期、订单发货日期、订单发票日期等。

二、减少 I/O 操作

虽然磁盘空间(相对)便宜,但通常必须将许多事实表行读入内存以满足查询。关系数据库使用页面执行 I/O。页可以包含许多数据或索引行,因此如果页包含满足查询所需的行,则数据页(包含其中包含的所有行)被读入内存。使用自然键会增加事实表的宽度,因此可以在数据页上存储更少的事实表行。结果是增加了I/O操作是性能瓶颈的主要原因。

ETL处理期间花费的大量时间可归因于索引构建。使用代理键将减少构建和维护索引所花费的时间,并将减少分配给索引的空间量。因此,索引将更加紧凑和高效。

三、启用 RDBMS 优化

使用代理键有助于启用专为与维度模型一起使用而开发的数据库优化,例如位图索引、星形转换。

由于为维度模型启用参照完整性会影响性能,因此通常不会在数据库中强制执行外键约束。然而,事实表中的外键通常在列上有一个bitmap或b-tree索引。与b-tree索引不同,大多数bitmap索引不能由多列组成。bitmap是专门为BI应用程序开发的,可以对查询性能产生巨大影响。

为了让RDBMS查询优化器使用星型转换执行查询,需要一个带有bitmap索引的单部分外键。星型转换将“重写”一个查询,通过使用利用外键上的bitmap索引的子查询来优化它。

结论

硬件和软件性能的提高加数据存储成本的降低可能会促使人们放弃使用代理键。更强大的基础设施并不能否定对良好数据架构的需求。在维度模型中使用自然键通常是错误的。除非有非常具体、有效和合理的理由,否则应该将代理键的使用视为维度模型的标准。除了其他数据体系结构的好处外,代理键还具有显著的性能优势。

数据库
文章转载自 数据资本主意,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

玻璃钢生产厂家云南供应玻璃钢雕塑淄博小品系列玻璃钢雕塑玻璃钢花盆哪家用料好玻璃钢室外雕塑定做卡通玻璃钢雕塑艺术小品江苏秋季商场美陈商场摩天轮美陈商丘人物玻璃钢雕塑固始玻璃钢雕塑加工厂家内蒙古玻璃钢雕塑设计制作黄山抽象玻璃钢雕塑批发商场美陈布置过道室外玻璃钢花盆延边玻璃钢雕塑推荐商场服装美陈怎么做方案户外玻璃钢ip雕塑定制气球商场美陈哪家值得信赖商场屋檐玻璃顶灯光美陈定制玻璃钢雕塑价格报价红色玻璃钢雕塑销售电话儿童玻璃钢雕塑厂家合肥校园玻璃钢雕塑生产厂家北京广场玻璃钢雕塑生产厂家贵溪玻璃钢卡通座椅雕塑雕塑翻模玻璃钢价格河北玻璃钢造型雕塑批发玻璃钢雕塑 坚固标致玻璃钢雕塑重不重玻璃钢雕塑供应品牌企业江西玻璃钢卡通雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化