数据仓库(1)---数据仓库概述

【声明】本文章来自穆晨 - 博客园,记录于此方便后期的学习和查阅

一、前言

阅读本文前,请先回答下面两个问题:

  • 数据库和数据仓库有什么区别?
  • 某公司Hadoop Hive里的关系表,不完全满足完整/参照性约束,也不完全满足范式要求,甚至第一范式都不满足。这种情况正常吗?

如果不能在五秒内给出答案,那么本文应该是对您有帮助的。

二、数据库"分家"

随着关系数据库理论的提出,诞生了一系列经典的RDBMS,如Oracle、MySQL、SQL Server等。这些RDBMS被成功推向市场,并为社会信息化的发展做出了重大贡献。

随着数据库使用范围的不断扩大,目前已逐步划分为两个基本类型:

1. 操作型数据库

主要用于业务支撑。一个公司往往会使用并维护若干个数据库,这些数据库保存着公司的日常操作数据,比如商品购买、酒店预订、学生成绩录入等。

2. 分析型数据库

主要用于离线(历史)数据分析。基于历史业务数据,进行单独的数据库存储,用于对公司各主题域,进行数据统计和分析;

数据库"分家"是必然趋势。随着数据库使用范围的不断扩大、数据量级的激增,如果基于同一套数据库系统,很容易造成操作型任务和分析型任务的资源冲突,另外在功能、技术、组成等层面也有很多不同。

三、操作型数据库 VS 分析型数据库

1. 数据组成差别
  • 数据时间范围差别
    通常,操作型数据库只会存放90天以内的数据,而分析型数据库存放的则是数年内的数据。这点也是将操作型数据和分析型数据进行物理分离的主要原因。

  • 数据细节层次差别
    1)操作型数据库存放的主要是细节数据,而分析型数据库中虽然既有细节数据,又有汇总数据,但对于用户来说,重点关注的是汇总数据部分。
    2)实际上,操作型数据库中也有汇总需求,但汇总数据本身不存储而只存储其生成公式。这是因为操作型数据是动态变化的,因此汇总数据会在每次查询时动态生成。
    3)对于分析型数据库来说,因为汇总数据比较稳定不会发生改变,而且其计算量也比较大(因为时间跨度大),因此它的汇总数据可考虑事先计算好,以避免重复计算。

  • 数据时间表示差别
    操作型数据通常反映的是现实世界的当前状态;而分析型数据库既有当前状态,还有过去各时间的快照。分析型数据库的使用者可以综合所有快照对各个历史阶段进行统计分析。

2. 技术差别
  • 查询数据总量和查询频度差别
    操作型查询的数据量少而频率多,分析型查询则反过来,数据量大而频率少。要想同时实现这两种情况的配置优化是不可能的,这也是将两类数据库物理分隔的原因之一。
  • 数据更新差别
    操作型数据库允许用户进行增、删、改、查;分析型数据库用户则只能进行查询。
  • 数据冗余差别
    1)分析型数据库中没有更新操作。因此,减少数据冗余也就没那么重要了。
    2)现在回答开篇提到的第二个问题:Hive里的关系表不完全满足完整/参照性约束,也不完全满足范式要求,甚至第一范式都不满足。这种情况正常吗?,答案是正常的。
    3)因为Hive是一种数据仓库,而数据仓库和分析型数据库的关系非常紧密(后文会讲到)。它只提供查询接口,不提供更新接口,这就使得消除冗余的诸多措施,不需要被特别严格地执行。
3. 功能差别
  • 数据用户差别
    操作型数据库的使用者是业务环境内的各个角色,如用户,商家,进货商等;分析型数据库则只被少量用户用来做综合性决策。
  • 数据定位差别
    操作型数据库是为了支撑具体业务的,因此也被称为"面向应用型数据库";分析型数据库则是针对各特定业务主题域的分析任务创建的,因此也被称为"面向主题型数据库"。

四、数据仓库(data warehouse)定义

分析型数据库中的操作都是查询,因此可以不需要严格满足完整性/参照性约束以及范式设计要求,而这些却正是关系数据库的精华所在。在这样的情况下,再将它称为数据库,很容易引起大家混淆,毕竟在绝大多数人心中,数据库是可以与关系型数据库画等号的。

数据仓库,最简洁的定义就是:面向分析的存储系统

数据仓库不依赖传统关系数据库来实现,因为关系数据库最少也要求满足第1范式,而数据仓库里的关系表,可以不满足第1范式,即同样的记录在一个关系表里可以出现N次。

由于大多数的数据仓库,其表的统计分析还是用SQL语言来实现,因此很容易让人把它和关系数据库搞混。

分析型数据库的特点:
  • 面向主题:数据仓库和操作型数据库的根本区别。操作型数据库是为了支撑各种业务而建立,而分析型数据库则是为了对从各种繁杂业务中抽象出来的分析主题(如用户、成本、商品等)进行分析而建立;

  • 集成性:数据仓库会将不同源数据库中的数据汇总到一起;

  • 企业范围:数据仓库内的数据是面向公司全局的。比如某个主题域为成本,则全公司和成本有关的信息都会被汇集进来;

  • 历史性:较之操作型数据库,数据仓库的时间跨度通常比较长。前者通常保存几个月,后者可能几年甚至几十年;

  • 时变性:数据仓库包含各历史时间段的数据快照。有了这些数据快照,用户便可将其汇总,生成各历史阶段的数据分析报告。

五、数据仓库组件

数据仓库的核心组件有四个:各源数据库,ETL,数据仓库,前端应用。如下图所示:
  • 业务系统:包含各种源数据库,这些源数据库既为业务系统提供数据支撑,同时也作为数据仓库的数据源(注:除了业务系统,数据仓库也可从其他外部数据源获取数据);
  • ETL:也叫目标系统,包括:提取extraction、转换transformation、加载load
    提取过程:操作型数据库搜集指定数据;
    转换过程:将数据转化为指定格式并进行数据清洗保证数据质量;
    加载过程:将转换过后满足指定格式的数据加载进数据仓库。
  • 前端应用:和操作型数据库一样,数据仓库通常也提供具有直接访问数据仓库功能的前端应用,这些应用也被称为BI(商务智能)应用。

六、数据集市(data mart)

数据集市可以理解为是一种"小型数据仓库",它只包含单个主题,且关注范围也非全局。

数据集市可以分为两种:

  • 独立数据集市(independent data mart),这类数据集市有自己的源数据库和ETL架构;
  • 非独立数据集市(dependent data mart),这种数据集市没有自己的源系统,它的数据来自数据仓库。

当用户或者应用程序不需要、不必要、不允许用到整个数据仓库的数据时,非独立数据集市就可以简单为用户提供一个数据仓库的"子集"。

七、数据仓库开发流程

较之数据库系统开发,数据仓库开发只多出ETL工程部分。通常,该部分可能是整个数据仓库开发流程中最为耗时、耗资源的一个环节。

因为该环节要整理各大业务系统中杂乱无章的数据,并协调元数据上的差别,所以工作量很大。在很多公司都专门设有ETL工程师这样的岗位,大的公司甚至专门聘请ETL专家。

在大数据时代,数据仓库的重要性更胜以往。Hadoop平台下的Hive,Spark平台下的Spark SQL都是各自生态圈内应用最热门的配套工具,而它们的本质就是开源分布式数据仓库。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • 第三章 数据库系统 3.1 数据库管理系统的类型 通常有多个分类标准。如按数据模型分类、按用户数分类、按数据库分布...
    步积阅读 2,671评论 0 7
  • 数据仓库简介 一:什么是数据仓库 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库...
    nightwish夜愿阅读 2,011评论 0 24
  • 引言 数据仓库作为单独的数据存储创建与组织中,其主要目的是数据分析,专为查询而设计。 将数据仓库的创建转换为单独的...
    DoggieX阅读 1,679评论 0 1
  • 但是我们不肯探索自己本身的价值,我们过分看重他人在自己生命里的参与。于是,孤独不再美好,失去了他人,我们惶惑不安。...
    我也想嚣张可我只是姓张阅读 241评论 0 0
  • couch potato. Time tries all. Practice makes perfect.
    MEAnnie阅读 150评论 0 0