大数据数仓建模

        大数据数仓建模

数据仓库简介

      1.什么是数据库?

    数据库(database)是按照数据结构来组织,存储和管理数据的建立在计算机存储设备上的仓库。
    数据库是长期存储在计算机内,有组织的,可共享的数据集合。数据库中的数据指的是以一定的数据模型组织,描述和
存储在一起,具有尽可能小的冗余度,较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。
    常用的数据库有mysql,oracle,sqlserver等。作用不一样,数据库是用来支撑业务(1)的,需要响应速度特别快,没
有延时,查询起来都是一条条查询,把相关的数据全部得到,适合用这种关系型数据库。数据仓库主要用来支撑分析的。
问题:公司的多个部门,对相同的数据描述会不一样,在汇总的时候会出问题。

(1)什么是业务:
系统会和自己用户打交道的系统,为业务系统。滴滴打车,乘客(叫车,上车,确定上车,确认达到,好评),司机,
自己公司的员工,公司就会开发出配套的it系统,
公司的一个员工:
考勤系统,都需要有对应的数据库做支持
财务系统,都需要有对应的数据库做支持
oa系统(自动化办公),都需要有对应的数据库做支持
市场部it系统。。。。
2.什么是数据仓库
大数据数仓建模_第1张图片

数据仓库,英文名称Data Warehouse,简写为DW。数据仓库顾名思义,是一个很大的数据存储集合,出于企业的分析
性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。它为企业提供一定的BI(商业智能)能力,指导业务流程改进,监视时间,成本,质量以及控制。
数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析,数据挖掘,数据报表等方向
大数据数仓建模_第2张图片

    数据仓库是决策支持系统(dss)和联机分析应用数据源的结构话数据环境。数据仓库研究和解决从数据库中获取信息
的问题。
    数据仓库的特征在于面向主题,集成性,稳定性和时变性,用于支持管理决策。
    数据仓库存在的意义在于对企业的所有数据进行汇总,为企业各个部门提供统一的,规范的数据出口。

面向对象:数据仓库中的数据是按照一定的主题域进行组织的,每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图(2)。

集成的:企业内不同业务部门数据的完整集成。

对于企业内所有数据的集成要注意一致性(假设财务系统中对于性别使用F/M,而OA系统对性别使用A/B,这就是数据
不一致,如果想搭建企业级的数据仓库,需要数据具有一致性)。

稳定的:数仓里不存在数据的更新和删除操作。

变化的:数仓里会完整的记录某个对象在一段时间内的变化情况。

数据仓库的目的是实现集成,稳定,反映历史变化有组织有结构的存储数据的集合。

(2)面向主题(一种看待问题的角度):
用户分析,财务分析,销售分析,订单分析。。。
主题不一样,需要的分析指标不一样,不同的指标的数据(表和字段)和分析的指标就不一样。
数据的一致性怎么理解?
在数据仓库里面有各种数据的来源,最终我们创建数据仓库需要把这些不同的数据整合,而很有可能这些数据不一致,
例如:
业务系统数据库在建模的时候,会采用关系建模,遵循三范式,减少冗余,尽量保证数据的一致性。。。
性别:男/女nan/mv n/m f /m male/fmale…500张表 ,10张是有性别这个字段,开发java后台的时候,有可能是多个团队,多个阶段,多个项目组来实现…数据仓库需要把这些数据全部导入,需要做一致性的处理

oltp和olap的理解和区别?
OLAP(On-Line Analytical Processing)联机分析处理,也称为面向交易的处理过程,其基本特征是前台接收的用户数
据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。应用在数据仓库,使用对象是决策者。OLAP系统强调的是数据分析,响应速度要求没那么高。OLTP(On-Line Transaction Processing)联机事务处理,它使分析人员能够迅速、一致、交互地从各个方面观察信息,
以达到深入理解数据的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。主要应用是传统关系型数据库。OLTP系统强调的是内存效率,实时性比较高。
大数据数仓建模_第3张图片

                  第一章数据仓库的概念

大数据数仓建模_第4张图片

(3)

(3)
    大数据里面做的各种菜,当成我们大数据的各种产品,数仓的作用就是相当于这个牛逼的惨痛的后厨,采购各种原材料。
分类和加工,买回来的菜清洗一下,小虫,农药清理干净
很多的菜需要做初步的加工,回锅肉,初步的加工,半熟的样子
把某些原材料和初加工的菜归类放的比较方便的地方 ----> 分层

如果你开始炒菜了,放到一个小碗里面配置好–》 立刻炒菜—》 数据出的比较快

两个面试题:

1.数据来源?
    日志采集系统,写日志,写入到文件里面去,xxx.log,js前端埋点,前端工程师写一些js代码,js代码会捕捉各种事件(各种行为),把这些事件按照对应的数据个数以一条条日志的方式,发送给后台。
sdk,java代码,主要用在手机app上。。。
业务系统的数据:写入到mysql的数据
什么是业务:系统和用户打交道的场景,就是业务。。。

2.数据仓库为什么需要业务支撑?
几乎所有做大数据的公司都会做报表。。。
用户画像,精准化营销,推荐系统的基础,最重要的工作就是给用户打标签,京东刻画用户标签有5000多个。。。
标签分为人口属性标签,年龄,学历,家庭信息…统计类 , 某个人每天上网时长。时间分布。。。
挖掘类标签 —> 算法, 有没有钱(有钱人,普通人,屌丝,薅羊毛的)

风控:判断出你这个人有没有信用,会不会违约,会不会按时还钱…
你向别人借钱,依据是能不能还钱,银行常规业务就是需要你有抵押物,支付宝借钱,通过大数据分析–》画像和风控,判断出你的收入水平,你的信用记录,判断你的风险级别…
之前有很多P2P, 之前有很多人向P2P借钱,不还了,主要原因是:1,违法,2.很多是不上征信,这是不道德,你这种行为是违法的

数据仓库主要都是T+1 ,实时数仓,小时级别的,就是来一条数据很快出结果,头条,抖音这样公司…

    去企业,大部分情况都是做报表(分析各种指标),画像,推荐,机器学习都需要掌握算法,
    风控:风险控制,金融行业—》银行,最重要的就是看你有没有还款能力。

日志数据:通过sdk(soft development kit)做数据采集(js采集,java代码),所谓sdk就是我们开发一些工具,采集用户与前端交互的数据(点击,浏览,点赞,广告,错误日志),采集方式是通过监控事件的方式,采集之后对数据进行加密,压缩,转码,采用实时发送,定时发送,还可能根据网络情况发送,需要发送给后端日志服务器。
业务数据:记录在数据库中的数据,这些数据基于事务机制记录每个业务过程的数据。

未完待续。。。

你可能感兴趣的:(数据仓库)