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

数仓模型和领域划分

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/135532.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pinia】Pinia的概念、优势及使用方式

学习公司的项目,发现用到了Pinia,于是上网学习了一下,发现了一篇比较优秀的文章,于是将极少部分放到此记录学习,原文链接在末尾。 是什么 官网解释: Pinia 是 Vue 的存储库,它允许您跨组件/页…

2023年中国场馆产业研究报告

第一章 行业综述 1.1 定义与分类 场馆,作为一个多元化和充满活力的行业,为人们提供了一个为不同目的而聚集的空间。无论是为了活动、表演、展览还是聚会,场馆都在为社区的社会、文化和经济建设做出了不可或缺的贡献。 场馆是一个为举办各类…

VR全景展示的功能有哪些?你了解多少?

VR全景展示作为一种全新的视觉体验技术,能够为人们带来强烈的视觉效果以及沉浸式的观感,在旅游、房地产、车展、博物馆等都有着十分广泛的应用。这种富媒体技术,具有很好的交互性和沉浸感,能够带给大家更好的体验,那么…

uni-app实现web-view图片长按下载

<template><view><web-view :webview-styles"webviewStyles" :src"webUrl"></web-view></view> </template> uniapp的web-view中图片无法长按保存&#xff0c;IOS下是正常的&#xff0c;但是Android下长按无反应 解…

如何统计iOS产品不同渠道的下载量?

一、前言 在开发过程中&#xff0c;Android可能会打出来很多的包&#xff0c;用于标识不同的商店下载量。原来觉得苹果只有一个商店&#xff1a;AppStore&#xff0c;如何做出不同来源的统计呢&#xff1f;本篇文章就是告诉大家如何做不同渠道来源统计。 二、正文 先看一下苹…

【C++模拟实现】map、set容器的模拟实现

【C模拟实现】map、set容器的模拟实现 目录 【C模拟实现】map、set容器的模拟实现map、set模拟实现的代码&#xff08;insert部分&#xff09;部分一&#xff1a;红黑树的迭代器以及红黑树部分二&#xff1a;对set进行封装部分三&#xff1a;对map进行封装 遇到的问题以及解决方…

Stability AI推出Stable Audio;ChatGPT:推荐系统的颠覆者

&#x1f989; AI新闻 &#x1f680; Stability AI推出Stable Audio&#xff0c;用户可以生成个性化音乐片段 摘要&#xff1a;Stability AI公司发布了一款名为Stable Audio的工具&#xff0c;用户可以根据自己的文本内容自动生成音乐或音频。免费版可生成最长20秒音乐片段&a…

JL653—一个基于ARINC653的应用程序仿真调试工具

JL653是安装在PC机Windows操作系统上面的一层接插件&#xff0c;它能够真实地模拟ARINC653标准规定的功能性行为&#xff0c;从而可以供研发人员在PC机Windows环境下高效、快速的进行基于ARINC653的应用程序的开发、调试等。 JL653提供了ARINC 653 Part 1中要求的以下服务&…

手把手教你搭建农产品商城小程序:详细步骤解析

随着移动互联网的普及&#xff0c;越来越多的人开始关注如何在手机上进行购物&#xff0c;尤其是对于农产品这类日常生活所需品。本文将手把手教你搭建一个农产品商城小程序&#xff0c;让你轻松实现在手机上购买农产品的愿望。 一、登录乔拓云网后台 首先&#xff0c;我们需要…

ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小

文章目录 前言板子名称uboot Modelkernel 欢迎词、主机名 开机 logoLCD 控制台console 免登录命令提示符文件系统大小 前言 经过前面十篇文章的介绍&#xff0c;硬件部分调试基本完毕&#xff0c;接下来的文章开始介绍软件的个性化开发。 板子名称 uboot Model 既然是自己的…

Lua学习笔记:在Visual Studio中调试Lua源码和打断点

前言 本篇在讲什么 调试Lua源码 本篇需要什么 对Lua语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f449; ♠ 一级标题 &#x1f448; &…

HTTP状态码301(永久重定向)不同Web服务器的配置方法

文章目录 301状态码通常在那些情况下使用301永久重定向配置Nginx配置301永久重定向Windows配置IIS301永久重定向PHP下的301重定向Apache服务器实现301重定向 301重定向是否违反相关法规&#xff1f;推荐阅读 当用户或搜索引擎向服务器发出浏览请求时&#xff0c;服务器返回的HT…

Linux 企业级夜莺监控分析工具远程访问

目录 前言 1. Linux 部署Nightingale 2. 本地访问测试 3. Linux 安装cpolar 4. 配置Nightingale公网访问地址 5. 公网远程访问Nightingale管理界面 6. 固定Nightingale公网地址 前言 夜莺监控是一款开源云原生观测分析工具&#xff0c;采用 All-in-One 的设计理念&…

elasticsearch17-自动补全

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

【面试题】智力题

文章目录 腾讯1000瓶毒药里面只有1瓶是有毒的&#xff0c;问需要多少只老鼠才能在24小时后试出那瓶有毒。有两根不规则的绳子&#xff0c;两根绳子从头烧到尾均需要一个小时&#xff0c;现在有一个45分钟的比赛&#xff0c;裁判员忘记带计时器&#xff0c;你能否通过烧绳子的方…

[k8s] pod的创建过程

pod的创建过程 定义 Pod 的规范&#xff1a; apiVersion: v1 kind: Pod metadata:name: my-pod spec:containers:- name: my-containerimage: nginx:latest创建 Pod 对象&#xff1a; 使用 kubectl 命令行工具或其他客户端工具创建 Pod 对象&#xff1a; kubectl create -f…

线程锁(Thread Lock)和进程锁(Process Lock)

在Python中&#xff0c;线程锁&#xff08;Thread Lock&#xff09;和进程锁&#xff08;Process Lock&#xff09;具有相似的功能&#xff0c;但它们分别用于同步多线程和多进程环境中的资源访问。 进程锁 进程锁&#xff08;Process Lock&#xff09;可以用于在多进程环境中…

千巡翼X1 让航测无人机更小更轻更高效

利用无人机进行航空摄影测量&#xff0c;已成为测绘外业生产的主要方式&#xff0c;不仅方便快捷&#xff0c;更能全面准确获得成果。近年来&#xff0c;凭借快速高效、机动灵活、安全可靠、低成本等诸多优势&#xff0c;小型多旋翼无人机逐渐成为一些航测项目作业的新利器。 千…

新手如何开始Microstation CE版二次开发

一步步学习MicroStation CE MDL&#xff08;C&#xff09;开发 - 技术资料库 - Bentley 中国优先社区 - Bentley Communities https://communities.bentley.com/communities/other_communities/chinafirst/w/chinawiki/57704/microstation-ce-mdl-c一步步学习MicroStation CE A…

opencv 基础(持续更新中)

1 前言 https://www.couragesteak.com/ 2 安装 3 基础属性demo 打开一张图片&#xff1a; import cv2img cv2.imread(./girl.jpg)print(img.shape) # (1536, 1024, 3) 数组形状 print(type(img)) # numpy 数组 print(img) # 三维数组&#xff08;彩色图片&am…