数仓建模—建模流程

1、建模流程

其实就是业务模型->概念模型->逻辑模型->物理模型的这样一个流程,下面我们详细解释一下各个模型阶段都要做什么

业务建模(需求沟通)

  • 根据业务部门进行划分,理清部门之间的关系,然后将各个部门的具体业务程序化,与业务部门开会协商出需求的指标、保存年限、维度等等。
  • 总体来讲,就是要知道他们需要哪些指标以及他们能提供哪些数据。
  • 业务建模的时间最长,而且与公司实际的业务环境息息相关,因此在这里需要根据实际生产环境和业务需求确认好数据仓库使用的工具和平台。
主要解决业务层面的分解和程序化。搞清楚系统边界,确定好主题域
  • 因此,业务建模阶段其实是一次和业务人员梳理业务的过程,在这个过程中,不仅能帮助我们技术人员更好的理解业务,另一方面,也能够发现业务流程中的一些不合理的环节,加以改善和改进。

概念建模|领域建模(画图想好怎么做)

  • 将业务模型抽象化,分组合并类似的概念,细化概念,抽象出实体与实体之间的联系,理清各组概念之间的联系。
  • 说白了就是画图,把指标需要的哪些数据封装到一个实体里,实体与实体之间的关联等等用ER图表示出来。
  • 先画出局部ER图,最后再综合画出全局ER图。
主要是对业务模型进行抽象处理,生成领域概念模型
  • 在原有数据库基础上建立了一个比较稳固完善的模型,因为数据仓库是对原有数据库系统中的数据进行集成和重组而形成的数据集合,所以数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解,看在原有的数据库系统中“有什么”、“怎样组织的”和“如何分布的”等,然后再来考虑应当如何建立数据仓库系统的概念模型。
  • 数据仓库的概念模型是面向企业全局建立的,它为集成来自各个面向应用的数据库的数据提供了统一的概念视图。
    概念模型的设计是在较高的抽象层次上的设计,因此建立概念模型时不用考虑具体技术条件的限制。
  • 领域概念建模就是运用了实体建模法,从纷繁的业务表象背后通过实体建模法,抽象出实体,事件,说明等抽象的实体,从而找出业务表象后抽象实体间的相互的关联性,保证了我们数据仓库数据按照数据模型所能达到的一致性和关联性

逻辑建模(表设计)

  • 将概念模型实体化,具体考虑概念对应的属性,事件考虑事实属性,维度考虑维度属性。
  • 总体来说就是建表,前面已经画出了关系图,这里只要将表里头有哪些字段考虑出来就可以,如果是事实表就考虑事实字段和业务主键,如果是维度表就考虑维度属性,SCD策略等等。在这里需要确定数据粒度,如果多个指标都用到一个字段,则取粒度最小的指标。如果不确定指标的量度,则取毫秒级作为粒度。

物理建模(建表)

  • 综合现实的大数据平台、采集工具、etl工具、数仓组件、性能要求、管理要求等多方面因素,设计出具体的项目代码,完成数仓的搭建。

2、建模的过程

  • 假设我们现在在构建一张订单表
从多个维度进行统计组合,形成多维度数据集,来从多个角度观察业务过程的好坏

选择业务过程

  • 确认哪些业务处理流程是数据仓库应该覆盖的,是维度方法的基础。因此,建模的第一个步骤是描述需要建模的业务流程。例如,需要了解和分析一个零售店的销售情况,那么与该零售店销售相关的所有业务流程都是需要关注的。为了描述业务流程,可以简单地使用纯文本将相关内容记录下来,或者使用“业务流程建模标注”(BPMN)方法,也可以使用统一建模语言(UML)或其他类似的方法。
  • 业务过程就是需要那种业务场景下产生的订单表(划分到那个业务线和数据域)
  • 业务过程就是用户下单的订单记录表

选择数据域

申明粒度
  • 粒度就是确认一条记录代表的含义或者是细化到何种程度(一条记录代表一个订单还是多个订单,如拼团的时候团长的单)
  • 在选择维度和事实前必须声明粒度,因为每个候选维度或事实必须与定义的粒度保持一致。在一个事实所对应的所有维度设计中强制实行粒度一致性是保证数据仓库应用性能和易用性的关键。
  • 从给定的业务流程获取数据时,原始粒度是最低级别的粒度。建议从原始粒度数据开始设计,因为原始记录能够满足无法预期的用户查询。汇总后的数据粒度对优化查询性能很重要,但这样的粒度往往不能满足对细节数据的查询需求。
  • 不同的事实可以有不同的粒度,但同一事实中不要混用多种不同的粒度。维度模型建立完成之后,还有可能因为获取了新的信息,而回到这步修改粒度级别。
确认维度
  • 维度的粒度必须和第二步所声明的粒度一致。
  • 维度表是事实表的基础,也说明了事实表的数据是从哪里采集来的。
  • 典型的维度都是名词,如日期、商店、库存等。维度表存储了某一维度的所有相关数据,例如,日期维度应该包括年、季度、月、周、日等数据。
确认事实
  • 这一步识别数字化的度量,构成事实表的记录。它是和系统的业务用户密切相关的,因为用户正是通过对事实表的访问获取数据仓库存储的数据。大部分事实表的度量都是数字类型的,可累加,可计算,如成本、数量、金额等。

3、模型设计的思路

  • 业务需求驱动,数据驱动,构造数据仓库有两种方式:一是自上而下,一是自下而上。

自上而下

  • Bill Inmon先生推崇“自上而下”的方式,即一个企业建立唯一的数据中心,就像一个数据的仓库,其中数据是经过整合、经过清洗、去掉脏数据的、标准的,能够提供统一的视图。要建立这样的数据仓库,并不从它需要支持哪些应用入手,而是要从整个企业的环境入手,分析其中的概念,应该有什么样的数据,达成概念完成整;

自下而上

  • Ralph Kimball先生推崇“自下而上”的方式,他认为建设数据仓库应该按照实际的应用需求,加载需要的数据,不需要的数据不要加载到数据仓库中。这种方式建设周期较短,客户能够很快看到结果。(针对客户的需求,需求要什么就做什么)

4、模型落地实现

  • 按照命名规范创建表
  • 开发生成维表和事实表的代码
  • 进行代码逻辑测试,验证数据加工逻辑的正确性
  • 代码发布,加入调度并配置相应的质量监控和报警机制
  • 4
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数仓建模是为了支持数据仓库的设计和构建,从而实现对数据的有效管理和分析。以下是数仓建模的一般实施细则: 1. 需求收集和分析:与相关的业务部门和利益相关者合作,收集数据仓库的需求,并进行详细的需求分析。了解业务流程、数据来源和数据需求,确保数仓模型能够满足业务需求。 2. 数据源分析:对数据源进行详细的分析,了解数据的结构、关系和含义。对于每个数据源,确定其与其他数据源的关联关系和集成方式。 3. 建模方法选择:根据需求和数据源分析的结果,选择合适的建模方法。常见的建模方法包括维度建模(如星型模型、雪花模型)和规范化建模(如第三范式)等。 4. 实体识别和关系定义:根据业务需求和数据源分析,确定数仓中的实体(如产品、客户、订单等),并定义它们之间的关系。这可以使用实体关系图、实体属性列表等方式进行描述。 5. 维度建模:对事实表和维度表进行设计。事实表包含业务度量(如销售金额、数量等)和外键(与维度表关联),而维度表包含维度属性(如时间、地理位置、产品等)。这可以使用维度模型设计工具(如星型模型工具)进行建模。 6. 规范化建模:根据第三范式原则,将数据分解为多个规范化表。每个表代表一个实体或关系,具有唯一标识符和属性。这可以使用实体关系图和关系模式进行描述。 7. 数据粒度定义:定义事实表和维度表的数据粒度,即数据的最小可分析单元。这有助于确定数据聚合和查询的粒度,并支持不同层级的分析。 8. 层次结构设计:对维度表中的属性进行层次结构的设计,以支持分层分析。例如,时间维度可以按照年、季度、月份等进行层次划分。 9. 元数据管理:对数仓中的各个表、字段和关系进行元数据管理,以支持数据的理解、发现和文档化。这可以使用元数据管理工具或元数据仓库来实现。 10. 数据仓库架构设计:根据具体情况,设计数据仓库的架构,包括物理架构(如服务器、存储等)、ETL流程和工作流程等。确保数据仓库的可扩展性、性能和可靠性。 11. 模型验证和优化:对建立的数据仓库模型进行验证和优化,包括合理性检查、性能测试和数据一致性验证等。根据验证结果进行必要的调整和改进。 12. 实施和部署:根据设计和验证的结果,实施数据仓库模型,并将其部署到生产环境中。确保数据的准确性、完整性和安性。 以上是数仓建模的一般实施细则,具体的实施过程可能会因组织和项目的需求而有所不同。在实施过程中,需要与相关的业务部门和技术团队密切合作,确保数仓建模能够满足业务需求,并具备良好的性能和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值