数据仓库建设-数仓分层

数据仓库能够帮助企业做出更好的决策,提高业务效率和效益;在数据仓库建设时,绕不开的话题就是数仓分层。

一、数据分层的好处

1. 降低数据开发成本

通用的业务逻辑加工好,后续的开发任务可以基于模型快速使用,数据需求的响应速度也会更快。

2. 降低任务运维成本

业务发展过程中,数据指标口径、统计逻辑变化是常态,任务失败也屡见不鲜。如果每一次调整都需要对所有的数据任务进行修改,再去回溯数据,那维护起来就比较困难,而且数据还会经常出错。

数仓分层就是希望通过对最基础的、常用的数据进行抽象,找出数据的主干,对主干进行修复后,下游的叶子节点就可以最小变动。例如,当产品改版后,涉及流量统计指标口径需要调整,通过数据分层,只修改最底层的源表的逻辑就可以实现整个链路的数据更新。

img

img

3. 方便共享复用,减少重复建设

不同的开发人员、不同时期开发的模型,如果没有分层管理规范,往往导致后期使用时找不到。需要花费很长时间沟通、翻代码确认,最终耗时反而没有重新写一套逻辑来的快。长此以往,数据复用度低,带来存储和计算资源的浪费。

通过数据分层,将数据有序的管理起来,就像图书馆的书架导航,可以快速帮助使用者找到所需要的书籍在那一层书架中。

img

4. 统一数据口径

同一个指标在数据加工处理时,复用的是同一个数据模型表,这样很大程度可以规避数据统计不统一的问题。

二、数据仓库的分层

img

**ODS层:**源数据层,一般是从各种业务系统、日志数据库将数据汇集到数据仓库中,作为原始数据存储和备份。通过数据同步的方式,将业务从库数据同步到HDFS、Hive等,适合海量数据存储和加工处理的系统中。

**DWD层:**数据明细层,对ODS层数据进行规范化处理,例如脏数据过滤、数据格式化等,但仍以数据明细方式存储,且将数据进行主题、层级划分。

**DIM层:**维度表,在维度建模理论中,可以通过业务主题宽表关联维度表方式,快速输出直观的数据分析结果。

**DM层:**数据集市层,基于对业务的需求的理解和抽象,建立通用的指标和分析维度模型,数据仍以明细为主,部分可以直接累加和汇总的数据指标,可以采用聚合结果的方式呈现。

**APP层:**数据应用层,面向不同业务部门、不同产品需求提供具体业务场景的结果表,通过数据同步方式再从数仓同步到MySQL等查询引擎,供前端数据产品输出使用。定制化程度高。

三、阿里数仓分层

阿里巴巴数仓分层采用了比传统三层架构更为细致的分层结构,具体包括以下六层:

  1. 采集层:该层主要负责数据的采集和传输,从各种数据源(如业务系统、应用日志、社交网络等)中收集数据,并将数据传输到数据仓库中进行存储和处理。在采集层中,数据需要进行格式化、清洗、验证等处理,确保数据的准确性和完整性。
  2. 存储层:该层主要负责数据的存储和管理,包括数据的分区、压缩、索引等操作。
  3. 计算层:该层主要负责数据的计算和分析,包括数据的加工、转换、聚合等操作。
  4. 模型层:该层主要负责数据模型的设计和管理,包括物理模型、逻辑模型、维度模型、事实模型等。
  5. 应用层:该层主要负责数据的展示和可视化,包括BI工具、数据可视化工具、报表系统等
  6. 安全层:该层主要负责数据的安全和保护,包括数据的访问控制、数据加密、数据备份等。

阿里巴巴数仓分层相比传统的三层架构更为细致,每一层的功能更为明确和专业化,从而能够更好地支持企业的数据分析和决策支持工作。这种分层结构的优点在于,可以将数据处理和管理的工作划分为不同的层级,实现各层之间的解耦和协作,从而提高数据处理和管理的效率和准确性。

四、小结

数据仓库是企业决策过程中必不可少的组成部分,通过数据仓库可以有效地提高企业决策的效率和效益。数据仓库的分层架构可以帮助企业更好地管理和维护数据仓库,提高数据仓库的可扩展性、可维护性和可管理性。数据仓库的建设过程需要经过多个步骤,包括需求分析、数据清洗和预处理、数据仓库模型设计、数据集成和管理、元数据管理、数据挖掘和分析、部署和维护。

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

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

相关文章

IDEA使用方式

1.翻译 1.Plugins插件:Chinese中文插件 文件F 编辑E 视图V 导航N 代码C 分析Z 重构R 构建B 运行U 工具T VCSS 窗口W 帮助H文件N 新建N 打开 打开最近 关闭项目 设置T 项目结构 文件属性 保存全部S 从磁盘全部重新加载 作废缓存/重启 导出/导入操作 其他设置 导出 打…

windows下mysql8定时备份,bat脚本编写,dos免密执行

前提:mysql8已经安装。 编写脚本copy_mysql_data.bat echo off set timestamp%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2% set backupfileD:\ProgramData\MySQL\Backup\backup_%timestamp%.sql set mysqlpathD:\Program Files\MySQL\MyS…

ubuntu版本Linux操作系统上安装键盘中文输入法

要在ubuntu版本Linux操作系统上安装键盘中文输入法 可以按照以下步骤进行操作: 1、Linux终端输入:sudo apt-get install ibus-pinyin 这将安装一个常用的中文输入法 “ibus-pinyin”。 2、重新启动系统:为了使输入法生效,需要…

ubuntu打开usb摄像头

文章目录 前言一、识别 usb 摄像头二、安装应用程序显示摄像头捕捉到的视频1、使用应用程序茄子(cheese)2、运行 cheese 捕捉视频 前言 记录一下解决在 Linux 下打开 usb 摄像头界面黑屏的问题。 一、识别 usb 摄像头 1、保持在 ubuntu 界面&#xff0…

前端学习记录~2023.7.17~CSS杂记 Day9

前言一、浮动1、使盒子浮动起来2、清除浮动3、清除浮动元素周围的盒子(1)clearfix 小技巧(2)使用 overflow(3)display: flow-root 二、定位1、定位有哪些2、top、bottom、left 和 right3、定位上下文4、介绍…

科技赋能企业,实现数字化转型

科技是第一生产力,数字技术即科技,可以改变传统的商业模式,为各行各业注入新的活力。 推动企业数字化转型,可是实现行业的效率提升,实现跨界重组,重构产业模式,为产业格局重新赋能,最…

AJAX: 事件循环(举例细论)

概念:执行任务和收集异步任务,在调用栈空闲时,反复调用任务队列里回调函数的一种执行机制 原因:JavaScript 是单线程的,为了不阻塞 JS 引擎,设计执行代码的模型 JS内代码如何执行: 执行同步代…

PHP与Golang对战:两种语言的比较与应用场景探讨

引言 在软件开发领域,选择一种合适的编程语言对于项目的成功至关重要。而在今天的文中,我们将探讨两个备受争议的编程语言——PHP与Golang之间的对战。通过比较它们的优势和应用场景,帮助开发者更好地了解如何选择适合自己项目的语言。 PHP的…

伙伴云CEO戴志康:我们为什么要做伙伴云?

分享嘉宾:戴志康,伙伴云CEO 以下为演讲实录⬇⬇⬇ 01选择人更少的一条路,从B级走向A级 我一直想和大家交流一个话题,关于我们为什么要做伙伴云。既代表我自己,同时也代表我们团队的一些想法。 我是一个怀疑论者。大…

Win10 配置NDK安装2023.7.19版本

NDK安装流程 1. 下载:2. 安装:3. 测试: 在大多数情况下,使用 Android SDK 管理器安装 NDK 会更轻松。本文单独安装NDK,但后续也可以使用管理器进行管理。 1. 下载: 地址 Fig.1 最新稳定版本 2. 安装&…

3.6 Bootstrap 导航元素

文章目录 Bootstrap 导航元素表格导航或标签胶囊式的导航菜单基本的胶囊式导航菜单垂直的胶囊式导航菜单 两端对齐的导航禁用链接下拉菜单带有下拉菜单的标签带有下拉菜单的胶囊标签页与胶囊式标签页 Bootstrap 导航元素 本文将讲解 Bootstrap 提供的用于定义导航元素的一些选项…

OpenCv之图像直方图

目录 一、基本概念 二、使用OpenCv统计直方图 三、使用掩膜的直方图 一、基本概念 图像直方图是用一表示教字图像中亮度分布的直方图,标绘了图像中每个高度值的像素数。可以借助观察该有方图了解需要如何调整亮度分布的直方图。这种直方图中,横坐标的左…

12. 一些开发中遇到的SQL问题

文章目录 一些开发中遇到的SQL问题1. sql报11090错误,原因可能是以下错误,在?占位符后有一个空格2. 占位符?的位置不能是表名,否则会无法进行预编译3. mysql中desc是关键字,如果字段名称为desc会报错4. 数据库中时间格…

Apikit 自学日记:如何测试多个关联的 API

肯定会有人好奇,如果有多个关联的 API 如何做测试呢?很简单!在 APIkit 中也有测试多个关联 API 的功能。 1、在流程测试用例详情页中,点击“ 添加测试步骤”,选择“从API文档添加API请求” 2、在对应的项目下选择关联的…

CSDN 周赛 62 期

CSDN 周赛 62 期 参赛体验选择题1234编程题1、题目名称:覆盖面积2、题目名称:机器猫参赛体验 这次没有出填空题,好评。 选择题四个,基本上,对数据库比较熟悉的人,应该都可以全部答对的。 编程题两个,嗯。。。。就是上周偷偷摸摸更新出来的四个题目之二。还以为不会出…

csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板

文章目录 ⭐前言⭐利用inscode免费开放资源💖 在inscode搭建vue3tsant项目💖 调整配置💖 antd 国际化配置💖 用户store💖 路由权限💖 预览 ⭐结束 ⭐前言 大家好,我是yma16,本文分享…

3.10 Bootstrap 标签

文章目录 Bootstrap 标签标签 Bootstrap 标签 下面将讲解 Bootstrap 标签。标签可用于计数、提示或页面上其他的标记显示。使用 class .label 来显示标签&#xff0c;如下面的实例所示&#xff1a; <span class"label label-default">Label</span></…

如何二次封装一个el-table组件并二次复用

*注:示例使用的是vue3和element进行二次封装的 首先我们来看效果图&#xff08;总共可以分为以下几个模块&#xff09;&#xff1a; 表格数据操作按钮区域表格信息提示区域表格主体内容展示区域表格分页区域 表单搜索没有封装在这里是为了降低代码的耦合性(有兴趣的可以查看我…

python实现小波降噪

文章目录 小波分解小波系数小波降噪阈值确定的一些小知识点python 实现小波去噪小波分解 上图为对信号进行3层小波分解,其中,Approximation 为近似小波系数(信号的低频成分),Detail为细节小波系数(信号的高频成分),分解后得到四个小波系数分别为A3,D3,D2,D1。 小波系数 小…

图片速览 DCN K-means-friendly Spaces: Simultaneous Deep Learning and Clustering

本文使用了一种交替更新网络参数和聚类中心的方法。在网络更新完成之后&#xff0c;对于固定的网络参数和 M&#xff0c;再更新当前样本的分配向量。然后根据新的分配结果如式子3.8更新聚类中心&#xff1a; 注&#xff1a;文中还有问题是否能进行凸优化的部分 CG https…