热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

数仓构建业务调研

业务调研确定需求您在构建数据仓库之前,首先需要确定构建数据仓库的目标与需求,并进行全面的业务调研。您需要了解真实的业务需求,以及确定数

业务调研


确定需求

您在构建数据仓库之前,首先需要确定构建数据仓库的目标与需求,并进行全面的业务调研。您需要了解真实的业务需求,以及确定数据仓库要解决的问题。


业务调研

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

您可以通过调查表和访谈等形式详细了解以下信息:


  1. 用户的组织架构和分工界面。

    例如,用户可能分为数据分析、运营和维护部门人员,各个部门对数据仓库的需求不同,您需要对不同部门分别进行调研。

  2. 用户的整体业务架构,各个业务板块之间的联系和信息流动的流程。

    您需要梳理出整体的业务数据框架。

  3. 各个已有的业务板块的主要功能及获取的数据。

本教程中以A公司的电商业务为例,梳理出业务数据框架如下图所示。A公司的电商业务板块分为招商、供应链、营销和服务四个模块,每个板块的需求和数据应用都不同。您在构建数据仓库之前,首先需要明确构建数据仓库的业务板块和需要具体满足的业务需求。

业务调研

此外,您还需要进一步了解各业务板块中已有的数据功能模块。数据功能模块通常和业务板块紧耦合,对应一个或多个表,可以作为构建数据仓库的数据源。下表展现的是一个营销业务板块的数据功能模块。


数据功能模块A公司电商营销管理
商品管理Y
用户管理Y
购买流程Y
交易订单Y
用户反馈Y

Y代表包含该数据功能模块,N代表不包含。


数据需求为最近一天某个类目(例如,厨具)商品在各省的销售总额、该类目Top10销售额商品名称和各省客户购买力分布(人均消费额)等,用于营销分析。最终的业务需求是通过营销分析完成该类目的精准营销,提升销售总额。通过业务调研,我们将着力分析营销业务板块的交易订单数据功能模块。


需求分析

在未考虑数据分析师和业务运营人员的数据需求的情况下,单纯根据业务调研结果构建的数据仓库可用性差。完成业务调研后,您需要进一步收集数据使用者的需求,进而对需求进行深度的思考和分析。

需求分析的途径有两种:


  • 根据与分析师和业务运营人员的沟通获知需求。
  • 对报表系统中现有的报表进行研究分析。

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


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

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

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


分析业务过程

业务过程可以概括为一个个不可拆分的行为事件。用户的业务系统中,通过埋点或日常积累,通常已经获取了充足的业务数据。为理清数据之间的逻辑关系和流向,首先需要理解用户的业务过程,了解过程中涉及到的数据系统。

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


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

业务过程可以是单个业务事件,例如交易的支付、退款等;也可以是某个事件的状态,例如当前的账户余额等;还可以是一系列相关业务事件组成的业务流程。具体取决于您分析的是某些事件过去发生情况、当前状态还是事件流转效率。

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

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

img

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

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


划分数据域

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


划分数据域

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

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

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


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

定义维度与构建总线矩阵

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


定义维度

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

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


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

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


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

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


构建总线矩阵

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

构建总线矩阵


Y代表包含该维度,N代表不包含。



明确统计指标

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


指标定义注意事项

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


  • 原子指标、修饰类型及修饰词,直接归属在业务过程下,其中修饰词继承修饰类型的数据域。
  • 派生指标可以选择多个修饰词,由具体的派生指标语义决定。例如,支付金额为原子指标,则最近一个月商品A的支付金额(时间周期为最近一个月,修饰词为商品A,原子指标为支付金额)为派生指标。
  • 派生指标唯一归属一个原子指标,继承原子指标的数据域,与修饰词的数据域无关。

根据业务需求确定指标

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

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

派生指标为:


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

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


推荐阅读
  • 本文详细探讨了 Java 中 Daemon 线程的特点及其应用场景,并深入分析了 Random 类的源代码,帮助开发者更好地理解和使用这些核心组件。 ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • 微服务架构详解及其入门指南
    本文详细介绍了微服务的基本概念、发展历程、与传统架构的区别及优势,并探讨了适合采用微服务架构的场景。此外,文章还深入分析了几个主流的微服务开发框架,特别是Spring Cloud的组成和特点。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文详细探讨了字符编码的发展历程,从最早的8位字节编码到现代的UNICODE和UTF8,解释了各种编码方式的原理及其在不同场景下的应用。 ... [详细]
  • 本文档详细规划了从基础到高级的软件测试学习路径,包括但不限于测试基础、Linux和数据库、功能测试、Python编程、接口测试、性能测试、金融项目实战、UI自动化测试等内容,旨在为初学者和进阶者提供全面的学习指导。 ... [详细]
  • MHA 架构详解与实践
    MHA(Master High Availability)是一种高效的主从切换解决方案,确保了数据的一致性和系统的高可用性。本文将详细介绍MHA的功能、主从切换流程以及配置步骤,并探讨其优缺点。 ... [详细]
  • 本文探讨了Java异常处理的本质,提出了设计模式以优化异常处理,并分析了在AOP模型中异常处理的应用。文章强调了正确使用Java异常对于提升代码质量和维护性的关键作用。 ... [详细]
  • mybatis相关面试题 ... [详细]
  • Cortex-M3处理器核心解析
    本文详细介绍了Cortex-M3处理器的常见术语及其核心特点,包括其架构、寄存器组、操作模式、中断处理机制、存储器映射、总线接口和存储器保护单元(MPU)。此外,还探讨了Cortex-M3在性能和中断处理方面的优势。 ... [详细]
  • 远程访问用户 Kindle通过电子书实现控制
    介绍自2007年以来,亚马逊已售出数千万台Kindle,令人印象深刻。但这也意味着数以千万计的人可能会因为这些Kindle中的软件漏洞而被黑客入侵。他 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
  • 本文基于https://major.io/2014/05/13/coreos-vs-project-atomic-a-review/的内容,对CoreOS和Atomic两个操作系统进行了详细的对比,涵盖部署、管理和安全性等多个方面。 ... [详细]
  • 1、服务器配置信息① 主服务器IP:192.168.1.2② 从服务器IP:192.168.1.3③ 操作系统:主服务器:Win8,从服务器࿱ ... [详细]
author-avatar
我是谁的宝贝儿呢颓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有