数仓4.0(一)

目录

一:数据仓库概念

二:项目需求及架构设计

2.1 项目需求分析

 2.2 项目框架

2.2.1 技术选型

2.2.2 系统数据流程设计 

2.2.3 框架版本选型 

2.2.4 服务器选型

2.2.5 集群规模 

2.2.6 集群资源规划设计 

三:数据生成模块 

3.1 目标数据

3.1.1 页面

3.1.2 事件 

3.1.3 曝光 

3.1.4 启动 

3.1.5 错误 

3.2 数据埋点

3.2.1 主流埋点方式(了解)

3.2.2 埋点数据上报时机 

3.2.3 埋点数据日志结构

3.3 模拟数据


一:数据仓库概念

数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。

数据仓库的输入数据通常包括:业务数据用户行为数据爬虫数据

  • 业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据业务数据通常存储在MySQL、Oracle等数据库中。
  • 用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
  • 爬虫数据:通常事通过技术手段获取其他公司网站的数据。(谨慎操作)

数仓4.0(一)_第1张图片

二:项目需求架构设计

2.1 项目需求分析

数仓4.0(一)_第2张图片

 2.2 项目框架

2.2.1 技术选型

数仓4.0(一)_第3张图片

2.2.2 系统数据流程设计 

数仓4.0(一)_第4张图片

2.2.3 框架版本选型 

我选择使用的是Apache版本的框架,虽然Apache运维麻烦,组件间兼容性需要自己调研。(但是是开源的)----一般适合大厂使用

以下是框架的具体版本型号

数仓4.0(一)_第5张图片

 注意:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。

2.2.4 服务器选型

数仓4.0(一)_第6张图片

2.2.5 集群规模 

数仓4.0(一)_第7张图片

2.2.6 集群资源规划设计 

在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。

一)生产集群

(1)消耗内存的分开

(2)数据传输数据比较紧密的放在一起(Kafka Zookeeper

(3)客户端尽量放在一到两台服务器上,方便外部访问

(4)有依赖关系的尽量放到同一台服务器(例如:Hive和Azkaban Executor)

2)测试集群服务器规划

数仓4.0(一)_第8张图片

三:数据生成模块 

3.1 目标数据

我们要收集和分析的数据主要包括页面数据事件数据、曝光数据、启动数据和错误数据。

3.1.1 页面

页面数据主要记录一个页面的用户访问情况,包括访问时间、停留时间、页面路径等信息。

数仓4.0(一)_第9张图片

3.1.2 事件 

事件数据主要记录应用内一个具体操作行为,包括操作类型、操作对象、操作对象描述等信息。

数仓4.0(一)_第10张图片

3.1.3 曝光 

曝光数据主要记录页面所曝光的内容,包括曝光对象,曝光类型等信息。

数仓4.0(一)_第11张图片

3.1.4 启动 

启动数据记录应用的启动信息。

数仓4.0(一)_第12张图片

3.1.5 错误 

错误数据记录应用使用

过程中的错误信息,包括错误编号(404)错误信息

3.2 数据埋点

3.2.1 主流埋点方式(了解)

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

3.2.2 埋点数据上报时机 

方式一,在离开该页面时,上传在这个页面产生的所有数据(页面、事件、曝光、错误等)。优点,批处理,减少了服务器接收数据压力。缺点,不是特别及时。

方式二,每个事件、动作、错误等,产生后,立即发送。优点,响应及时。缺点,对服务器接收数据压力比较大。

注意:本项目采用方式一。

3.2.3 埋点数据日志结构

我们的日志结构大致可分为两类,一是普通页面埋点日志,二是启动日志。

普通页面日志结构如下,每条日志包含了,当前页面的页面信息,所有事件(动作)、所有曝光信息以及错误信息。除此之外,还包含了一系列公共信息,包括设备信息,地理位置,应用信息等,即下边的common字段。

(1)普通页面埋点日志格式

 "common"字段+内容

"actions"字段+内容

"displays"字段+内容

"page"字段+内容

"err"字段+内容

"ts"字段+内容

(2)启动日志格式

启动日志结构相对简单,主要包含公共信息启动信息错误信息

"common"字段+内容

"start"字段+内容

"err"字段+内容

"ts"字段+内容

3.3 模拟数据

application.ymlgmall2020-mock-log-2021-01-22.jarpath.jsonlogback.xml上传到hadoop102的/opt/module/applog目录下

生成日志

(1)进入到/opt/module/applog路径,执行以下命令

[atguigu@hadoop102 applog]$ java -jar gmall2020-mock-log-2021-01-22.jar

(2)在/opt/module/applog/log目录下查看生成日志

[atguigu@hadoop102 log]$ ll

将生成日志写成脚本,然后放在bin目录下,然后分发给其他集群,这样就可以随时生成日志了。

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