数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策。
——数据库与数据仓库的区别
数据库和数据仓库其实很相似,都是通过数据库管理系统,来组织、存储和管理数据。 它们的不同之处在于:
数据库是存放原始数据的集合,主要存储业务流程中的事务性数据,如银行交易、订单记录等。 数据仓库是数据库概念的升级,是存放加工处理后的数据集合,主要存储从数据库中整合、汇总后的数据,用于针对某些主题的历史数据进行分析,侧重决策支持。
单从概念上讲有些晦涩,任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例,数据库是银行事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来。数据仓库是分析系统的数据平台,它从事务数据库获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要加设ATM了。 显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是要求时效性的,客户存取一笔钱等待几十秒是无法忍受的,这就要求数据库实时响应。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析结果就达到目的了。
数据库与数据仓库的区别,实际上就是OLTP与OLAP的区别。
基本每个企业都会经历从数据库到数据仓库的阶段,以电商行业为例:
——ETL
数据仓库中的数据通常从多个数据源中提取,整合、汇总后成为数据仓库中的历史记录。多个数据源(内部业务数据库、外部文件、爬虫、第三方API等等)的数据存储方式不同,所以需要经过抽取、清洗、转换。 数据从数据库到数据仓库的处理过程就是ETL(Extract-Transform-Load):
常用的ETL工具:Datastage、Informatica、Kettle
——数据仓库的分层存储
一般来说数据仓库会至少分为ODS、DSA、EDW三个层级,当然层级的名称每个公司可能不同,这里主要是在作用上进行区分解释。
数据仓库的输入就是各种各样的数据源,最终的输出是用来为企业做数据分析、数据挖掘和数据报表。
——常用的数据仓库
Hive是基于Hadoop的数据仓库工具,可以对存储在HDFS上的文件数据集进行查询和分析处理。Hive对外提供了类似于SQL语言的查询语言 HiveSQL,在做查询时将HiveSQL语句转换成MapReduce任务,在Hadoop层进行执行。
HDFS是Hadoop的分布式文件系统,在这里作为数据仓库的存储层。图中的Data Node就是HDFS的众多工作节点。
MapReduce是一种针对海量数据的并行计算模型,可以简单理解为对多个数据分片的数据转换和合并。
Teradata数据仓库配备性能最高、最可靠的大规模并行处理 (MPP) 平台,能够高速处理海量数据,其性能远远高于Hive。
——热门课程推荐:
想学习PYTHON数据分析与金融数字化转型精英训练营,您可以点击>>>“人才转型”了解课程详情;
想从事业务型数据分析师,您可以点击>>>“数据分析师”了解课程详情;
想从事大数据分析师,您可以点击>>>“大数据就业”了解课程详情;
想成为人工智能工程师,您可以点击>>>“人工智能就业”了解课程详情;
想了解Python数据分析,您可以点击>>>“Python数据分析师”了解课程详情;
想咨询互联网运营,你可以点击>>>“互联网运营就业班”了解课程详情;
数据分析咨询请扫描二维码