玩转大数据大数据大数据,机器学习,人工智能

一文了解数据库和数据仓库

2019-08-25  本文已影响1人  愤怒的谜团

一:数据库的诞生背景

互联网已经高速发展了很多年,各大企业都根据自己的业务搭建了自己的门户网站,拥有自己的服务器,以及自己的用户。用户在对企业的服务进行交互访问时,用户给企业反馈的信息去哪里了?比如说我们最常见的注册信息,企业给到我们的资源从哪里来的?比如说最常见的商品列表。其实这些数据都存放在企业级的数据库当中,离开了数据库,在优秀的架构设计,在优秀的代码都是没有灵魂的。目前企业主流的数据一般分为关系型数据库非关系型数据库,常见的关系型数据库:mysql,oracle,sqlserver等,常见的非关系型数据库:redis,hbase,mongodb等。数据库的存在,其主要作用是满足在用户和企业服务交互时,满足低时延的增删改查操作。

二:数据仓库的诞生背景

大数据,数据赋能这些词近些年来在it圈子火起来了。其实大数据的概念很早就有人提出来了,很早就有人发现,数据会说话,但是由于当时的计算机的硬件条件限制,处理海量数据的框架也不成熟,数据的发展受到限制。近几年迎来了hadoop时代,以及伴随着整个hadoop生态圈其它框架的发展,包括离线的和实时的,让更多的企业可以用廉价的机器进行横向扩展来满足海量数据的计算要求,优秀的开源框架可以让企业以更少的人力成本高效管理和使用数据。海量数据想要真正使用起来,能让其给企业带来收益,我们就需要给数据制定规范,这时数据仓库就诞生了。

三:数据仓库的建设意义

企业要建立自己的数据仓库和数据集市,一般来讲最主要的目的是为了给上层数据应用产品提供强有力的数据支撑。当然对一个是否合理的数据仓库检验的标准不外乎以下这几点:

四:如何建设数据仓库

大概仓库模型见下图:


数据仓库.png

一套科学的数据仓库建模,需要强有力的理论支撑,本文主要以kimball的建模理论进行阐述。大概的建模步骤可以分为:
需求调研-》业务调研-》划分业务域-》构建指标体系-》加工dim层-》ods层-》dwd层-》dws层-》ads层(数据集市),以上非本文重点,简要描述下分层模型。

dim层

该层为纬度层,主要目的是加工成型一些纬度表,纬度表是整个数据仓库建设的核心。可以从各个业务线的数据库当中加工得到,一般构建步骤如下:

ods层

线上生产系统所使用的数据库:mysql,hbase,oracle,sqlserver等,我们需要将其数据单独抽取到我们数据仓库的ods层(操作数据层),ods层数据是整个数据建设的基石,要保证数据的可靠性,要尽可能避免出现以下情况:
1.数据缺失
2.数据不准确(与线上业务系统不匹配)
3.字段命名应该达到统一规范定义(多业务线为了满足自身的需求,往往很难做到命名统一)
4.字段类型的规范统一
5.度量单位的统一
6.应该将每个字段都写上注释,特别是带有枚举的字段
7.库表名的命名要规范,每个企业可能都不太一样,但是要做到见名知意

dwd层

dwd层的数据表往往是一些整合了多个业务过程的一些大宽表,根据一张表存放的业务过程来划分,又有单事务事实表和多事务事实表的区分,根据事实描述方式的不同,又可以分为事务型事实表和累积型快照事实表。dwd的数据往往从ods层加工得来,为的就是方便计算多个事务过程存在联系的指标。

dws层

该层的意义主要是为了计算一些带有汇总含义的指标,比如说最近一个月的销售额,所以主要是加工一些周期型快照事实表,关于这个周期可以是一个小时,一天,一个星期,一个月等等都可以,但是要根据实际的业务需求来。

ads层

应用数据层已经是对整个数据仓库的最高度抽象,一般来讲该层建设紧贴上层应用,也是直接服务于上层业务的,对于数据的使用人员,直接使用ads层的数据就可以了,完全不用理会底层的数据情况,不同的业务线可以建设自己的数据集市,但是这些数据的来源都离不开整个数据仓库的建设。

纯手打,喜欢给个赞,争取以后多多创作!

上一篇 下一篇

猜你喜欢

热点阅读