vlambda博客
学习文章列表

数仓01 | 数据仓库简述

跳动数字的背后,牵动众多家庭心弦
一切困难终会跨过,重新微笑

我们这代人,被千奇百怪的成功包围
有时感觉离它很近
但,摸一摸口袋却是空虚的
寻常路已经懒得走
不寻常的路又走不动
成为你想成为的人,永远都不会晚
——庚子年立春

老师常教导“ 好记性不如烂笔头 ”,虽往往不是应用于听课做笔记,而是在于考试作弊,但丝毫不影响领悟其中教诲:记录太XX有用了。
小康社会的今天,人在江湖遇事繁杂,好笔头写烂也记不完。稍微不脱离社会发展的人类都懂该借助数字化技术来记录了,如数据库、数据仓库。貌似,除武汉红会不知道以外……

数据库跟数据仓库有什么不同?
差个‘仓’字


数据库与数据仓库


先分别看看文绉绉的定义概念:
数据库(Data Base):有别于文件的管理方式,使用一定的数据结构进行组织、长期存储于计算机存储设备,用于管理(增删改查)以及共享数据的应用程序,尽可能小的冗余度、较高的数据独立性和易扩展性
数据仓库(Data Warehouse):面向主题的、集成的、相对稳定的,反应历史变化的数据集合,用于支持管理决策



OLTP与OLAP

概括来说数据库是面向业务OLTP,而数仓是面向分析OLAP

那OLTP以及OLAP又分别是什么呢?

联机事务处理OLTP(On-Line Transaction Processing),面向交易过程,支持数据增删改查,保存当前最新状态的数据,遵循ACID原则;

联机分析处理OLAP(On-Line Analytical Processing),面向分析,能反应数据的历史变化情况,一般不对数据进行更新操作。

数仓01 | 数据仓库简述




数据库与数仓的关系

数仓从各个不同种类的业务系统中集成数据,而这些业务系统包含OLTP的数据库系统,数仓与数据库两者在架构中的示意如图所示:

数仓01 | 数据仓库简述




数据库与数仓的区别



数仓的特点


通过数仓可以统一集成公司的数据,打破数据孤岛,集中管理数据,提供高效响应的数据决策。

  • 面向主题:每个企业都有众多业务,每个主题对应一个业务流程分析领域,比如客户流失预警、货物管理等,不同于数据库对事务的处理

  • 集成:数据从各个业务系统中采集数据,打破孤立的数据,纵观数据全貌,保持数据一致性、完整性、有效性、精准性

  • 稳定:数据某一时刻的快照,不存在数据更新、删除操作,以查询分析为主

  • 变化:数据库只保存当前最新状态,而数仓可以完整地展现数据的历史变化过程


大数据仓库


数仓理论从1991年由Bill Inmon提出,经历近30年发展,对企业数据管理起到非常好的积极作用。在大数据的环境下,特别在互联网企业中基于开源的Hadoop生态得到了很好的实践应用。

由于互联网业务的特性,决定新时代大数据仓库更关注灵活、快速响应和应对多变的市场环境,更加以快速解决业务、运营问题为导向,快速数据导入、快速业务接入,更不存在一劳永逸。




技术栈

相对于传统数仓的Oracle等关系型数据库技术栈,大数据仓库主要围绕Hadoop丰富的开源生态,包括数据同步、ETL、数据存储、计算引擎等功能组件。




常见组件

计算框架:Hadoop MR、Spark、Flink
数据存储:Hadoop HDFS、MySQL、HBase、Redis
数据同步:DataX、Sqoop、Flume、Kafka
资源协调:Yarn、Mesos、Zookeeper
任务调度:Oozie、AirFlow、Azkaban
查询引擎:Hive、Spark SQL、Flink SQL、Presto、Impala
日志监控:ElasticSearch、Logstash、Kibana