什么是大数据,千万级别的数据完全可以用传统关系型数据库集群解决为什么会用到大数据平台?
传统数据库很难数据治理,而且考虑到后期业务发展数据海量增长
在一定时间内很难对数据进行捕捉,治理
什么是数仓,建设数仓碰到过什么问题?
存储海量数据的仓库的集合,对多样的业务数据进行筛选和整合,给公司提供一定的BI能力
问题
前期数仓建设的时候需要了解业务,有些复杂的业务对我们的要求较高,需要和业务开发进行沟通,然后统一我们的计算口径,
以及数据类型,避免数据类型不匹配的问题,还有就是最开始开发的时候需要确保统一命名规范,表的规范,后期维表的建设
需要选用什么样的模型,还有用什么做用户唯一标识等等
数仓从0到1搭建
先确认需求,然后还有数据的采集,采集后对数据建模,然后处理数据,进行数据分析
数仓建模说一下?
范式建模
三范式,用于关系型数据库,以及ods层
维度建模
按照事实表和纬度表来构建数据仓库,我们离线用的是维度建模的星型模型,以空间来换时间,还有雪花模型和星系模型,
星型模型针对各个维做了大量的预处理,提升数据仓库的处理能力
实体建模
模型
星型模型
分析效率高,主要有事实表和纬度表
事实表就是存储事实记录的表如系统日志,事实表不断动态的增长,所以体积比较大
维度表就是与事实表相对应,相当于事实表上经常出现的属性抽取,如日期表
雪花模型
与星型模型的区别是维表可以再关联维表,相当于多重分叉
星系模型
星型模型的扩大,当于多个星型模型整合到一起
ETL建模
将数据采集到hive中,对数据进行一个清洗过滤集成
数仓模型建设可以使用范式模型吗
一般ods层是符合范式模型,但是在之后的建模中一般都是星型模型,以空间换时间
如果你们业务库表更新,你们怎么处理
增量抽取
如果数据库修改了数据,但是没有修改时间,数据能抽取过来吗,如何处理
抽取不过来,只能通过binlog实时采集
数仓中的表为什么要分层管理
方便管理,计算链条之间的解耦,可以提高计算复用度,降低复杂需求开发的难度
传统数据库三范式(解耦合)
第一范式: 有主键,原子性,列不可分
第二范式: 满足第一范式,有单向的传递依赖,主表的一列对应另外一张表的一列
第三范式: 满足第二范式,两张表之间有中间表,中间表的字段与两张表的某个字段可以连接
表的命名规范
ods/dwd层: 层次.业务_表的内容_周期处理方式
dws层: 层次.主题_表内容_周期处理方式
hive中的报表如何导入到hbase中的,为什么使用hbase?
hive中的报表通过Backload导入到hbase中,
hbase 是列式存储,可以通过rowkey快速的查询