数据仓库
数据仓库定义:数据仓库是面向主题的、集成的、稳定的、反应历史变化的、随着时间的历史吧反应变化的数据集合。
数据仓库的特点:
(1)面向主题:常规数据库主要是面向事务性处理,比如增删改查。数仓则是将所有数据按照一定的主题划分。(主题是指对业务数据的一种抽象,从更高的层面上对系统中的数据进行的排版)。面向主题的数据组织分两种:面向原系统业务数据的特点进行主题抽取和确定每个系统主题的具体内容进行抽取,例如客户关系主题、总账主题、财务主题等。
(2)集成性:常规操作数据库是相对独立,无法通过里面的数据反馈出信息。数仓中的数据通过抽取、清洗、转换等步骤得到的,需对其中数据编码进行统一,保持数据的一致。因此数仓要统一编码,消除垃圾数据。
集成分两种:
数据集成:
编码集成:
(3)稳定性:数仓作为存储数据的工具,保留了一定时间的历史数据,主要用于查询,分析,不进行定时更新,数据入库后将会保存,超出时间后进行删除,不更新。
(4)反映数据历史变化:数仓反应一定时间的历史数据,积累了很多数据与普通操作数据库不同。
数据仓库与数据库的区别:
数据库: 数据仓库:
面向应用 面向主题
事务性数据处理 分析、处理数据
实时性高 实时性不高
检索量小 检索量大
面向普通用户 面向高层领导
数仓的分层:
数仓保存了大量的历史数据,数据量及大,如果直接查询源数据,任务数巨大,响应时间较长,甚至出现服务器崩溃等情况。因此需要分层,看似数据出现了冗余,实际上每层数据的划分依据不同,颗粒度也并不相同。也不免了ETL过程中出现危险操作。例如在进行数据抽取时,直接对源数据进行操作非常危险,比如抽取时数据丢失,或出现操作员误操作等情况,因此单独分一个ODS贴源层,避免直接对源数据进行操作。分层同时也可以减少重复开发,大多数业务场景使用的数据可以使下游拿来就用,省去从头开发,节省时间。
下图为数仓简单分层样例:
上述为数仓基本知识分享,后继更新ETL。