一、数仓是什么(和数据库的区别)
数仓(DataWareHouse)是面向主题的,集成的,相对稳定的,反映历史变化的数据集合,主要为企业决策作支撑。和数据库对比,数仓主要用于分析数据(olap),而数据分析对资源占用比较大,和数据库主要处理事务(oltp),因此我们需要二者分开;
数仓和数据库区别 => olap 和 oltp 区别:
主要四个方面:
1)实时性:oltp要求实时性高,olap实时性低;
2)数据量:oltp数据量大,olap数据量小;
3)查询的动静态:oltp一般是对确定的数据存取,是静态的,olap是通过数据提供决策支撑,查询是动态的;
4)olap要求满足acid,而数仓一般是反三范式的;
二、数仓用来做什么
管理数据,支持服务调用,为企业提供决策支持
三、数仓的特点
1)面向主题:按照需求划分主题
2)非易失:数据一旦进入数仓就不再发生改变,因为要根据历史看出变化,因此数据不能被修改
3)集成:统一不同表的数据,消除不一致;对原有数据进行综合和计算
4)反映历史变化:数仓的数据随时间不断变化
金融业最常用的经验法则
是7年和13个月规则” 基础数据区里面通过历史表(拉链表)来保存重要信息的历史数据,一般客户类、账户类等
信息要保留7年,交易类流水类信息要保留至少13个月以上。
四、数仓优化
1、合并不同的数据表。
2、通过增加汇总表避免数据的动态汇总。
3、通过冗余字段减少表连接的数量,不要超过3~5个。
4、用ID代码而不是描述信息作为键值。
5、对数据表做分区。