IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 尚硅谷数据仓库实战之1项目需求及架构设计 -> 正文阅读

[大数据]尚硅谷数据仓库实战之1项目需求及架构设计

数仓笔记

数据仓库和数据集市详解:ODS、DW、DWD、DWM、DWS、ADS

尚硅谷数据仓库实战之1项目需求及架构设计

尚硅谷数据仓库实战之2数仓分层+维度建模

尚硅谷数据仓库实战之3数仓搭建

尚硅谷数据仓库4.0视频教程

B站直达:2021新版电商数仓V4.0丨大数据数据仓库项目实战
百度网盘:https://pan.baidu.com/s/1FGUb8X0Wx7IWAmKXBRwVFg ,提取码:yyds
阿里云盘:https://www.aliyundrive.com/s/F2FuMVePj92 ,提取码:335o

第2章 项目需求及架构设计

需求分析

  • 用户行为数据采集平台搭建
  • 业务数据采集平台搭建
  • 数据仓库维度建模
  • 业务埋点
  • 即席查询工具,随时进行指标分析
  • 集群监控,异常报警
  • 元数据管理
  • 质量监控
  • 权限管理

项目框架

技术选型

考虑因素:数据量大小、业务需求、行业内经验、技术成熟度、维护成本、总成本运算

相关技术列举:
在这里插入图片描述

数据流程设计

根据需求选择合适的技术,设计规划具体的数据仓库架构流程
在这里插入图片描述

框架版本选型

在这里插入图片描述

尚硅谷测试稳定适配的版本
在这里插入图片描述

服务器选型

在这里插入图片描述

集群规模

在这里插入图片描述

集群资源规划设计

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

1)生产集群

(1)消耗内存的分开

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

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

(4)有依赖关系的尽量放到同一台服务器(例如:Hive和Azkaban Executor)
12345678910
nnnndndndndndndndndn
rmrmnmnmnmnmnmnm
nmnm
zkzkzk
kafkakafkakafka
FlumeFlumeflume
HbaseHbaseHbase
hivehive
mysqlmysql
sparkspark
AzkabanAzkabanESES

2)测试集群服务器规划

服务名称子服务服务器hadoop102服务器hadoop103服务器hadoop104
HDFSNameNode
DataNode
SecondaryNameNode
YarnNodeManager
Resourcemanager
ZookeeperZookeeper Server
Flume(采集日志)Flume
KafkaKafka
Flume(消费Kafka)Flume
HiveHive
MySQLMySQL
SqoopSqoop
PrestoCoordinator
Worker
AzkabanAzkabanWebServer
AzkabanExecutorServer
Spark
Kylin
HBaseHMaster
HRegionServer
Superset
Atlas
SolrJar
服务数总计1988

第3章 数据生成模块

目标数据

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

页面

页面数据主要记录一个页面的用户访问情况,包括访问时间、停留时间、页面路径等信息。
在这里插入图片描述

字段名称字段描述
page_id页面idhome(“首页”),category(“分类页”),discovery(“发现页”),top_n(“热门排行”),favor(“收藏页”),search(“搜索页”),good_list(“商品列表页”),good_detail(“商品详情”),good_spec(“商品规格”),comment(“评价”),comment_done(“评价完成”),comment_list(“评价列表”),cart(“购物车”),trade(“下单结算”),payment(“支付页面”),payment_done(“支付完成”),orders_all(“全部订单”),orders_unpaid(“订单待支付”),orders_undelivered(“订单待发货”),orders_unreceipted(“订单待收货”),orders_wait_comment(“订单待评价”),mine(“我的”),activity(“活动”),login(“登录”),register(“注册”);
last_page_id上页id
page_item_type页面对象类型sku_id(“商品skuId”),keyword(“搜索关键词”),sku_ids(“多个商品skuId”),activity_id(“活动id”),coupon_id(“购物券id”);
page_item页面对象id
sourceType页面来源类型promotion(“商品推广”),recommend(“算法推荐商品”),query(“查询结果商品”),activity(“促销活动”);
during_time停留时间(毫秒)
ts跳入时间

事件

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

字段名称字段描述
action_id动作idfavor_add(“添加收藏”),favor_canel(“取消收藏”),cart_add(“添加购物车”),cart_remove(“删除购物车”),cart_add_num(“增加购物车商品数量”),cart_minus_num(“减少购物车商品数量”),trade_add_address(“增加收货地址”),get_coupon(“领取优惠券”);注:对于下单、支付等业务数据,可从业务数据库获取。
item_type动作目标类型sku_id(“商品”),coupon_id(“购物券”);
item动作目标id
ts动作时间

曝光

曝光数据主要记录页面所曝光的内容,包括曝光对象,曝光类型等信息。
在这里插入图片描述

字段名称字段描述
displayType曝光类型promotion(“商品推广”),recommend(“算法推荐商品”),query(“查询结果商品”),activity(“促销活动”);
item_type曝光对象类型sku_id(“商品skuId”),activity_id(“活动id”);
item曝光对象id
order曝光顺序

启动

启动数据记录应用的启动信息。
在这里插入图片描述

字段名称字段描述
entry启动入口icon(“图标”),notification(“通知”),install(“安装后启动”);
loading_time启动加载时间
open_ad_id开屏广告id
open_ad_ms广告播放时间
open_ad_skip_ms用户跳过广告时间
ts启动时间

错误

错误数据记录应用使用

过程中的错误信息,包括错误编号及错误信息。

字段名称字段描述
error_code错误码
msg错误信息

数据埋点

主流埋点方式(了解)

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

***代码埋点***是通过调用埋点SDK函数,在需要埋点的业务逻辑功能位置调用接口,上报埋点数据。例如,我们对页面中的某个按钮埋点后,当这个按钮被点击时,可以在这个按钮对应的 OnClick 函数里面调用SDK提供的数据发送接口,来发送数据。

可视化埋点只需要研发人员集成采集 SDK,不需要写埋点代码,业务人员就可以通过访问分析平台的“圈选”功能,来“圈”出需要对用户行为进行捕捉的控件,并对该事件进行命名。圈选完毕后,这些配置会同步到各个用户的终端上,由采集 SDK 按照圈选的配置自动进行用户行为数据的采集和发送。

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

埋点数据上报时机

埋点数据上报时机包括两种方式。

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

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

本次项目采用方式一埋点。

埋点数据日志结构

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

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

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

{

 "common": {          -- 公共信息

  "ar": "230000",        -- 地区编码

  "ba": "iPhone",        -- 手机品牌

  "ch": "Appstore",       -- 渠道

  "is_new": "1",--是否首日使用,首次使用的当日,该字段值为1,过了24:00,该字段置为0

  "md": "iPhone 8",       -- 手机型号

  "mid": "YXfhjAYH6As2z9Iq", -- 设备id

  "os": "iOS 13.2.9",      -- 操作系统

  "uid": "485",         -- 会员id

  "vc": "v2.1.134"       -- app版本号

 },

"actions": [           --动作(事件)  

  {

   "action_id": "favor_add",  --动作id

   "item": "3",          --目标id

   "item_type": "sku_id",    --目标类型

   "ts": 1585744376605      --动作时间戳

  }

 ],

 "displays": [

  {

   "displayType": "query",     -- 曝光类型

   "item": "3",           -- 曝光对象id

   "item_type": "sku_id",     -- 曝光对象类型

   "order": 1,           --出现顺序

   "pos_id": 2            --曝光位置

  },

  {

   "displayType": "promotion",

   "item": "6",

   "item_type": "sku_id",

   "order": 2, 

   "pos_id": 1

  }

 ],

 "page": {            --页面信息

  "during_time": 7648,     -- 持续时间毫秒

  "item": "3",          -- 目标id

  "item_type": "sku_id",    -- 目标类型

  "last_page_id": "login",   -- 上页类型

  "page_id": "good_detail",  -- 页面ID

  "sourceType": "promotion"  -- 来源类型

 },

"err":{           --错误

"error_code": "1234",    --错误码

  "msg": "***********"    --错误信息

},

 "ts": 1585744374423  --跳入时间戳,何时发送到服务器

}

(2)启动日志格式

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

{

 "common": {

  "ar": "370000",

  "ba": "Honor",

  "ch": "wandoujia",

  "is_new": "1",

  "md": "Honor 20s",

  "mid": "eQF5boERMJFOujcp",

  "os": "Android 11.0",

  "uid": "76",

  "vc": "v2.1.134"

 },

 "start": {  

  "entry": "icon",     --icon手机图标  notice 通知  install 安装后启动

  "loading_time": 18803,  --启动加载时间

  "open_ad_id": 7,     --广告页ID

  "open_ad_ms": 3449,   -- 广告总共播放时间

  "open_ad_skip_ms": 1989  -- 用户跳过广告时点

 },

"err":{           --错误

"error_code": "1234",    --错误码

  "msg": "***********"    --错误信息

},

 "ts": 1585744304000

}
?```xxxxxxxxxx { "common": {  "ar": "370000",  "ba": "Honor",  "ch": "wandoujia",  "is_new": "1",  "md": "Honor 20s",  "mid": "eQF5boERMJFOujcp",  "os": "Android 11.0",  "uid": "76",  "vc": "v2.1.134" }, "start": {    "entry": "icon",     --icon手机图标  notice 通知  install 安装后启动  "loading_time": 18803,  --启动加载时间  "open_ad_id": 7,     --广告页ID  "open_ad_ms": 3449,   -- 广告总共播放时间  "open_ad_skip_ms": 1989  -- 用户跳过广告时点 },"err":{           --错误"error_code": "1234",    --错误码  "msg": "***********"    --错误信息}, "ts": 1585744304000}

本文由博客一文多发平台 OpenWrite 发布!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:20:16  更:2021-12-06 15:20:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:21:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码