首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

事实维度

事实维度 前文介绍了一维和二维的异同及相互转换 今天再来解释一下事实维度 先来看下表。回忆下,这是一维二维?...尤其在海量流水记录面前,效率高低立判 咱们这里不搞学究,没必要死抠概念术语,尽量从理解的基础上去领悟 像这种把流水表里大量重复数据拎到一边单独存放的案例,还有很多,比如 表示时间:日期-年-月-日-季-...周(是不是有点像日期) 表示地点:国-省/州-市-区县-镇-村 品类:用途-品牌-包装 ………… 类似上面这些具有独立属性或层次结构的信息,我们将其称之为数据的维度 一个数据,可以属于不同维度,在不同维度上根据层次结构进行汇总统计...”,就是报表的维度 搞清了“维度”,那“事实”也就不难理解了 事实:表格里存储了能体现实际数据或详细数值,一般由维度编码和事实数据组成 维度:表格里存放了具有独立属性和层次结构的数据,一般由维度编码和对应的维度说明...(标签)组成 现实工作中,维度要设多广多深,没有固定,看具体业务场景和数据规模 比如制造业,生产现场的时间维度可能要精确到秒 再比如销售,地区维度除了省市区,可能还要加个大区概念(华北、华东等) 证券行业里

2.1K40
您找到你想要的搜索结果了吗?
是的
没有找到

聊聊维度建模的灵魂所在——维度设计

前言 维度维度建模的灵魂所在,在维度设计中碰到的问题(比如维度变化、维度层次、维度一致性、维度整合和拆分等)都会直接关系到维度建模的好坏,因此良好的维设计就显得至关重要,今天就让我们就一起来探究下关于维设计的相关概念和一些技术...属性改变前的事实行和旧的维度值关联,而新的事实行和新的维度值关联。 ?...钻取分为向上钻取和向下钻取,比如对于某零售商的年度销售报表,其年度销售总额显示增长20%,那么从时间上分析是哪个季度的增长率比较高呢?...在维度建模理论中,对于上述情况通常有两种处理办法 建一个基础的维度, 此基础维度包含这些不同业务的共有属性,同时建立各自业务的单独维度以包含其独特的业务属性。...(实际操作中通常先建立两个单独的维度,然后基于单独维度生成共有的商品维度或者视图) 拆分,即不合并,即各个业务差异独特性的业务各自建立完全独立的两个维度,各自管理各自维度和属性。

1.4K40

HAWQ取代传统数仓实践(十一)——维度技术之维度合并

新增了一个zip_code_dim邮编信息维度,sales_order_fact事实的结构也做了相应的修改。 ? 图1         zip_code_dim维度与销售订单事实表相关联。...注意老的事实与新的邮编维度是通过客户维度关联起来的,所以在子查询中需要三连接,然后用两个左外连接查询出所有原事实数据,装载到新的增加了邮编维度代理键的事实中。...product_dim; analyze sales_order_fact; analyze pa_customer_dim; -- 更新时间的...这是因为要取得邮编维度代理键,必须连接邮编代码字段,而邮编代码已经从客户维度中删除,只有在源数据的客户中保留。第二个改变是PA子维度的装载。...州代码已经从客户维度删除,被放到了新的邮编维度中,而客户维度和邮编维度并没有直接关系,它们是通过事实的客户代理键和邮编代理键产生联系,因此必须关联事实、客户维度、邮编维度三个才能取出PA子维度数据

830100

维度架构之超时时间

维度架构之超时时间 ? 超时时间俗称 Timeout 它是引起应用程序无响应或者网络服务雪崩灾难的罪魁祸首。 超时时间设置非常讲究,太长不行,太短也不行。...超时时间有哪些: 网络超时 文件系统超时 执行时间超时 无处不在的超时时间 早期架构相对简单,拓扑成线性,例如: 用户 —> WEB服务器 —> 应用服务器 —> 缓存 —> 数据库 这是最典型的应用了...所以说后面应用服务器的超时时间设置,不能大于前面WEB服务器的超时时间设置。...最后是数据库超时时间,数据库超时时间的设置,执行超时时间比网络超时时间更重要。所谓执行超时时间,就是控制执行SQL语句的时间,在规定时间没有完成查询就直接返回超时。...那么这样设置超时时间合理吗?

1.5K31

数据仓库系列--维度技术

维度技术常见:增加列,维度子集,角色扮演维度,层次维度,退化维度,杂项维度维度合并,分段维度等基本维度技术。 一.增加列 事实维度上增加列。...缺点:当基本维度和子维度数据量相差悬殊,性能比物理差很多;如果定义视图查询,并且视图很多,可能对元数据存储系统造成压力,严重影响查询性能。...三.角色扮演维度 单个物理维度可以被事实多次引用,每次引用连接逻辑上存在差异的角色维度。...对于大量数据这将会消耗很长时间去执行。 Sort by 在每个reducer端都会排序,也就保证了局部有序。 Ditribute by 控制map输出reducer中是如何规划。...七.维度合并 如果几个相关维度的基数都很小,或者具有多个公共属性时,可以考虑合并。 八.分段维度 包含连续的分段度量值,通常用作客户维度的行为标记时间序列,分析客户行为。

11210

数仓建模——维度详细讲解

在数据仓库中,维度是与事实表相对应的维度维度建模的基础和灵魂。...事实紧紧围绕业务过程进行设计,事实存储度量数据,如销售额、数量、收入等,而维度则围绕业务过程所处的环境进行设计,维度存储描述度量数据的各个方面的信息,例如时间、地理位置、产品、客户等。...2、维度变化 维度属性一般来说不是静态的,而是会随时间变化的,数据仓库的一个重要特点就是反映历史的变化,所以如何保存维度的历史状态是维度设计的重要工作之一。...三、维度设计步骤 1)确定维度) 在设计事实时,已经确定了与每个事实表相关的维度,理论上每个相关维度均需对应一张维度。...另外,如果某些维度维度属性很少,例如只有一个**名称,则可不创建该维度,而把该维度属性直接增加到与之相关的事实中,这个操作称为维度退化。

76610

HAWQ取代传统数仓实践(九)——维度技术之退化维度

退化维度技术减少维度的数量,简化维度数据仓库模式。简单的模式比复杂的更容易理解,也有更好的查询性能。         有时,维度中除了业务主键外没有其它内容。...例如,在本销售订单示例中,订单维度除了订单号,没有任何其它属性,而订单号是事务的主键,这种维度就是退化维度。业务系统中的主键通常是不允许修改的。...因此订单维度也不会有历史数据版本问题。退化维度常见于事务和累计快照事实中。         销售订单事实中的每行记录都包括作为退化维度的订单号代理键。...但是,在维度模型中,事实中的订单号代理键通常与订单属性的其它没有关联。可以将订单事实所有关心的属性分类到不同的维度中,例如,订单日期关联到日期维度,客户关联到客户维度等。...这样订单维度就没有数据仓库需要的任何数据,此时就可以退化订单维度。需要把退化维度的相关数据迁移到事实中,然后删除退化的维度

2.1K50

维度建模技术实践——深入事实

至此,我们也完成了超市零售事务的事实维度的设计,超市零售事务事实以及相关的维度如图所示: ?...周期快照事实的周期通常需要和业务方共同确定,最常见的周期是天、周和月等。 周期快照事实中的事实一般是半可加的,如某个商品的库存可以跨商品、仓库等相加,但是明显在时间上相加是没有意义的。...累计快照事实非常适用于具有工作流或者流水线形式业务的分析,这些业务通常涉及多个时间节点或者有主要的里程碑事件,而累计快照事实正是从全流程角度对其业务状态的拍照。...无事实的事实通常人为增加一个常量列(其列的值总是为 1) 来方便对业务时间的统计分析。 以学生在各门课程中的出席情况为例给出无事实的事实维度设计方案: ?...总结 在经典的维度建模事实设计中,事实将仅存储维度外键、选定的度量以及退化维度等,例如我们前面提到的超市零售事务事实

1.4K20

HAWQ取代传统数仓实践(十二)——维度技术之分段维度

推荐的处理行为标记的方法是为客户维度建立分段属性的时间序列。这样BI接口比较简单,因为列都在同一个中,性能也较好,因为可以对它们建立时间戳索引。...第二个星型模式由annual_customer_segment_fact事实、annual_order_segement_dim维度、customer_dim维度构成。...客户年度分段事实中没有度量,只有来自两个相关维度的代理键,因此它是一个无事实的事实,存储的数据实际上就是前面所说的行为标记时间序列。...分别是分段维度、年度销售事实和年度客户消费分段事实,并向分段维度插入9条分段定义数据。...将年度销售事实表里与分段维度关联,把客户、分段维度的代理键插入年度客户消费分段事实。注意,数据装载过程中并没有引用客户维度,因为客户代理键可以直接从销售订单事实得到。

1K101

HAWQ取代传统数仓实践(七)——维度技术之维度子集

有时称细节维度为基本维度维度子集为子维度,基本维度与子维度具有相同的属性或内容,称这样的维度具有一致性。一致的维度具有一致的维度关键字、一致的属性列名字、一致的属性定义以及一致的属性值。...如果属性的含义不同或者包含不同的值,维度就不是一致的。         子维度是一种一致性维度,由基本维度的列与行的子集构成。当构建聚合事实,或者需要获取粒度级别较高的数据时,通常用到子维度。...对基本维度和子维度来说,属性是公共的,其标识和定义相同,两个中的值相同,然而,基本维度和子维度的主键是不同的。...建立追加日期数据的函数         该函数用于向日期维度和月份维度追加数据。如果日期所在的月份没在月份维度中,那么该月份会被装载到月份维度中。...analyze product_dim; analyze order_dim; analyze sales_order_fact; -- 更新时间

1.3K50

HAWQ取代传统数仓实践(十)——维度技术之杂项维度

将每个标志位放入其自己的维度中         例如,为销售订单的四个标志位分别建立四个对应的维度。在装载事实数据前先处理这四个维度,必要时生成新的代理键,然后在事实中引用这些代理键。...将标志位字段存储到订单维度中         可以将标志位字段添加到订单维度中。上一篇我们将订单维度作为退化维度删除了,因为它除了订单号,没有其它任何属性。...在订单维度中,每条业务订单都会存在对应的一条销售订单记录,该维度的记录数会膨胀到跟事实一样多,而在如此多的数据中,每个标志位字段都存在大量的冗余。通常维度应该比事实小得多。 5....analyze product_dim; analyze sales_order_fact; -- 更新时间的...装载事实时,关联了sales_order_attribute_dim维度,为事实中装载杂项维度代理键。

1.5K90

数据仓库中的维度和事实概述

可以汇总具体时间段内一组商店的特定商品的销售情况。...一般来说,一个事实数据都要和一个或多个纬度表相关联,用户在利用事实数据创建多维数据集时,可以使用一个或多个维度。...维度 维度可以看作是用户来分析数据的窗口,纬度中包含事实数据中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据数据,以便为分析者提供有用的信息,维度包含帮助汇总数据的特性的层次结构...在维度中,每个都包含独立于其他维度的事实特性,例如,客户维度包含有关客户的数据。维度中的列字段可以将信息分为不同层次的结构级。...事实就是销量表,维度就是地区

4.5K30

事实维度,度量,指标之间的关系

事实:每个数据仓库都包含一个或者多个事实数据。事实数据可能包含业务销售数据,如销售商品所产生的数据,与软件中实际概念一样 维度:说明数据,维度是指可指定不同值的对象的描述性属性或特征。...例如,地理位置的维度可以包括“纬度”、“经度”或“城市名称”。“城市名称”维度的值可以为“旧金山”、“柏林”或“新加坡”。 指标:衡量数据,指标是指可以按总数或比值衡量的具体维度元素。...例如,维度“城市”可以关联指标“人口”,其值为具体城市的居民总数。 维度和指标的关系:虽然维度和指标可以独立使用,但常见的还是相互结合使用。维度和指标的值以及这些值之间的关系,使您的数据具有了意义。...为了挖掘尽可能多的深层次信息,维度通常与一个或多个指标关联在一起。 例如,维度“城市”可以与指标“人口”和“面积”相关联。...度量:事实维度交叉汇聚的点,度量和维度构成OLAP的主要概念,这里面对于在事实或者一个多维立方体里面存放的数值型的、连续的字段,就是度量。

1.9K10

数据仓库(08)数仓事实维度技术

所谓的事实维度技术,指的就是如何和构造一张事实维度,是的事实维度,可以涵盖现在目前的需要和方便后续下游数据应用的开发。 事实,就是一个事实的集合。...差额是常见的半可加事实,除了时间维度之外,它们可以跨越所有维度进行加法操作。不可加度量,比如比率,任何维度都不能直接相加。...简单的,我们可以大概分为事务事实,周期快照事实,累计快照事实,无事实的事实。事务事实:事务事实的一行对应空间或者时间上某点的度量事件。即流水行数据。...累计快照事实:累积快照事实的行汇总了发生在过程开始和结束之间可预测步骤内的度量事件。也就是记录整一个业务过程,如下单,包含下单时间,支付时间,赔付时间等。...维度的主键可以作为与之关联的任何事实的外键,当然,维度行的描述环境与事实行完全对应。 维度开发过程中有下面几个点。

93510

HAWQ取代传统数仓实践(八)——维度技术之角色扮演维度

这些不同的维度视图具有唯一的代理键列名,被称为角色,相关维度被称为角色扮演维度。         当一个事实多次引用一个维度时会用到角色扮演维度。...例如,一个销售订单有一个是订单日期,还有一个请求交付日期,这时就需要引用日期维度两次。         我们期望在每个事实中设置日期维度,因为总是希望按照时间来分析业务情况。...本篇说明两类角色扮演维度的实现,分别是别名和数据库视图。别名是在SQL语句里引用维度多次,每次引用都赋予维度一个别名。而数据库视图,则是按照事实需要引用维度的次数,建立相同数量的视图。...图1         从图中可以看到,销售订单事实和日期维度之间有两条连线,表示订单日期和请求交付日期都是引用日期维度的外键。...其次,合并的日期维度不再适合其它经常使用的日、周、月等日期维度。日期维度每行记录的含义不再指唯一一天,因此无法在同一张中标识出周、月等一致性维度,进而无法简单地处理按时间维度的上卷、聚合等需求。

1.3K100

Flink DataStream维度Join的简单方案

维度基本都位于外部存储,换句话说,就是要解决一个无界的流式与一个有界的码表或半静态做join操作的问题。...由于今天时间紧张,所以不深入谈它的原理和用法了,之后会再提。看官如果想了解的话,可以先参考官方文档和FLIP-12给出的设计细节。...但是,异步I/O对于那种变化缓慢并且规模不大的维度数据,就显得有些杀鸡用牛刀了。我们完全可以自己做个轻量级的实现。...下面举出一个示例,它从订单日志中取出站点ID、城市ID,然后从存储在MySQL的维度中获取站点名和城市名,并写回订单日志。..."; } 这段代码的思路很直接:用一个RichMapFunction封装整个join过程,用一个单线程的调度线程池每隔10分钟请求MySQL,拉取想要的维度数据存入HashMap,再根据日志中的

2.1K30

分库分下,多维度查询问题

这篇来深入理解一下,分库分下:多维度查询问题如何解决这个问题,可能好多人连问题都理解不了,现在来看一下注意这篇文章要结合上一篇文章,数据迁移问题分库分下,扩容数据免迁移方案-腾讯云开发者社区-腾讯云...添加描述这是短链多维度查询的问题,我们再看下其他场景添加描述同样,如何做???分片键只有userId,招聘者,如何去查看自己面试过的人员?这样搞的话,只能去全路由。...冗余双写方案这是个空间还时间的方案,就是将数据再冗余一份到数据库中,当然可以冗余部分字段,和全部字段,这个看业务需求即可##---------- 组+短链码mapping,策略:分库+分------...>{group_id % 2}这个方案就很简单了,就是行表达式,并且也没有免迁移方案当然冗余双写会有一些列问题,冗余双写也是页内最常用的方案,我也会以这个为主去讲解,冗余双写方案的问题冗余双写是空间换时间的操作...所以我们要设计可重入锁,锁粒度是短链码,但是要对accountNO一致的线程,达到可重入//加锁//key1是短链码,ARGV[1]是accountNo,ARGV[2]是过期时间String script

51820

数据仓库:详解维度建模之事实

半可加性 在快照事实中收集到的状态度量都是半可加的。与事务事实的可加性事实不同,半可加性事实不能根据时间维度获得有意义的汇总结果。...例如,商品评价,多了子订单维度、商品维度、评论者维度。 3. 累计快照事实 对于类似于研究事件之间时间间隔的需求,采用累计快照事实可以很好地解决。...多业务过程日期 累积快照事实适用于具有较明确起止时间的短生命周期的实体,比如交易订单、物流订单等,对于实体的每一个实例,都会经历从诞生到消亡等一系列步骤。...对于商品、用户等具有长生命周期的实体,一般采用周期快照事实更合适。累积快照事实的典型特征是多业务过程日期,用于计算业务过程之间的时间间隔。...物理实现: 逻辑模型和物理模型密不可分,针对累积快照事实模型设计,其有不同的实现方式。 第一种:增量存储 以业务实体的结束时间分区。

1.4K10
领券