作为数据人,是不是经常被各种名词包围,对很多概念都不清楚?有些词虽然只有一字之差,但意思却完全不同。今天我们就来了解一下数据仓库建设和数据分析中的一些常用概念和含义以及它们之间的关系。本文结构如下图所示:01数据仓库常用概念分析1.实体是指附属的主体,也就是我们分析的客体。比如我们分析商品的销量,比如华为手机在过去六个月的销量,华为手机是一个实体;我们分析用户的活动,用户是一个实体。当然,现实中不存在的实体也可以存在,比如虚拟的商业对象、活动、会员等都可以看作是一个实体。存在用于业务分析的实体。作为分析的筛选维度,实体具有描述自身的属性,具有可分析的价值。2.维度维度是看问题的角度,分析业务数据,从任何角度分析,建立什么样的维度。因此,维度是分析数据时使用的量。比如你要分析产品的销量,可以选择按产品类别来分析,这就构成了一个维度。所有产品类别组合在一起形成一个维度。表面。3.度量度量是业务流程节点上的数值。如销量、价格、成本等。事实表中的度量可以分为三类:完全加性、半加性和非加性。全加的指标最灵活好用,比如sales、sales等,可以在任意维度进行聚合;semi-additivemetrics可以对某些维度进行聚合,但不能对所有维度进行聚合,差异是common还有一个完全非相加的衡量标准,比如比率。对于这种非加性指标,一个好的做法是尽可能多地存储非加性指标的完全加性成分,并在计算最终的非加性事实之前将这些成分聚合成最终结果集。4.粒度粒度是业务流程中的计量单位,如商品是按件计还是按批计。在数据仓库的建设中,我们说这是一个用户粒度的事实表,所以表中的每一行数据都是一个用户,没有重复用户;比如有一个销售粒度表,那么表中的每一行都是一条销售记录。选择合适的粒度级别是构建数据仓库的重要关键。在设计数据粒度时,通常需要考虑以下因素:接受的分析类型、可接受的最小数据粒度、可以存储的数据量;级别定义越高,可以在仓库中进行越不详细的分析;如果存储资源有限,只能使用更高的数据粒度;数据粒度划分策略必须保证数据粒度确实能够满足用户的决策分析需求是数据粒度划分策略中最重要的标准。5.CalibreCalibre就是取数的逻辑(如何取数)。例如,要取的数字是10岁以下儿童中男孩的平均身高。这是统计口径。6、指标指标是衡量口径的尺度,是最终的结果。比如最近7天的订单量,某个促销活动的购买转化率等。一个指标具体到计算实现,主要由以下几个部分组成:指标处理逻辑,比如count,sum,和avg维度,比如按部门和地区的指标统计,对应SQL中的groupby业务限制/修饰符,比如不同的支付渠道,计算对应的指标,微信支付的订单退款率,订单支付宝付款退款率。对应sql中的where。此外,指标本身还可以衍生和衍生出更多的指标。根据这些特点,指标可以分为:原子指标:基本业务事实,无业务限制,无维度。比如订单表中的订单量和订单总金额都是原子指标;业务方比较关心的指标是有实际业务意义,可以直接取数据的指标。比如店铺近1天的订单支付金额就是一个衍生指标,会直接在商品上展示给商家。但是这个指标不能直接从数据仓库的统一中间层获取(因为没有现成的事实字段,数据仓库一般会提供大而宽的表)。需要有一个连接数据仓库中间层和业务端索引需求的桥梁,于是就有了派生索引derivedindex:维度+修饰符+原子索引。店铺最近1天的订单支付金额中,店铺是维度,最近1天是时间类型的修饰符,支付金额是原子指标;维度:观察各项指标的角度;modifier:维度的一个或一些值,比如维度gender下,male和female就是两个修饰符。派生指标:比如某次促销活动的转化率就是派生指标,因为它需要通过促销投放人数和促销订单数量等指标来计算。7.标签标签是人为设置的,根据业务场景需求,对目标对象应用一定算法得到的高度精细化的特征标识。可以看出标签是人工再加工的结果,比如网红、白富美、萝莉。对于不明确的标签,我们可以在内部区分标签。比如苹果,我们可以定义apple是指水果,iPhone是指手机。8.自然键是由现实中已经存在的属性组成的键。它在业务概念上是唯一的,具有一定的业务含义,如产品ID、员工ID等。从数据仓库的角度来看,来自业务系统的标识符是一个自然键,比如业务数据库中的员工编号。9.永久密钥保持永久不变。有时也称为超自然耐用钥匙。例如,ID号是一个永久密钥。自然键和持久键的区别:举个例子来理解。例如,某公司员工离职后重新入职,其自然密钥即员工编号发生变化,但其永久密钥ID号保持不变。10.代理键是没有业务意义的键。代理键有许多其他名称:无意义键、整数键、非自然键、人工键、合成键等。代理键简单地表示为按顺序生成的整数。产品行第一行的代理键为1,然后下一行的代理键为2,依此类推。代理键的作用只是连接维度表和事实表。11.退化维度退化维度是那些在事实表中看起来像维度关键字,但实际上并没有对应的维度表,即维度属性存储在事实表中,维度列存储在事实表中表称为退化维度。和维度表中存储的其他维度一样,退化维度也可以用来过滤查询事实表,实现聚合操作等。那么如何定义退化维度呢?比如orderid,它是一个量级很大的维度,不需要存储在维度表中,但是在我们进行数据查询或者数据过滤的时候却非常有必要,所以这在事实表中是多余的。这称为退化维度。Citycode在事实表中是冗余的,但它有对应的维表,所以不是退化维。12、SlowlyChangingDimensions在维度建模的数据仓库中,有一个概念叫做SlowlyChangingDimensions,中文一般译为“缓慢变化的维度”,常简称为SCD。之所以提出缓变维度,是因为在现实世界中,维度的属性并不是一成不变的,它会随着时间的推移而缓慢变化。这种随时间变化的维度一般称为缓变维度,处理维表历史变化信息的问题称为处理缓变维度问题,有时也称为处理SCD问题。对于缓慢变化的维度通常有三种处理方式:第一种方式是直接覆盖原来的值。这种处理最容易实现,但不保留历史数据,无法分析历史变化信息。第一种方法通常简称为“类型1”。第二种方法是添加维度行。这个处理需要代理键的支持。实现方式是当一个维度属性发生变化时,生成一条新的维度记录。主键是新分配的代理键,可以通过自然键与原始维度记录相关联。第二种方法通常简称为“TYPE2”。第三种方式是添加属性列。这个处理的实现是在需要分析历史信息的属性上增加一列记录属性变化前的值,用TYPE1直接覆盖这个属性字段。这种方式的优点是可以同时分析当前和之前变化的属性值,缺点是只保留最后一次变化的信息。第三种方法通常简称为“TYPE3”。在实际建模中,我们可以结合使用三种方法,或者对一个维度表中的不同属性使用不同的方法。这些需要根据实际情况来定,但目的是一样的,就是支持方便分析历史变化。13.在维度建模中,有一个维度叫做minidimension,中文一般翻译成“微型维度”。微观维度的提出主要是为了解决快速变化的超大维度。以客户维度为例。如果维表中有百万行或更多行,并且这些记录中的字段变化频繁,这样的维表一般称为快速变化的超大维度。对于快速变化的非常大的维度,设计者一般不会使用TYPE2这种缓慢变化的维度处理方式,因为没有人愿意在一个已经有上百万行的维度表中增加更多的行。这时,有一种技术可以解决这个问题。解决方法是提取分析频率比较高或者变化频率比较大的字段,单独创建一个维度表。这个单独的维表就是迷你维表。迷你维度表有自己的键,与原客户维度表的键一起进入事实表。有时为了分析方便,可以将微观维度的关键词的最新值作为外来关键词录入到客户维度表中。这时候一定要注意,这个外来的关键词一定要当作TYPE1来处理。14.Drill-down这是数据分析中常用的概念。Drill-down可以理解为增加维度的层级,从而可以观察到数据从粗粒度到细粒度。比如在分析产品销量时,可以按照时间维度从年到月再到日更细粒度的观察数据。从年份维度可以向下钻取到月份维度、日期维度等。15.知道如何向下钻取就很容易理解滚动。它们是相反的操作,所以滚动可以理解为删除某层维度,观察数据从细粒度到粗粒度,或者沿着维度层级向上聚合汇总数据。16、数据集市数据集市可以理解为“小型数据仓库”,它只包含单一主题,关注范围不是全局的。数据集市可以分为两种类型:一种是独立的数据集市,有自己的源数据库和ETL架构;另一种是非独立数据集市,没有自己的数据源系统,数据来自数据仓库。当用户或应用程序不需要/不需要/允许使用整个数据仓库的数据时,非独立数据集市可以简单地为用户提供数据仓库的一个子集。02数据仓库概念之间的关系1、实体表、事实表和维度表的关系在Kimball维度建模中有维度和事实,在Inmon范式建模中有实体和关系。如果我们将两种类型的建模分开,以模型的方式更容易理解这些概念。但是,目前也有很多混合建模方法。两种建模方式结合使用时,这些概念是不是容易记忆和混淆,尤其是事实表和实体表,它们之间有什么区别和联系?我们先来看看它们。各自概念:维表:维表可以看作是用户分析一个事实的一个窗口。里面的数据应该描述事实的各个方面,比如时间维度表,地理维度表,维度表就是事实表。分析角度。事实表:事实表实际上是通过各种维度和一些索引值的组合来确定一个事实。比如通过时间维度、地域组织维度、指标值可以判断出某些指标值在某个时间地点的事实。事实表中的每条数据都是由几个维度表的数据和索引值组合得到的。实体表:实体表是实际对象的表。实体表存储的数据一定是客观存在的一种客观数据,比如各种商品,所以可以设计成实体表。实时表只是描述各种事物,并没有具体的事实,所以有人称实体表为没有事实的事实表。例如:比如手机市场上有苹果手机、华为手机等品牌和型号。这些数据可以形成一个手机实体表,但是表中没有可测量的数据。一天苹果手机卖出15台,华为手机卖出20台。这些手机销售数据属于事实,形成事实表。这样就可以利用日期维度表和地域维度表对这张事实表进行各种维度分析。2、指标与标签的区别概念不同指标是用来定义、评价和描述特定事物的标准或方法。例如新增用户数、累计用户数、用户活跃率等是衡量用户发展的指标;标签是人为设定的,根据业务场景的需要,通过对目标对象应用一定的算法得到的高度精细化的特征识别。可以看出标签是人工再加工的结果,比如网红、白富美、萝莉。不同指标的名称是对事物的物质和数量特征的命名;指标值是指标在特定时间、地域、条件下的量化表现,如人的体重,指标名称为体重,指标值为120斤;标签名称通常是形容词或形容词+名词。标签通常是不可量化的,通常是孤立的。除了基本类标签外,经过某些算法处理的标签一般没有单位和维度。比如体重超过200斤的就叫大胖子。指标按不同分类分类:根据指标的计算逻辑,指标可分为原子指标、派生指标、派生指标三种;根据事件描述的不同,可分为过程指标和结果指标;分类:根据标签的可变性,可分为静态标签和动态标签;根据标签的引用和评价指标不同,可分为定性标签和定量标签;指标的最佳应用是监测、分析、评价和建模。标签的最佳应用是注释、表征、分类和特征提取。特别需要指出的是,由于结果的标注也是标签的一种,在自然语言处理、机器学习等相关算法的应用场景中,标签对监督学习有很大的价值,但很难做到用简单的指标实现它们。指标在任务分配、绩效管理等领域的作用也是标签无法企及的。3、维度与指标的区别与联系维度是数据的观察角度,即从哪个角度分析问题、看问题。该指标是根据维度来计算结果的值。一个维度一般是一个离散的值,比如时间维度中每个独立的日期或者区域。因此,在进行统计时,可以将维度相同的记录聚合在一起,利用聚合函数进行累加、平均值、最大值、最小值等聚合计算。.索引是聚合的一般计算,即聚合运算的结果,一般是一个连续的值。4.自然键和代理键在数据仓库使用中的区别。数据仓库工具箱中说,维表的唯一主键应该是代理键,而不是自然键。有时建模者不愿意放弃使用自然键,因为他们想用操作代码查询事实表,而不是与维度表连接。但是,应该避免使用具有业务意义的多维键,因为我们所做的任何假设最终都可能失效,因为我们无法控制业务库的变化。所以数据仓库中维度表和事实表的每一次连接都应该基于一个没有实际意义的整数代理键。避免使用自然键作为维度表的主键。5、数据集市与数据仓库的区别与联系数据集市是企业级数据仓库的一个子集,主要面向部门级业务,只面向特定主题。为了解决灵活性和性能之间的矛盾,数据集市是在数据仓库架构中加入的小型部门级或工作组级数据仓库。数据集市为特定用户存储预先计算好的数据,以满足用户的性能需求。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。
