数仓(二):如何建设数仓/数仓构建流程

一、数据仓库的整体流程如下:

数仓构建流程图

一、构建企业级数据仓库五步法:

  1. 确定主题
  2. 确定量度
  3. 确定事实数据粒度
  4. 确定维度
  5. 创建事实表

4步骤维度设计过程   数仓(六):维度建模 之 事实表&维度表设计_.-CSDN博客

  1. 选择业务过程
  2. 声明粒度
  3. 确认维度
  4. 确认用于度量的事实

基本概念

  • 业务板块:比数据域更高维度的业务划分方法,适用于庞大的业务系统。
  • 数据域: 指面向业务分析,将业务过程或者维度进行抽象的集合。其中,业务过程可以概括为一个个不可拆分的行为事件,在业务过程之下,可以定义指标;维度是指度量的环境,如买家下单事件,买家是维度。为保障整个体系的生命力,数据域是需要抽象提炼,并且长期维护和更新的,但不轻易变动。在划分数据 时,既能涵盖当前所有的业务要求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域

  • 业务过程: 指企业的业务活动事件,如下单,支付,退款都是业务过程。请注意,业务过程是一个不可拆分的行为事件,通俗地讲,业务过程就是企业活动中的事件

  • 维度:维度建模由Ralph Kimball提出。维度模型主张从分析决策的需求出发构建模型,为分析需求服务。维度是度量的环境,是我们观察业务的角度,用来反映业务的一类属性。属性的集合构成维度,维度也可以称为实体对象。例如,在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。维度属于一个数据域,如地理维度(其中包括国家,地区,省以及城市等级别的内容),时间维度(其 中包括年,季,月,周,日等级别的内容)
  • 属性(维度属性):维度所包含的表示维度的列称为维度属性。维度属性是查询约束条件、分组和报表标签生成的基本来源,是数据易用性的关键。维度属性隶属于一个维度,如地理维度里面的国家名称,国家ID,省份名称等都属于维度属性
  • 度量:在维度建模中,将度量称为事实,将环境描述为维度,维度是用于分析事实所需要的多样环境。度量通常为数值型数据,作为事实逻辑表的事实。
  • 度量/原子指标:原子指标和度量含义相同,基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名词,如支付金额 

  • 指标:指标分为原子指标和派生指标。原子指标是基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,是具有明确业务含义的名词,体现明确的业务统计口径和计算逻辑,例如支付金额。
    • 原子指标=业务过程+度量。
    • 派生指标=时间周期+修饰词+原子指标,派生指标可以理解为对原子指标业务统计范围的圈定。如原子指标:支付金额,最近1天海外买家支付金额则为派生指标(最近1天为时间周期,海外为修饰词,买家作为维度,而不作为修饰词
  • 统计(时间)周期:统计的时间范围,用来明确数据统计的时间范围或者时间点。例如最近一天,最近30天等(类似于SQL中where后的时间条件)。
  • 统计粒度:统计分析的对象或视角,定义数据需要汇总的程度,可理解为聚合运算时的分组条件(类似于SQL中的group by的对象)。粒度是维度的一个组合,指明您的统计范围。例如,某个指标是某个卖家在某个省份的成交额,则粒度就是卖家、地区这两个维度的组合。如果您需要统计全表的数据,则粒度为全表。在指定粒度时,您需要充分考虑到业务和维度的关系。统计粒度常作为派生指标的修饰词而存在。
  • 业务限定(业务域):统计的业务范围,筛选出符合业务规则的记录(类似于SQL中where后的条件,不包括时间区间)。业务域是业务过程在 业务模块层次的分类,用于限定修饰词。例如:开门业务、访客登记业务属于人行业务内的一大类修饰词->修饰类型 || 业务域
  • 层级关系:度量/原子指标->业务过程->业务域 || 数据域

一、业务调研(需求分析

        充分的业务调研和需求分析是数据仓库建设的基石,直接决定数据仓库能否建设成功。在数仓建设项目启动前,您需要请相关的业务人员介绍具体的业务,以便明确各个团队的分析员和运营人员的需求,沉淀出相关文档。

1、业务调研(需求分析)的方式

  1.  借助产品部门提供的资料对整个项目进行了解,对报表系统中现有的报表进行研究分析。
  2. 去和产品部门直接沟通调研,根据与分析师和业务运营人员的沟通获知需求。

两种方式有利有弊:

  1.  第一种方式由于我们对他们所做的项目不是很熟悉,所了解到的也没有那么全面,对于产品部门提供的一些文档所定义的一些用语不了解;
  2. 第二种方式则会避免那种情况,但我们也知道,产品部门也有自己的任务,不会总有时间去给你讲解业务上的东西,所以在去找他们之前,要*明确自己的目的*,带着问题去找他们,同时要*注意自己和他 们交谈的语气*,因为我们是两个衔接比较密切的部门,态度不好,人家下次就不想理你了

2、业务调研的理论依据

        主要参考《大数据之路-阿里巴巴大数据实践》这本书,一开始依据阿里的数仓体系进行设计,后来采用了华为数仓的设计原理,其本质上没有太大的区别

        在需求分析阶段,您需要沉淀出业务分析或报表中的指标,以及指标的定义和粒度。粒度可以作为维度的输入。建议您思考下列问题,对后续的数据建模将有巨大的帮助:

  • 业务数据是根据什么(维度、粒度)汇总的,衡量标准是什么?例如,成交量是维度,订单数是成交量的度量。
  • 明细数据层和汇总数据层应该如何设计?公共维度层该如何设计?是否有公共的指标?
  • 数据是否需要冗余或沉淀到汇总数据层中?

        举例:数据分析师需要了解A公司电商业务中厨具类目的成交金额。当获知这个需求后,您需要分析:根据什么(维度)汇总、汇总什么(度量)以及汇总的范围多大(粒度)。例如,类目是维度,金额是度量,范围是全表。此外,还需要思考明细数据和汇总数据应该如何设计、是否是公共层的报表及数据是否需要沉淀到汇总表中等因素。

       需求调研的分析产出通常是记录原子与派生指标的文档。

二、分析业务过程(业务梳理)

        首先需要理解用户的业务过程,了解过程中涉及到的数据系统。

        可以采用过程分析法,将整个业务过程涉及的每个环节一一列清楚,包括技术、数据、系统环境等。在分析企业的工作职责范围(部门)后,您也可以借助工具通过逆向工程抽取业务系统的真实模型。您可以参考业务规划设计文档以及业务运行(开发、设计、变更等)相关文档,全面分析数据仓库涉及的源系统及业务管理系统:

  • 每个业务会生成哪些数据,存在于什么数据库中。
  • 对业务过程进行分解,了解过程中的每一个环节会产生哪些数据,数据的内容是什么。
  • 数据在什么情况下会更新,更新的逻辑是什么。

        选择粒度:在业务过程事件分析中,您需要预判所有分析需要细分的程度和范围,从而决定选择的粒度。 识别维表、选择好粒度之后,您需要基于此粒度设计维表,包括维度属性等,用于分析时进行分组和筛选。最后,您需要确定衡量的指标。

本教程中,经过业务过程调研,我们了解到用户电商营销业务的交易订单功能模块的业务流程如下。

业务流程

        这是一个非常典型的电商交易业务流程图。在该业务流程图中,有创建订单、买家付款、卖家发货、确认收货四个核心业务步骤。由于确认收货代表交易成功,我们重点分析确认收货(交易成功)步骤即可。

在明确用户的业务过程之后,您可以根据需要对进行分析决策的业务划分数据域。

三、划分数据域、主题域的划分(智慧园区)

        数据仓库是面向主题(数据综合、归类并进行分析利用)的应用。数据仓库模型设计除横向的分层外,通常也需要根据业务情况纵向划分数据域。数据域是联系较为紧密的数据主题的集合,是业务对象高度概括的概念,目的是便于管理和应用数据。

        通常需要阅读各源系统的设计文档、数据字典和数据模型,研究逆向导出的物理数据模型。进而,可以进行跨源的主题域合并,跨源梳理出整个企业的数据域。

        数据域是指面向业务分析,将业务过程或者维度进行抽象的集合。为保障整个体系的生命力,数据域需要抽象提炼,并长期维护更新。在划分数据域时,既能涵盖当前所有的业务需求,又能让新业务在进入时可以被包含进已有的数据域或扩展新的数据域。数据域的划分工作可以在业务调研之后进行,需要分析各个业务模块中有哪些业务活动。

        数据域可以按照用户企业的部门划分,也可以按照业务过程或者业务板块中的功能模块进行划分。例如A公司电商营销业务板块可以划分为如下数据域,数据域中每一部分都是实际业务过程经过归纳抽象之后得出的。

数据域 业务过程
会员域 注册、登录、浏览,下单
店铺域 装修、开店、关店
商品域 发布、上架、下架、重发
交易域 下单、支付、发货、确认收货
日志域 曝光、浏览、点击
服务域 商品收藏、拜访、培训、优惠券领用
采购域 商品采购、供应链管理

对于智慧园区的八大主题域的划分

 主题域,业务板块,业务域,业务过程,维度,维度属性,修饰类型,修饰词(列举),原子指标,派生指标

        按照这一格式,将调研的数据进行填充,进行迭代开发。迭代开发的优势在于既可以拿
出个基本的方案,又可以对于缺少的内容进行补充。进行版本的更新,可以与产品那边划好边界,让产品。那边对我们的每个版本进行验收,可以保护好我们自己,不再无故背锅。

3、让产品提出基本的需求

针对产品提出的基本需求,开始罗列出我们的派生指标,看是否能够满足需求

  • 如果不能满足,说明我们的业务还没有调研完整,还需要进一步补充
  • 若能满足,可以进行需求和派生指标的匹配 

四、定义维度与构建总线矩阵

        明确每个数据域下有哪些业务过程后,您需要开始定义维度,并基于维度构建总线矩阵。

1、定义维度

        在划分数据域、构建总线矩阵时,需要结合对业务过程的分析定义维度。以本教程中A电商公司的营销业务板块为例,在交易数据域中,我们重点考察确认收货(交易成功)的业务过程。

        在确认收货的业务过程中,主要有商品和收货地点(本教程中,假设收货和购买是同一个地点)两个维度所依赖的业务角度。从商品维度我们可以定义出以下维度的属性

  • 商品ID(主键)
  • 商品名称
  • 商品交易价格
  • 商品新旧程度: 1 全新 2 闲置 3 二手
  • 商品类目ID
  • 商品类目名称
  • 品类ID
  • 品类名称
  • 买家ID
  • 商品状态: 0 正常 1 删除 2 下架 3 从未上架
  • 商品所在城市
  • 商品所在省份

从地域维度,我们可以定义出以下维度的属性:

  • 城市code
  • 城市名称
  • 省份code
  • 省份名称

作为维度建模的核心,在企业级数据仓库中必须保证维度的唯一性。以A公司的商品维度为例,有且只允许有一种维度定义。例如,省份code这个维度,对于任何业务过程所传达的信息都是一致的。

2、构建总线矩阵

明确每个数据域下有哪些业务过程后,即可构建总线矩阵。您需要明确业务过程与哪些维度相关,并定义每个数据域下的业务过程和维度。如下所示是A公司电商板块交易功能的总线矩阵,我们定义了购买省份、购买城市、类目名称、类目ID、品牌名称、品牌ID、商品名称、商品ID、成交金额等维度。

数据域/过程 一致性维度
购买省份 购买城市 类目ID 类目名称 品牌ID 品牌名称 商品ID 商品名称 成交金额
交易 下单 Y Y Y Y Y Y Y Y N
支付 Y Y Y Y Y Y Y Y N
发货 Y Y Y Y Y Y Y Y N
确认收货 Y Y Y Y Y Y Y Y Y

五、明确统计指标

        需求调研输出的文档中,含有原子指标与派生指标,此时我们需要在设计汇总层表模型前完成指标的设计。

1、指标定义注意事项

        原子指标是明确的统计口径、计算逻辑: 原子指标=业务过程+度量。派生指标即常见的统计指标: 派生指标=时间周期+修饰词+原子指标。原子指标的创建需要在业务过程定义后方才可创建。派生指标的创建一般需要在了解具体报表需求之后展开,在新建派生指标前必须新建好原子指标。 注意事项如下:

  • 原子指标、修饰类型及修饰词,直接归属在业务过程下,其中修饰词继承修饰类型的数据域。
  • 派生指标可以选择多个修饰词,由具体的派生指标语义决定。例如,支付金额为原子指标,则客单价(支付金额除以买家数)为派生指标。
  • 派生指标唯一归属一个原子指标,继承原子指标的数据域,与修饰词的数据域无关。

2、根据业务需求确定指标

        本教程中,用户是电商营销部门的营销数据分析师。数据需求为最近一天厨具类目的商品在各省的销售总额、该类目Top10销售额商品名称、各省用户购买力分布(人均消费额)等,用于营销分析。

        根据之前的分析,我们确认业务过程为:确认收货(交易成功),而度量为商品的销售金额。因此根据业务需求,我们可以定义出原子指标:商品成功交易金额。

派生指标为:

  • 最近一天全省厨具类目各商品销售总额
  • 最近一天全省厨具类目人均消费额(消费总额除以人数)

最近一天全省厨具类目各商品销售总额进行降序排序后取前10名的名称,即可得到该类目Top10销售额商品名称。

主数据的梳理

一、主数据的含义

        主数据指的是在集团范围内各系统之间共享的基础数据,通常长期存在且应用于多个系统,例 如:项目信息,房产信息,员工信息

二、主数据的管理现状

  • 主数据存储在多个,相互不连接的系统/数据库中
  • 主数据信息在多个不同的应用系统中被维护
  • 集团总部没有对全局主数据信息及时、一致、真实、可靠的视图
  • 无法管理的主数据必然是不准确、不完整、充满矛盾并会导致错误的业务决策

三、主数据获取的目的

        根据未来物联网大数据平台的研发规划和数据规范化、一致性的原则,在集团信息化部、
平台之间各个维度实现主数据标准的统一;
        集团总部管理且现有储存的组织基础数据、客户基础数据、员工基础数据、财务数据等,
采用总部信息化部的数据命名标准、类型和定义,专业公司调取相关主数据,并以此为基础
构平台数据库。其后,要求各个物联子平台数据按此标准改造。

四、未来主数据管理的方案

1)数据标准:
定来源:规定数据的唯一出处
定结构:规定主数据的属性,编码构成
定规则:约定数据之间的关联关系
2)服务标准:
定接口规范 --约定接口生产者、消费者、接口名称、参数
定数据格式--规定数据标准格式
3)管理标准:
定流程 --规范主数据的申请、变更、修改流程
定职责--定义流程活动参与者的职责

五、实施策略:整体制定标准、分步建设系统、先基础、后深化

1)第一阶段:
  标准化制定
  主数据平台基本模块建设
  数据初始化清理与导入
2)第二阶段:
  完善主数据平台建设
  部分系统对接
数据监控与统计分析 
3)第三阶段:
  扩大主数据范围
  接入更多系统
  信息展示层建设

猜你喜欢

转载自blog.csdn.net/qq_22473611/article/details/118085305