数据仓库和数据库的区别
数据库与数据仓库的区别:实际讲的是OLTP与OLAP的区别
OLTP(On-Line Transaction Processin):叫联机事务处理,也可以称面向用户交易的处理系统, 主要面向用户进行增删改查
OLAP(On-Line Analytical Processing):叫联机分析处理,一般针对某些主题的历史数据进行分析 主要面向分析,支持管理决策。
数据仓库主要特征:面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)
和时变的(Time-Variant)
数据仓库的出现,并不是要取代数据库,主要区别如下:
数据库是面向事务的设计,数据仓库是面向主题设计的。
数据库是为捕获数据而设计,数据仓库是为分析数据而设计
数据库一般存储业务数据,数据仓库存储的一般是历史数据。
数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,
符合业务应用,但是不符合分析。
数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
数据仓库基础三层架构

源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;
为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干净的数据,
即对源系统数据进行了清洗(去除了杂质)后的数据。
数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。
ETL和ELT
广义上ETL:数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以
认为是ETL(抽取Extract, 转化Transform , 装载Load)的过程。
但是在实际操作中将数据加载到仓库却产生了两种不同做法:ETL和ELT。
狭义上ETL: 先从数据源池中抽取数据,数据保存在临时暂存数据库中(ODS)。
然后执行转换操作,将数据结构化并转换为适合目标数据仓库系统的形式,
然后将结构化数据加载到数据仓库中进行分析。
ELT: 从数据源中抽取后立即加载。没有专门的临时数据库(ODS),
这意味着数据会立即加载到单一的集中存储库中,
数据在数据仓库系统中直接进行转换,然后进行分析