企业数据仓库建设的设计(一)

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 数据仓库(以下简单“数仓”)的概念在很早就被提出来,是数据库的一个分支,早期是决策支持系统(dss)和联机分析应用数据源的结构化数据环境,用于资料数据的沉淀,归类合理的存储结构,做系统化的分析整理,支撑各种决策系统,商业智能的需要。

在前面的文章中介绍了企业数据建设的由来及可能的发展方向,及数据建设能解的是什么问题,总结了数据可能发挥的作用与效益,这些都是数据处理后的表现形式,有价值的数据,都是由众多松散的原始数据处理加工而来的,而在数据的建设过程中,经常听到较多的是数据仓库的建设,那么,什么是数据仓库呢?

image.png

数据仓库(以下简单“数仓”)的概念在很早就被提出来,是数据库的一个分支,早期是决策支持系统(dss)和联机分析应用数据源的结构化数据环境,用于资料数据的沉淀,归类合理的存储结构,做系统化的分析整理,支撑各种决策系统,商业智能的需要。

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

从概念上看,数据仓库本身并不“生产”数据,也不“消费”任何数据,它的数据来源于外部,同时也输出给外部使用,数据仓库是面向主题、集成性、稳定性和时变性的数据集合,它的任何一个特点都是缺一不可的,没有稳定性和时变性的数据集合,试问能提供什么决策呢,数据的价值体现在它的时效性,对比性,追溯性。

image.png

从定义上看,数据仓库至少包括数据获取、数据存储、数据访问等三部分。数据获取,负责将外部的数据采集到数据仓库,数据的来源可能有多种,比如关系型数据、非关系型数据、文档数据等;数据采集来了,就要将它存储起来,为后续的处理与分析提供输入,这里的数据存储,它不是简单的将采集回来的数据直接存储,而是需要将数据进行清洗、归类、去重、去噪,然后按不同的粒度进行分类存储,为后继的数据输出,提供可“消费”的基本数据,可能在特定的场景下,还需要对数据进行更高层次的聚合与统计并保存起来,去响应一些较实时的场景(这里涉及到数据仓库的存储分层);数据访问,负责数据仓库的对外服务输出,数据只有输出去给外部系统使用,才能产生其应有的价值,数仓本身又不“消费”数据,这里的输出,可能是excel/pdf等文档的输出,也可能是输出到其他数据库媒价中(如mysql/oracle等),也可能通过API 接口输出到外部的系统界面上,根据实际的需要来进行定制。

数据仓库是大数据的基础,数据仓库规划建设的好坏,会影响到后续的数据输出需要,要考虑到数据组合的统计汇总、上钻下钻、明细、对比等各方面的需要。如果按传统的报表来建设,直接在数仓中存储各报表的结果数据,这样会生成很多烟囱式的数据,变成互不关联,利用率低,也不利于上钻下钻,维度组合的需要。那么,这个过程要怎么来做呢?

其实这个数仓的规划建设过程没有标准的答案,虽然市面上有很多案例,但那都是针对特定公司的业务开展的,不能照搬到过来就使用,还是要结合公司的实际情况来进行规划与设计,不能只看到表面,还要看到公司内部的数据规律,来讨论决定。我觉数仓的建设,要达到以下几点要求:

1、 存储原始数据

在过往的一些数仓建设过程中,很多都会在完成对原始数据的清洗处理后,将原始数据清除,美名释放空间。但是如果后续的数据有问题/或者有新的数据需求,又要从各个业务系统去重新拉取数据,相当于又是重复工作。对于原始数据的采集,可以采用增量的方式进行存储。

2、 清晰的数据分层(数据结构)

由于数仓的数据来源是多方面的,在源始数据入库后,需要对源始数据进清洗,形成一致的,准确的,干净的数据。而对数据的这个处理过程,可能是需要多个分层来完成的,要明确每一个分层的作用域、定位,降低每一个分层之间的依赖关系。市面上较多的是四层分法:ODS(源数据层)、DWD(数据明细层)、DWS(数据轻汇总层)、ADS(数据应用层)。
image.png

3、数据可追溯性

数据的可追溯性,才能实现数据的上钻下钻的能力,如果数据没有关联性,那将无法保证数据的准确性。由于提供给下游系统的数据一般都是结果数据,当结果数据出现问题时,数据的血缘关系可以帮助快速定位问题所在。

4、数据关系条理化

一般用到数据仓库的,都是公司存在多套业务系统,业务系统间存在复杂的数据关系,由于数据的孤立性,导致每套业务系统都可能存在主数据,比如客户信息可能同时存在ERP、WMS、CRM等系统上。而数仓可以对相同主题的数据进行统一的建模,把复杂的数据关系梳理成条理清晰的数据模型,从而避免上述的问题。当然,这个建模的过程需要从整体上去把握数据的关系,结合各个系统的产品经理进行讨论,整理出结果。

5、降低开发复杂度

这个也是大数据火热的原因,大数据的表现形式之一就是提供统一的对外数据服务,让下游业务系统/业务员可以较简单地获取到想要的数据,而不是像传统一样,要去每个业务系统导出数据,然后自己在整理(处理),在导入系统(生成excel)。数仓利用数据的分层加工,逐步在每一层沉淀数据,数据开发人员只需要按需,从已有的数据分层上获取自己想要的数据。当然,前提是数据分层的规划及数据粒度要定义好,在每一层都可以沉淀前一层的汇总数据,又可以往上层回溯。

6、数据稳定性

数仓的数据逐层加工的原则,会使上层的数据都是由下层的数据加工而来,不允许直接跳级取数。每一层的数据都具有一定的独立性,只要ETL的作业没有运行,每一层的数据都是相对稳定,不会因为底层的源数据发生变化,而导致到上层的数据直接变化,只有达到ETL作业运作时,数据才会从最底,向上层一层层更新,保证对外的应用数据是稳定的。

基于上面的要求,结合公司的实际情况,就可以来制定数仓的分层及数据域等方面的建设,数仓的分层市面上有很多方案,各有各的说法与好处,至于要怎么做,在下一篇文章中进行介绍,欢迎关注。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
3月前
|
存储 机器学习/深度学习 数据管理
数据技术的进化史:从数据仓库到数据中台再到数据飞轮
数据技术的进化史:从数据仓库到数据中台再到数据飞轮
|
5月前
|
数据采集 存储 数据管理
OneData:阿里巴巴的数据仓库之旅与统一数据治理实践
OneData 为解决大数据时代的挑战提供了一条可行的道路,对于其他企业和组织来说具有重要的参考意义。随着技术的不断进步和应用场景的扩展,OneData 的未来发展值得期待。
|
7月前
|
存储 SQL 分布式计算
企业数仓架构设计实践
本文是一位数据架构师在设计企业级数据仓库架构时的思考与实践经验分享。从理论基础(数据仓库概念、Lambda架构、Kimball与Inmon方法)到工具选型(如Hadoop、Hive、Spark、Airflow、Tableau等),再到实践过程(需求调研、架构设计、技术选型落地、数据模型设计、测试迭代及用户培训),全面阐述了数仓建设的各个环节。强调了业务理解与技术结合的重要性,并指出数仓建设是一个持续优化、适应业务发展变化的过程。
341 2
|
7月前
|
存储 监控 大数据
数据仓库(11)什么是大数据治理,数据治理的范围是哪些
什么是数据治理,数据治理包含哪些方面?大数据时代的到来,给了我们很多的机遇,也有很多的挑战。最基础的调整也是大数据的计算和管理,数据治理是一个特别重要的大数据基础,他保证着数据能否被最好的应用,保证着数据的安全,治理等。那么数据治理到底能治什么,怎么治?
168 0
|
canal 缓存 otter
数据仓库 、数据中心相关技术知识和生态相关了解
数据仓库 、数据中心相关技术知识和生态相关了解
226 0
|
7月前
|
存储 机器学习/深度学习 运维
数据仓库与数据湖:解析企业数据管理的两大利器
在信息时代,企业数据的管理和分析变得至关重要。数据仓库和数据湖作为两种不同的数据管理模式,各自具有独特的特点和应用场景。本文将深入探讨数据仓库与数据湖的概念、优势和应用,帮助读者更好地理解和运用这两个工具。
184 0
|
存储 SQL 机器学习/深度学习
「数据战略」数据驱动企业和DataOps :数据仓库与数据湖:入门
「数据战略」数据驱动企业和DataOps :数据仓库与数据湖:入门
|
存储 SQL 数据采集
数据仓库建设规范
数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从 ODS 层中获 得的数据按照主题建立各种数据模型。DW 层又细分为 DWD (Data Warehouse Detail) 层、DWM (Data WareHouse Middle) 层和 DWS (Data WareHouse Servce) 层。
数据仓库建设规范
|
存储 数据采集 SQL
数据仓库心得(11)什么是大数据治理,数据治理的范围是哪些
什么是大数据治理,数据治理的范围是哪些
272 0
数据仓库心得(11)什么是大数据治理,数据治理的范围是哪些
|
消息中间件 SQL 人工智能
数据仓库建设……
数据仓库建设……
123 0