0


剑指大数据-企业级数据仓库项目实战

第1章

大数据与数据仓库概论

大数据生态圈分为7层,这7层可以概括为数据采集层、数据计算层、数据应用层3层结构。

第4章

用户行为数据采集模块

4.1日志生成

4.1.1数据埋点

用户行为日志的内容,主要包括用户的各项行为信息,以及行为所处的环境信息。收集这些信息的主要目的是优化产品和各项分析统计指标提供数据支撑。收集这些信息的手段通常为埋点。

目前主流的埋点方式有代码埋点(前端或后端)、可视化埋点、全埋点3种。

代码埋点是通过调用埋点SDK函数,在需要埋点的业务逻辑功能位置调用接口,上报埋点数据。

可视化埋点只需要研发人员集成采集SDK,不需要写埋点代码,业务人员就可以通过访问分析平台的圈选功能,来圈出需要对用户行为进行捕捉的控件,并对该事件进行命名。

全埋点是通过在产品中嵌入SDK,前端自动采集页面上的全部用户行为事件,上报埋点数据,相当于做了一个统一的埋点,然后再通过界面配置哪些数据需要在系统里进行分析。

4.1.2用户行为日志格式

我们的日志结构大致可分为3类:页面埋点日志、启动日志和播放日志。

4.3采集日志的Flume

日志采集层Flume需要完成的任务是将日志从落盘文件中采集出来,传输给消息中间件Kafka集群,这期间要保证数据不丢失,程序出现故障死机后可以快速重启,并对日志进行初步分类,分别发往不同的Kafka topic,方便后续对日志数据分别进行处理。

Flume组件

Flume整体上是Source-Channel-Sink的三层架构,其中,Source层完成对日志的收集,将日志封装成event传入Channel层中;Channel层主要提供队列的功能,对Source层中传入的数据提供简单的缓存功能;Sink层取出Channel层中的数据,将数据送入存储文件系统中,或者对接其他的Source层。

Flume以Agent为最小独立运行单位,一个Agent就是一个JVM,一个Agent由Source-Channel-Sink三大件构成。

Flume将数据表示为event(事件),event由一字节数组的主体body和一个key-value结构的报头header构成。其中,主体body中封装了Flume传送的数据,报头header中容纳的key-value信息则是为了给数据增加标识,用于跟踪发送事件的优先级和重要性,用户可以通过拦截器进行修改。

Flume的数据流由event贯穿始终,这些event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入Channel中,Channel中event会由Sink来拉取,Sink拉取event后可以将event持久化或者推向另一个Source。

此外,Flume还有一些使其应用更加灵活的组件:拦截器、Channel选择器、Sink组和Sink处理器。其功能如下。

拦截器可以部署在Source和Channel之间,用于对事件进行预处理或者过滤,Flume内置了很多类型的拦截器,用户也可以自定义拦截器。

Channel选择器可以决定Source接收的一个特定事件写入哪些Channel组件中。

Sink组和Sink处理器可以帮助用户实现负载均衡和故障转移。

第6章

数据仓库搭建模块

主流的数据仓库设计模型有两种:关系模型和维度模型

关系模型

用表的集合来表示数据和数据间的关系。

维度模型

数据处理大致可以分为两大类:联机事务处理OLTP、联机分析处理OLAP。OLTP是传统的关系型数据库的主要应用,而OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且可以提供直观、易懂的查询结果。

                                         OLAP与OLTP的主要区别

对比属性OLTPOLAP读特性每次查询只返回少量数据对大量记录进行汇总写特性随机、低延时写入用户的输入批量导入使用场景用户,Java EE项目内部分析师,为决策提供支持数据特征最新数据状态随时间变化的历史状态数据规模GBTP到PB
6.2.2为什么要分层

数据仓库中的数据要想发挥最大的作用,必须进行分层,优点如下:

1.复杂问题简单化

2.减少重复开发

3.隔离原始数据

4.清晰数据结构

5.数据血缘追踪

数据仓库具体如何分层取决于设计者对数据仓库的整体规划,不过大部分的思路是相似的。本书将数据仓库分为五层

ODS原始数据层

DWD明细数据层

DIM维度数据层

DWS汇总数据层

ADS数据应用层

Hive是基于Hadoop的一个数据仓库工具。因为Hive是基于Hadoop的,所以Hive的默认计算引擎也就是Hadoop的计算框架MapReduce。MapReduce是Hadoop提供的,可用于大规模数据集的计算编程模型,在推出之初解决了大数据计算领域的很多问题,但是其始终无法满足开发人员对于大数据计算在速度上的要求。随着Hive的升级更新,目前Hive还支持另外两个计算引擎,分别是Tez和Spark。

Hive是一款用类SQL语句来协助读/写、管理那些存储在分布式存储系统上的大数据集的数据仓库软件。Hive可以将类SQL语句解析成MapReduce程序,从而避免编写复繁杂的MapReduce程序,使用户分析数据变得容易。Hive要分析的数据存储在HDFS上,所以它本身不提供数据存储功能。Hive将数据映射成一张张的表,而将表的结构信息存储在关系型数据库(如Mysql)中,所以在安装Hive之前,我们需要先安装MySQL。

第8章

数据可视化模块

Apache Superset是一个开源的、现代的、轻量级的BI分析工具,能够对接多种数据源,拥有丰富的图标展示形式,支持自定义仪表盘,且拥有友好的用户界面,十分易用。

由于Superset能够对接常用的大数据分析工具,如Hive、Kylin、Druid等,且支持自定义仪表盘,所以可作为数据仓库的可视化工具。

标签: 大数据

本文转载自: https://blog.csdn.net/lpx1249115962/article/details/136112496
版权归原作者 港南四大炮亡 所有, 如有侵权,请联系我们删除。

“剑指大数据-企业级数据仓库项目实战”的评论:

还没有评论