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

  • 第2章 项目需求及架构设计
    • 需求分析
    • 项目框架
      • 技术选型
      • 数据流程设计
      • 框架版本选型
      • 服务器选型
      • 集群规模
      • 集群资源规划设计
  • 第3章 数据生成模块
    • 目标数据
      • 页面
      • 事件
      • 曝光
      • 启动
      • 错误
    • 数据埋点
      • 主流埋点方式(了解)
      • 埋点数据上报时机
      • 埋点数据日志结构

数仓笔记

数据仓库和数据集市详解:ODS、DW、DWD、DWM、DWS、ADS:https://blog.csdn.net/weixin_42526326/article/details/121633372

尚硅谷数仓实战之1项目需求及架构设计:https://blog.csdn.net/weixin_42526326/article/details/121658388

尚硅谷数仓实战之2数仓分层+维度建模:https://blog.csdn.net/weixin_42526326/article/details/121658605

尚硅谷数仓实战之3数仓搭建:https://blog.csdn.net/weixin_42526326/article/details/121658635

尚硅谷数据仓库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)
1 2 3 4 5 6 7 8 9 10
nn nn dn dn dn dn dn dn dn dn
rm rm nm nm nm nm nm nm
nm nm
zk zk zk
kafka kafka kafka
Flume Flume flume
Hbase Hbase Hbase
hive hive
mysql mysql
spark spark
Azkaban Azkaban ES ES

2)测试集群服务器规划

服务名称 子服务 服务器hadoop102 服务器hadoop103 服务器hadoop104
HDFS NameNode
DataNode
SecondaryNameNode
Yarn NodeManager
Resourcemanager
Zookeeper Zookeeper Server
Flume(采集日志) Flume
Kafka Kafka
Flume(消费Kafka) Flume
Hive Hive
MySQL MySQL
Sqoop Sqoop
Presto Coordinator
Worker
Azkaban AzkabanWebServer
AzkabanExecutorServer
Spark
Kylin
HBase HMaster
HRegionServer
Superset
Atlas
Solr Jar
服务数总计 19 8 8

第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 发布!

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

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

    尚硅谷数据仓库实战之3数仓搭建 第4章 数仓搭建-ODS层 4.2 ODS层(业务数据) 4.2.1 活动信息表 第5章 数仓搭建-DIM层 5.1 商品维度表(全量) 5.6 用户维度表(拉链表) ...

  2. 大数据项目之电商数仓、数据仓库概念、项目需求及架构设计

    文章目录 1.数据仓库概念 2. 项目需求及架构设计 2.1 项目需求分析 2.1.1 采集平台 2.1.2 离线需求 2.1.3 实时需求 2.1.4 思考题 2.2 项目框架 2.2.1 技术选型 ...

  3. 2 大数据电商数仓项目——项目需求及架构设计

    2 大数据电商数仓项目--项目需求及架构设计 2.1 项目需求分析 用户行为数据采集平台搭建. 业务数据采集平台搭建. 数据仓库维度建模(核心):主要设计ODS.DWD.DWS.AWT.ADS等各个层 ...

  4. 数据仓库 — 01_项目需求分析与技术选型(数仓概念、项目需求及架构设计、数据生成模块格式要求)

    文章目录 1 数据仓库的概念 2 项目需求分析 3 项目框架 3.1 技术选型 3.2 系统数据流程设计 3.3 框架版本选型 3.4 服务器选型 3.5 集群资源规划设计 3.5.1 集群规模计算 ...

  5. 尚硅谷 java基础第二个项目之客户关系管理系统

    尚硅谷 java基础第二个项目之客户关系管理系统. 做了一些完善,增加性别,电话,邮箱有效性验证.其中电话和邮箱验证直接"饮用"了网友的果汁. 在此感谢各位原著大佬们的分享. 具体 ...

  6. 尚硅谷Docker实战教程-笔记02【安装docker、镜像加速器配置】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表[课程资料下载] 视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01[理念简介 ...

  7. 微服务_SpringCloud微服务架构实战:高并发微服务架构设计

    高并发微服务架构设计 作为一个 IT 从业人员,我们经常会碰到类似于下面的一些问题: 单个项目巨大而沉重,难以维护. 系统稳定性得不到更有效的保证. 怎样才能持续地提升系统的性能. 怎样才能快速地响应 ...

  8. 前端架构师-week7-B端项目需求分析和架构设计

    标题 B端项目需求分析 和 架构设计 将收获什么 ·做怎样的项目完成瓶颈期的突破 ·怎样从需求中寻找关键难点 ·怎样写技术解决方案 ·怎样进行基础的技术选型 关键词 ·挖掘难点 - 找到项目中的痛点 ...

  9. 尚硅谷数据仓库 用户行为分析

    数据仓库的输入数据通常包括:业务数据.用户行为数据和爬虫数据等 业务数据:就是各行业在处理事务过程中产生的数据.比如用户在电商网站中登录.下单.支付等过程中,需要和网站后台数据库进行增删改查交互,产生 ...

最新文章

  1. java和python的web自动化有什么区别-python和java哪个更适合做自动化?
  2. 彻底弄懂响应式设计中的em和rem
  3. 【计算机系统设计】重点 · 学习笔记(1)(资源消耗)
  4. 一位合格的博士生需要有哪些条件和素质?
  5. 基础计算机b卷,计算机应用基础B卷.doc
  6. 如何使页面POSTBACK后,仍然显示原来的显示位置
  7. 计算机中用于描述音乐乐曲并,计算机中用于描述音乐乐曲并由声卡合成出音乐来的语言(规范)为。...
  8. 传奇架设教程GOM引擎微端设置方法
  9. js怎么获取ueditor值_js获取UEditor富文本编辑器中的图片地址
  10. IIS发布网站及网页显示设置
  11. UFS Write Booster Feature Overview
  12. 手机app服务器端开发初期---工具选择
  13. windows防火墙规则_如何在Windows防火墙中创建高级防火墙规则
  14. [转]全球付虚拟卡申请流程~
  15. 网络:简述对5G网络切片的认识
  16. opencv 编程总结与备忘
  17. android--手机震动--Vibrator
  18. win7和ubuntu18.04安装双系统详细教程
  19. 【中文技术文档的写作规范_P03】如何书写标点符号和控制文档体系
  20. 中鑫优配:黄金高位震荡等破位,原油顺势做空看跌!

热门文章

  1. nvidia设置wifi和接口
  2. 已解决Python.selenium爬虫必备设置永久禁止谷歌浏览器自动升级(亲测有效)
  3. php中用unset报错,慎用PHP的unset、array_unique方法
  4. 计算机开源期刊International Journal of Computer Science Issues
  5. MapMagic学习记录
  6. 顶尖项目管理高手,都在用“敏捷预算”模式!
  7. matlab生成jar eclipse正常调用jar
  8. Auto Completion in SE38 Editor
  9. 东南大学无锡分校有计算机专业吗,东南大学无锡分校和东南大学的区别
  10. 图像地点场景类型识别(PlaceCNN)实践