BI理论基础

数仓:数据仓库(放数据的)

数据库:也是放数据的

在放数据的这个方面来说,二者没有任何区别,都是放数据的,都是以表的的形式存放数据
他们对于用户的用处不同:
1、数据库:主要针对业务来用(联机事务处理)
  数据的展现需要 前端,后台,数据库管理员 来配合实现
  
2、数仓:主要针对分析(它里面的数据不是说给到用户来展现的),作为公司的决策的依据(联机事务分析)


在源系统(业务系统)也能做报表,为什么要建立数仓?
因为每个源系统都有自己的功能,可以在这里进行分析或抽其他源系统的数据,但会影响这个系统的功能;
其次,应用系统之间会重复抽取数据,为了避免源系统频繁交互,需要构建数仓。

---------------------------------------------------------------数仓:数据的集合,用于支持管理决策
面向主题
集成
相对稳定
反映历史变化


-----数仓在逻辑上分为三层:
ODS(贴源层)  ————————————> DW(数仓层) ——————————————————> DM(数据集市层)

---需要注意的是:
1、这三层只是逻辑的上分层
2、它们其实都还是表,只不过每个表的用处不同,所以在逻辑上把他们区分开
3、每一层都有自己的事情要做

-------数据流:
各个业务系统的数据(源系统) —> ODS层 —> DW层 —> DM层[ —> 报表展示]
                            ETL过程(工具、SP)              SP/工具             sp[+FUN]                 [报表工具]
                            ETL开发                       数仓开发                 报表开发        [有可能是让前端画页面] 


BI开发的工作职责就将 业务系统的数据通过一些列处理/操作 ,最后做成一张报表(管理驾驶舱的页面)来展示

--借鉴网址:
http://www.powerbi.com.cn/


---注意:不该你知道的事情,就说不知道
你的工作职责就是上面的这一句话,至于其他的,你可以稍微答一下
比如:你这个最后做出来用来给谁用,做啥决策
回答:不是很清楚,反正我知道是用来给公司领导看的,给他们作为决策的依据。至于说做啥决策,我就不清楚了


BI开发的岗位划分:ETL开发,数仓开发,报表开发 》》》》》》 全流程(资深) 》》》》》》》》》》》》》架构师
--至于进去项目组具体做哪一种:
1、看招人的是要哪种岗位
2、进去之后看哪种岗位有空缺,你更加适合哪种岗位


-------------------------------------------------------------------------事实表 和 维度表
ODS层的数据都是从业务系统抽取(同步)过来,不做任何更改:在跟业务系统的对接人员确定好数据后,再把数据抽取过来,抽取过来后不做更改


事实表 跟 维度表:在 DW层 去创建这些表
    
    事实表:就是你要关注的对象/内容。比如:销量,销售额,收入,利润率 等。。。。
  维度表:从某个维度/角度来观察你要关注的对象/内容。比如:时间,区域,组织,类型 等。。。
 
【例】某地区商品的销量,是从地区这个角度观察商品销量的。事实表就是销量表,维度表就是地区表。

“意义” --- 取决于人为,当然,也是一个很重要的东西。

1、一个版本周期,针对的业务数据,一般是一张事实表,多张维度表。这些维度表跟事实表进行关联(关联字段)
     事实表一张,维度表多张

--注意:
上线时,都是先跑维度表,再跑事实表

上线:就是把你们开发代码,部署到另外一个环境(生产环境)上

环境:用来进行开发 或者 测试 或者 用户使用 的一个主体:
       开发环境:开发来写代码
       测试环境:测试用来进行测试
       生产环境/正式环境:供用户来使用
       
代码流:      开发完成转测试                           测试完成准备上线
    开发环境 ——————————————————————> 测试环境(BI测试) ————————————————————————————> 生产环境


----------------------------------------------------------------模型的概念:星型模型 和 雪花模型
先把规划做好,然后按照这个规划去设计表和建表

星型模型:所有的维度表都是跟事实表直接相关(意思就是:所有的维度表跟事实表都有至少一个字段可以关联)
雪花模型:有存在至少任意一个维度表跟事实表不是直接相关,而是间接相关(意思就是:存在至少一个维度表中没有字段跟事实表进行关联,只能跟其他的维度表进行关联)

星型模型:会存在数据冗余,但是性能会好一些(用空间换效率)
雪花模型:不存在数据冗余,但是性能会差点(因为需要多张表进行关联)(用效率换空间)


----总结一下
                   关联方式                     性能                    空间
星型模型           直接关联                    好一些              存在数据冗余,更占空间
               
雪花模型           至少一个间接关联            差一些              不存在数据冗余,空间相对来说要少占用一些

---注意:
1、在工作中,星型模型用的多一些
2、模型是由大佬(资深的BI开发或者架构师)来弄的。他们都是比较熟悉业务或者相关行业的业务逻辑,有成(niu)熟(bi)的技术

------------------------------------三范式(3NF)
是一个建表的规范。在建表的时候需要遵循这个规范来创建我们的表

第一范式:表里面不能出先同名的列,也不能一个同行同列出现两个值(说白了,就是一个单元格里面只能有一个值)
第二范式:一定要有主键属性(主键约束)。这个表里的所有的列都是围绕这个主键来展开的
           主键可以由多个列组成(比如:身份证号码,可以拆分成三部分:出生地区 生日 性别)
第三范式:所有列里的值都是跟主键直接相关,而不是间接相关
           比如:emp表中的数据都是围绕empno来展开的

主要是围绕主键,以及表里的值来展开
---注意:
是不是一定必须要遵守范式建表:不一定。规则是死的,人是活的。还是得按照最方便有效的来


----建表:
每一层(ods dw dm)都要建表。分别建各自的表:
1、ODS:将业务系统中的表中的一些需要抽取的字段抽取到对应的表的中(类型,长度)
2、DW:将ODS层的数据,按照不同需求,创建 事实表和维度表,然后将ODS层的数据归类整合到不同的表中
3、DM:将DW的数据按照需求计算一些指标,同步到对应的表中(类型,长度)


-------------------------------------------------拉链表(缓慢变化维)
保存历史数据的表

保存历史数据的三种方法:
1、不保存历史数据,直接在原数据上update,或者将原数据删除,insert一条新的数据
2、只保留上一次的历史数据。每一条数据一共有两条(标识的字段:0 ---无效 ,1 --- 有效)
3、保留所有的历史数据。每一条数据的数量就不一定了,但是肯定只有一条的标识为 1 ,其他的都是 0 --- 缓慢变化维


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值