您当前的位置:首页 > 电脑百科 > 数据库 > 百科

数据仓库构建流程

时间:2021-01-27 15:05:50  来源:  作者:

数据仓库?真的有必要吗?

我曾经和一个业务系统负责人聊起数据仓库,他感到很疑惑,“我们数据库里不是有现成的数据吗?你们数据分析师直接用就好了,为什么还要花人力物力去建设什么数据仓库”,最后甚至直接说“我们的数据库就是你要的数据仓库”。

为什么公司要建立数据仓库,而不直接使用业务系统保存的数据?

回答这个问题之前,我们先来看看业务系统数据库和数据仓库的区别。

业务系统需要确保自身的正常运转,并能快速的处理事务,因此一般是一次处理一个事务。通过与用户的交互,将注册信息、订单信息、活动状态、用户投诉等信息记录下来。业务系统只要根据既定的业务过程完成相应的任务即可,因此,业务系统通常不用维护历史数据,只需修改数据以反映业务的最新状态。

如:我续费了一年的视频会员,在我付完款后,视频App里的会员状态就要及时更新

而数据仓库用于分析企业的运营状况,计算新成交的订单金额,对比过去一个月找到成交金额波动的原因,通过用户提交的投诉找到用户不满意的根源。数据仓库不会一次只处理一个事务,因为用户的一次查询通常需要搜索成千上万条事务,并将查询结果放入到一个查询集合中。而且,为了满足更广阔的分析需求,数据仓库通常需要保存历史数据,以便于能精确评估公司在某一段时间内的经营情况

如:用户每次续费视频会员时,数据仓库需要记录下每次状态的改变,以用于后续场景的复现和分析。

因此,业务系统和数据仓库面向的用户及其需求是完全不一样的。

  • 关联取数效率低

业务系统的数据库设计基本满足三范式,因此取数分析时需要关联很多的数据表才能得到想要的数据,比较麻烦,而且数据还无法复用,导致分析效率比较低。

数仓构建流程

 

  • 无法支持某些分析场景

基于业务系统数据的特性,往往不能支持某些场景的分析。业务系统不记录历史数据,只保留当前状态,比如我们想知道某个视频会员从试用、开通、使用、到期这段时间内的完整情况,但是业务系统里只有最新的会员等级和到期时间,是无法支持这种场景下的分析的。

你可能经常在企业经营管理者口中听到这些:

1)我们收集了海量的数据,但是一直无法充分利用起来

2)我们需要以各种方式方便的对数据进行处理

3)业务/运营/销售/分析/算法需要更加方便的获取数据

4)我需要随时随地了解企业的经营状况, 并将最值得关注的内容展示给我

5)会议自始至终争论的是谁的数据正确,而不是聚焦于分析和决策

6)希望管理者能够使用数据来制定基于事实的决策

而以上问题构成了数据仓库系统的基本需求。

 

数仓分层设计

数据总是用于两个目的,业务系统的应用和分析决策的制定。将数据纵向分层,将一个复杂的数据处理任务拆解成多个步骤来完成,每一层只处理一个步骤,简单且容易理解。

将数据仓库分为三层:

  • 数据引入层(ODS,Operational Data Store)
  • 数据公共层(CDM,Common Dimenions Model)
  • 数据应用层(ADS,Application Data Store)
数仓构建流程

 

数据引入层(ODS):与目前业务数据库中的数据保持一致,方便核对数据,追溯源头。

数据公共层(CDM):维度表(DIM)、公共汇总层(DWS)、明细事实表(DWD)

以维度模型方法作为理论基础,提高明细数据表的易用性,提升公共指标的复用性,减少重复加工。

数据应用层(ADS):数据产品和数据报表的数据来源

数据分析师一般使用的是公共层,里面有维度数据,明细数据和轻度汇总数据,基本能满足各类分析需求。

 

维度建模方法

ODS层中的数据与业务数据库中的数据基本保持一致。业务系统是按照流程组织数据的,为保证流程的完整和使用的方便,并没有按照业务的本质来组织数据,不适合做分析和挖掘。

对于数仓来说,最重要的就是CDM公共层,从业务完整性的角度出发,不考虑系统流程,重新组织数据。公共层的目标是建设一套覆盖全业务域、涵盖所有历史数据的企业数据体系,利用这套数据体系可以还原企业在任意时刻的业务运转状态。

建设CDM公共层最常用的技术就是维度建模,因为它更适合大数据时代数据量巨大的特点。简单来说,就是一张事实表+多张维度表。

数仓构建流程

 

当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故也将该模型称为星型模型。

与业务系统的数据结构对比,我们可以发现,维度建模有以下特点:

1)模型简单易理解

站在业务的角度上,用“一张事实表+多张维度表”的模式组织数据,仅有维度、事实两种类型数据。可以简单的理解星型模型,就是我们把where和group后面的字段放入维度表中,把sum和count中的字段放入事实表中,并在事实表中加入维度的键值用于关联。

2)可扩展性好

可以在不改变数据粒度的情况下,方便地增加新的分析维度和事实,不会影响正在使用的报表和数据应用。

4)数据冗余

构建维度表和事实表都需要大量的数据预处理,导致大量的ETL工作,并且可以看出,相比业务系统的精简,星型模型明显是“用空间换易用和效率”,存在大量的数据冗余。



Tags:数据仓库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
架构是数据仓库建设的总体规划,从整体视角描述了解决方案的高层模型,描述了各个子系统的功能以及关系,描述了数据从源系统到决策系统的数据流程。业务需求回答了要做什么,架构就...【详细内容】
2021-11-03  Tags: 数据仓库  点击:(35)  评论:(0)  加入收藏
01.什么是大数据?数据是对客观事实进行记录的一种符号,可以是数字、文字,也可以是图片、音频、视频。大数据是指无法在一定时间范围内用常规软件进行捕捉、管理和数据的数据集...【详细内容】
2021-06-25  Tags: 数据仓库  点击:(78)  评论:(0)  加入收藏
这几年的数据领域出现好多的概念,例如:人工智能、物联网、边缘计算、数据治理、数据湖、数据中台……可谓是“百花齐放”!一时间大家都在提新概念,但却不是所有人都...【详细内容】
2021-02-25  Tags: 数据仓库  点击:(152)  评论:(0)  加入收藏
UML对系统架构的定义是:系统的组织结构,包括系统分解的组成部分,它们的关联性,交互,机制和指导原则,例如对系统群就是定义各子系统的功能和职责,如贷款系统群可能分为进件申请、核...【详细内容】
2021-02-24  Tags: 数据仓库  点击:(163)  评论:(0)  加入收藏
数据仓库?真的有必要吗?我曾经和一个业务系统负责人聊起数据仓库,他感到很疑惑,“我们数据库里不是有现成的数据吗?你们数据分析师直接用就好了,为什么还要花人力物力去建设什么数...【详细内容】
2021-01-27  Tags: 数据仓库  点击:(190)  评论:(0)  加入收藏
一、Hive基础简介1、基础描述Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,是一个可以对Hadoop中的大规模存储的数据进行查询和分析存储的组件,Hive数据...【详细内容】
2021-01-05  Tags: 数据仓库  点击:(132)  评论:(0)  加入收藏
今天这篇文章,给大家讲述一下数据仓库的架构模式,作为我们一起探讨的内容。希望大家留言、评论,我们一起学习。一 说到数据仓库,那么我们先来了解一下数据仓库的基本概念。数据...【详细内容】
2020-11-13  Tags: 数据仓库  点击:(142)  评论:(0)  加入收藏
一、数据仓库体系架构公司借助的第三方数据平台,在此平台之上建设数据仓库。因为第三方平台集成了很多东西,所以省去了不少功夫。数据仓库的体系架构,无外乎就是数据源、数据采...【详细内容】
2020-10-04  Tags: 数据仓库  点击:(999)  评论:(0)  加入收藏
关于数据仓库的概念、原理、建设方法论,网上已经有很多内容了,也有很多的经典书籍,本文更想聊聊企业数据仓库项目上的架构和组件工具问题。先来谈谈架构。企业数据仓库架构关于...【详细内容】
2020-09-30  Tags: 数据仓库  点击:(133)  评论:(0)  加入收藏
自创立之日起,酷克数据一直致力于降低企业进行大数据分析的门槛,推动数据民主化。今天,我们朝这个目标迈出了第一步:酷克数据在青云QingCloud上推出基于PostgreSQL和Greenplum D...【详细内容】
2020-08-03  Tags: 数据仓库  点击:(269)  评论:(0)  加入收藏
▌简易百科推荐
1增1.1【插入单行】insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values (&#39;开心朋朋&#39;,&#39;男&#39;,&#39;1980/6/15&#3...【详细内容】
2021-12-27  快乐火车9d3    Tags:SQL   点击:(1)  评论:(0)  加入收藏
最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫, 不知道各种写法孰优孰劣,该选用哪种写法,以及各种写法的优缺点,本文以一个简单的查询...【详细内容】
2021-12-23  linux上的码农    Tags:sql   点击:(9)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的HasorDB 是一个全功能数据库访问工具,提供对象映射、丰...【详细内容】
2021-12-22  GitHub精选    Tags:HasorDB   点击:(5)  评论:(0)  加入收藏
作者丨Rafal Grzegorczyk译者丨陈骏策划丨孙淑娟【51CTO.com原创稿件】您是否还在手动对数据库执行各种脚本?您是否还在浪费时间去验证数据库脚本的正确性?您是否还需要将...【详细内容】
2021-12-22    51CTO  Tags:Liquibase   点击:(3)  评论:(0)  加入收藏
场景描述:由于生产环境的表比较复杂,字段很多。这里我们做下简化,只为说明今天要聊的问题。有两张表 tab1,tab2: tab1 数据如下: tab2 数据如下: 然后给你看下,我用来统计 name=&#3...【详细内容】
2021-12-20  Bald    Tags:SQL   点击:(5)  评论:(0)  加入收藏
前言知识无底,学海无涯,知识点虽然简单,但是比较多,所以将MySQL的基础写出来,方便自己以后查找,还有就是分享给大家。一、SQL简述1.SQL的概述Structure Query Language(结构化查...【详细内容】
2021-12-16  谣言止于独立思考    Tags:SQL基础   点击:(13)  评论:(0)  加入收藏
前言作为一名测试工程师,工作中在对测试结果进行数据比对的时候,或多或少要和数据库打交道的,要和数据库打交道,那么一些常用的 SQL 查询语法必须要掌握。最近有部分做测试小伙...【详细内容】
2021-12-14  柠檬班软件测试    Tags:SQL   点击:(15)  评论:(0)  加入收藏
话说C是面向内存的编程语言。数据要能存得进去,取得出来,且要考虑效率。不管是顺序存储还是链式存储,其寻址方式总是很重要。顺序存储是连续存储。同质结构的数组通过其索引表...【详细内容】
2021-12-08  小智雅汇    Tags:数据存储   点击:(17)  评论:(0)  加入收藏
概述DBConvert Studio 是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的 DBConvert 和 DBSync 核心与改进的现...【详细内容】
2021-11-17  雪竹聊运维    Tags:数据库   点击:(26)  评论:(0)  加入收藏
一、前言 大家好,我是小诚,《从0到1-全面深刻理解MySQL系列》已经来到第四章,这一章节的主要从一条SQL执行的开始,由浅入深的解析SQL语句由客户端到服务器的完整执行流程,最...【详细内容】
2021-11-09  woaker    Tags:SQL   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条