当前位置: 首页 > news >正文

数仓主题域和数据域、雪花模型,星型模型和星座模型

数仓模型和领域划分

  • 一、主题域和数据域的差别
  • 二、雪花模型,星座模型和星型模型

一、主题域和数据域的差别

明确数据域作为数仓搭建的重要一环,能够让数仓的数据便于管理和应用。
数据域和主题域都是数据仓库中的重要概念,但含义略有不同,常常作为面试官的面试考点。

数据域
指的是特定的业务领域或是业务过程,如销售、采购、人力资源管理、财务等。在数据仓库中。每个数据域都对应一个或多个源系统(ODS层表数据),数据仓库从这些源系统中提取数据,经过清洗、转换和集成处理后,将数据存储在数据仓库中。数据域是数据仓库中的一个高层次概念,用于组织和管理数据仓库中的数据。
在这里插入图片描述
主题域
指的是特定的主题或领域,其中包含相关的概念、术语、知识和实践。在数据仓库中,每个主题域都包含一个或者多个维度表和一个或多个事实表,用于存储与该主题相关的数据。主题域通常是与业务相关的,例如销售分析、客户关系管理、供应链管理。主题域是数仓中的一个更细粒度的概念,用于描述和分析特定的业务领域或主题。
在这里插入图片描述
数据域和主题域之间存在一定的层次关系。数仓中的每个数据域都包含了一个或者多个主题域,每个主题域都包含了与其相关的维度和事实表,以及其他数据对象和元数据,用于支持数据分析和决策。

举个栗子:
下面是物理数仓所需的所有业务过程及数据域划分详情。
在这里插入图片描述
上图中的交易域由多个交易相关的业务过程事务型事实表组成,通常可以根据业务过程或者部门进行划分,如根据业务过程进行划分,需要注意的是一个业务过程只能属于一个数据域。

主题域是从业务视角自上而下分析,从整体业务环节中升华出来大的专项分析模块,结合对接的业务范围和行业形态从更高的视角去洞察整个业务流程。因此,主题域是由多个数据域组成的,这些数据域提供了主题域所需的数据。
例如:物流主题域需要统计历史至今的运单统计
在这里插入图片描述
完成该指标的统计需要使用到交易域和物流域数据。

再举个栗子:
数据域是萝卜,青菜,肉等原材料
主题大域是菜系,东北菜,粤菜,湘菜;子主题域是菜品,鱼香肉丝,东北烩菜
这些菜品都需要使用到萝卜,青菜,肉这些原材料,但却不属于同一个菜系。
在这里插入图片描述

总之,数据域是对数据的分类,而主题域和业务域是对业务的分类。主题域和数据域最终都是对数据的分类,只是一个是数据视角,一个是业务视角。

数据域是指将数据按照不同的维度进行划分,如时间、地区、产品等。而主题域则是指将业务对象高度概括的概念层次归类,目的是便于数据的管理和应用。

二、雪花模型,星座模型和星型模型

在构建数仓维度模型时,通常为数据分析提供便捷而进行反规范化的表结构设计。因此诞生出许多不同的维度模型。

星型模型
数据仓库中常见的一种模型,它是一种基于事实的模型,主要用于描述企业各个维度之间的关系。在星型模型中,事实表通过主键与维度表连接,形成一颗星星的形状。
在这里插入图片描述
星型模型只有一张事实表,通过主键外键关联的方式连接多张维度表,并且这些维度表之间不再存在关联关系。

星型模型的维度表只有一个层级,导致这些维度表存储了一定程度的数据冗余,比如一张包含国家、省份、城市三列的维度表,国家列会存在很多重复的数据。

星型模型的优点是简单易懂,易于理解和使用;缺点是扩展性较差,当业务需求发生变化时,可能需要对模型进行调整和扩展。

在这里插入图片描述
雪花模型
当一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化, 原有的各维表可能被扩展为小的事实表,形成一些局部的" 层次"区域,这些被分解的表都连接到主维表而不是事实表。
在这里插入图片描述

其优点是通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能,避兔了数据冗余。
其缺点是增加了主键-外键关联的几率,导致查询效率低于星型模型,且不利于开发。

在这里插入图片描述
星座模型
星座模型是星型模型的扩展,它允许在星型模型中存在多个事实表,不同事实表之间共享维表信息,常用于数据关系更复杂的场景。
在这里插入图片描述
星座模型的缺点是增加了主键-外键关联的几率,导致查询效率低于星型模型,并且不利于开发 。

通过上面的对比分析,可以发现数据仓库更适合使用星型模型来构建底层数据hive表,通过数据冗余来减少查询次数以提高查询效率。雪花模型在关系型数据库中(MySQL/Oracle) 更加常见。在具体规划设计时,应结合具体场及两者的优缺点来进行设计,找到一个平衡点去开展工作。

http://www.lryc.cn/news/166435.html

相关文章:

  • 黑马头条 热点文章实时计算、kafkaStream
  • 数据分析:利用gpt进行归因分析
  • Python工程师Java之路(p)Module和Package
  • 某计费管理系统任意文件读取漏洞
  • LeetCode:1929.数组串联
  • 记录:移动设备软件开发(activity组件)
  • Redis常用应用场景
  • grafana 监控无图解决
  • Linux--进程-消息队列
  • MySQL下载安装环境变量配置,常用命令
  • HSRP(热备份路由选择协议)的概念,原理与配置实验
  • 数据可视化大屏模板 | 保姆级使用教程
  • qml怎么显示网页
  • leetcode分类刷题:二叉树(一、简单的层序遍历)
  • STM32 CAN使用记录:FDCAN基础通讯
  • GB/T 11945-2019 蒸压灰砂实心砖和实心砌块检测
  • echarts静态饼图
  • Linux中的apt与yum
  • DQN算法概述及基于Pytorch的DQN迷宫实战代码
  • Pytorch学习整理笔记(一)
  • paddlespeech asr脚本demo
  • 算法分析与设计编程题 递归与分治策略
  • Java的XWPFTemplate工具类导出word.docx的使用
  • Science adv | 转录因子SPIC连接胚胎干细胞中的细胞代谢与表观调控
  • 机器学习实战-系列教程7:SVM分类实战2线性SVM(鸢尾花数据集/软间隔/线性SVM/非线性SVM/scikit-learn框架)项目实战、代码解读
  • DOM渲染与优化 - CSS、JS、DOM解析和渲染阻塞问题
  • 基于小程序的理发店预约系统
  • MD5 算法流程
  • TCP/IP协议详解
  • SSM SpringBoot vue快递柜管理系统