对于维度建模的理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于维度建模的理解相关的知识,希望对你有一定的参考价值。
什么意思
维度模型是数据仓库领域大师Ralph Kimball 所倡导,以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。
维度建模是 数据仓库/商业智能 项目成功的关键,为什么这么说,因为不管我们的数据量从GB到TG还是到PB,虽然数据量越来越大,但是数据展现要获得成功,就必须建立在简单性的基础之上,而维度建模就是时刻考虑如何能够提供简单性,以业务为驱动,以用户理解性和查询性能为目标。
维度建模:维度建模是专门应用于分析型数据库、数据仓库、数据市集建模的方法。数据市集可以理解为一种“小型的数据仓库” 维度建模指导我们在数据仓库中如何建表
维度建模分为两种表:事实表和维度表
事实表:必然存在的一些数据,像采集的日志文件,订单表,都可以作为事实表
特征:是一堆主键的集合,每个主键对应维度表中的一条记录,客观存在的,根据主题确定出需要使用的数据
维度表:维度就是所分析的数据的一个量,维度表就是以合适的角度来创建的表,分析问题的一个角度:时间、地域、终端、用户等角度
维度建模的三种模式
星形模式:以事实表为中心,所有的维度表直接连在事实表上,最简单最常用的一种
雪花模式:雪花模式的维度表可以拥有其他的维度表,这种表不易维护,一般不推荐使用
星座模型:基于多张事实表,而且共享维度信息,即事实表之间可以共享某些维度表
参考文章https://zhuanlan.zhihu.com/p/442910872 参考技术B 通俗一点就是将分析的角度(也就是维度)整合到事实表里面去,让应用更加便捷。比如你要分销某个商品的销售情况,可以把商品销售时间,部门,商品类别,一起和销售记录整合,这样你可以分析按时间,部门或是类型进行统计,这是一个方法论,具体操作又有不同的设计方式,比如星型,雪花。
总的来说,这个说起来是一个很大的概念,不是三言两语可以讲清楚的,可以自己百度学习二个经典的建模方式,即关系建模和维度建模。 - -|| 参考技术C 没有冗余代码 方便本回答被提问者采纳
维度建模 - 地理的支腿维度
【中文标题】维度建模 - 地理的支腿维度【英文标题】:Dimensional Modeling - Outrigger dimension for geography 【发布时间】:2021-03-02 13:19:15 【问题描述】:目前,我正在研究维度建模,并且对支腿维度有疑问。 该公司在客户和供应商之间进行贸易并充当经纪人。
对于事实表“Fact Trades”,我们包括 dimCustomer 和 dimSupplier。 这些维度中的每一个都有一个地址。
我的问题是,做涉及地理的支腿尺寸是否正确。通过这种方式,我们可以衡量我们从原产地运送到城市的数量。 dimensional model
我很好奇什么是最佳实践。我希望您能帮助解释应该如何正确建模以及为什么。
希望我的问题很清楚,并且我已将其发布在正确的位置。
提前致谢。
【问题讨论】:
【参考方案1】:我能想到至少 3 个可能的选项;您的具体情况将决定哪种方式最适合您:
-
如果您经常按地理位置过滤您的事实,但不需要公司/个人信息(即伦敦和纽约之间有多少笔交易?),那么我将创建一个独立的地理维度并将其直接链接到您的事实(两次 - 用于客户和供应商)。这也不会阻止您在客户/供应商 Dims 中拥有地理属性,因为维度模型未标准化
如果地理属性的变化率明显高于客户/供应商属性,并且客户/供应商 Dims 有很多属性,那么可能值得为地理属性创建一个支腿暗淡 - 因为这会减少客户/供应商 Dims 所需的维护。但是,鉴于大多数公司/个人很少更改地址,这可能不太可能
将地理属性保留在客户/供应商 Dims 中。即使选择上面的选项 1,我也可能会这样做
只是出于兴趣 - 客户和供应商是否具有明显不同的属性集(我假设他们都是公司或人员)?是否需要为它们创建单独的 Dim?
【讨论】:
以上是关于对于维度建模的理解的主要内容,如果未能解决你的问题,请参考以下文章