大数据BI框架知识点备注

将这段时间的一些基于大数据方案的BI知识点暂时做些规整,可能还存在较多问题,后续逐步完善修改。

数据模型:

1、星型模型和雪花模型,同样是将业务表拆分成事实表和纬度表;例如一个员工数据表,可以拆分为员工事实表和职位维度表、时间维度表等; 上面这个例子实时上不恰当,事实表更多的应该是记录一类事务,比如客户订单、操作记录等。

2、星型模型与雪花模型的区别在于,例如时间维度表,前者设计为年、月、日为一条记录,后者是年、月、日分别为三张表,再次用外键关联;

3、我们可以在维度表中添加额外信息诸如分类,比如产品维度表有产品A、A1、A2、B1,我们可以在这个表里增加一个产品种类的字段;

4、聚合表,为了防止拆分成数据、维度表后简单查询也存在过多JOIN,而创建的中间表,本质上就是利用空间换时间;下述中导入hbase 中支持查询的就是这种聚合表;

数据采集:

1、可采用爬虫的形式采集网络数据;

2、可采用flume工具采集远程服务端的日志数据;

3、可采用sqoop采集关系型数据库数据;

4、也可以自己写代理程序,利用消息中间件采集定制化数据;

5、数据采集后在当前方案中都保存在hdfs中;

6、传统的BI项目中通常采用ESB,比如国产的东方通或者开源的mule等;

数据仓库建模:

1、此处通常采用hive进行数据仓库的建模,即用hive的hsql语句创建事实表、维度表等;

2、一个比较重要的工作是利用hive进行ETL,例如缺字段、归一化(比如8000和8K、杭州和杭州市、惠普和HP等)、异常值(如金额为负数)等;在数据仓库的构建过程中,ETL的工作很可能过半;

3、hive的底层基础还是mapreduce,我们可以认为基于这个分布式的计算框架来进行并行化的ETL任务;这里和kettle中创建ETL的job应该是类似的;

4、hive的任务可以由crontab定时调度;

查询的优化

1、由于hive的实时性比较差,因此我们可以将数据从hive中同步到hbase,在hbase中提供对外查询的接口;

数据分析

1、BI的核心部分,即相关业务的分析SQL还是在hive下进行的;

2、此处我们可以采用spark对数据分析进行优化,可以理解为用升级版(主要是更多利用内存)的mapreduce完成数据分析任务;

3、hive可以采用R语言、JAVA语言等编程扩展;

原文地址:https://www.cnblogs.com/Fredric-2013/p/6751812.html