北京道路桥梁建模软件与vr结合发表时间:2023-02-05 18:48
. 摘要本文介绍数据仓库中维度数据建模的过程描述,并举一个示例以加深对相关概念的理解。. 内容. 维度模子界说维度模子是数据仓库规模巨匠Ralph Kimall所倡导,他的《数据仓库工具箱》,是数据仓库工程规模风行的数仓建模经典。维度建模以分化抉择妄图的需求解缆构建模子,构建的数据模子为分化需求处事,是以它重点解决用户若何更快速完成分化需求,同时还有较好的除夜规模复杂查询的响应机能。. 维度建模过程步:选择营业过程、经由过程对营业需乞降可用数据源的综合考虑,必定对哪一种营业过程睁开建模工作、成立的个维度模子理当是一个有影响的模子——它理当对紧迫的营业问题作出回覆,而且对数据的抽取来讲是等闲的。第二步:界说粒度注:粒度是指数据仓库的数据单元中保留数据的细化或综合水平的级别,细化水平越高,粒度就越小、理当先优先考虑为营业措置获得有原子性的信息而斥地维度模子。原子型数据是所汇集的体的信息,这样的数据不能再做更进一步的细分。、数据仓库几近老是要求在每个维度可能获得的粒度上对数据进行暗示的启事,其实不是因为查询想看到每个低条理的行,而是因为查询但愿以很切确的编制对细节常识进行抽取。第三步:选定维度一个经由细心考虑的粒度界说必定了事实表的根底维度特点。同时,经常也可能向事实表的根底粒度插手的维度,而这些附加的维度会在根底维度的每个组合值方面自然地获得独一的值。假定附加的维度因为导致生成此外的事实施而背反了这个根底的粒度界说,那么必需对粒度界说进行改削以顺应这个维度的气象。第四步:必定事实必定将哪些事实放到事实表中。粒度声明有助于不变相关的考虑。事实必需与粒度吻合。在考虑可能存在的事实时,可能会发现仍然需要调剂初期的粒度声明和维度选择. 维度建模的根底要素维度建模中有一些斗劲首要的概念,理解了这些概念,根底也就理解了甚么是维度建模。. 事实表发生在现实世界中的操作型事务,其所发生的可怀抱数值,存储在事实表中。从的粒度级别来看,事实表行对应一个怀抱事务,反之亦然。额,看了这一句,现实上是不太等闲理解到底甚么是事实表的。好比一次采办步履我们便可以理解为是一个事实,下面我们上示例。图中的订单表就是一个事实表,你可以理解他就是在现实中发生的一次操作型事务,我们每完成一个订单,就会在订单中增添一笔记实。我们可以回偏激再看一下事实表的特点,在维度内外没有存放现实的内容,他是一堆主键的集结,这些ID分袂能对应到维度表中的一笔记实。. 维度表每个维度表都包含单一的主键列。维度表的主键可以作为与之关系的任何事实表的外键,当然,维度表行的描述气象应与事实表行完全对应。 维度表凡是斗劲宽,是扁平型非规范表,包含除夜量的低粒度的文本属性。我们的图中的用户表、商家表、时刻表这些都属于维度表,这些表都有一个独一的主键,然后在表中存放了具体的数据信息。. 维度建模过程举例下面我们将以电商为例,具体讲一下维度建模的建模编制,并举例假定操作这个模子(这点仍是很首要的)。、营业场景假定我们在一家电商网站工作,好比某宝、某东。我们需要对这里营业进行建模。下面我们分化几点营业场景:电商网站中典型的场景就是用户的采办步履。一次采办步履的倡议需要有这几个个此外介入:采办者、商家、商品、采办时刻、订单金额。一个用户可以倡议良多次采办的动作。好,基于这几点,我们来设计我们的模子。、模子设计下面就是我们设计出来的数据模子,和之前的根底一样,只不外是换成了英文,主若是为了后面写sql的时辰来用。我就不再注释每个表的浸染了,此刻只说一下为甚么要这样设计。首先,我们想一下,假定我们不这样设计的话,我们一般会若何做假定是我,我会设计下面这张表。你信不信,我能列出来个字段!其实我小我认为若何设计这类表都有其合理性,我们非论对错,单说一下二者的优短处错误。先说我们的维度模子:数据冗余小(因为良多具体的信息都存在响应的维度表中了,好比用户信息就只有一份)结构清楚(表结构一目了然)便于做OLAP分化(数据分化用起来会很欢畅)增添操作成本,好比查询时要关系多张表数据纷歧致,好比用户倡议采办步履的时辰的数据,和我们维度内外面存放的数据纷歧致再说我们这张除夜款表的优短处错误:营业直不美不美观,在做营业的时辰,这类表出格便当,直接能对到营业中。操作便当,写sql的时辰很便当。数据冗余巨除夜,真的很除夜,在几亿的用户规模下,他的订单步履会很恐怖粒度僵硬,甚么都写死了,这张表的可复用性太低。、操作示例数据模子的成立必需要为更好的操作来处事,下面我先举一个例子,来切实地感应传染一下来若何用我们的模子。需求:求出年在的男性用户采办的LV品牌商品的总价钱。实现:SELECTSUM(order.money)FROMorder,product,date,address,user,WHEREdate.year = AND user.sex = maleAND address.province = AND product.name = LV、总结维度建模是一种十分优良的建模编制,他有良多的益处,可是我们在现实工作中也很难完全遵循它的编制来实现,城市有所取舍,好比说为了营业我们仍是会需要一些宽表,有时辰还会有良多的数据冗余。. 参考《Hadoop构建数据仓库实践》闲谈数据仓库之维度建模htt:zhuanlan.zhihu.comp本文:笔名辉哥 来历:简书 CIO之家 www.ciozj.com 公家号:imciow
|
在线QQ
13102029636