• 数仓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等数据库中。
    • 用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
    • 爬虫数据:通常事通过技术手段获取其他公司网站的数据。(谨慎操作)

    二:项目需求架构设计

    2.1 项目需求分析

     2.2 项目框架

    2.2.1 技术选型

    2.2.2 系统数据流程设计 

    2.2.3 框架版本选型 

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

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

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

    2.2.4 服务器选型

    2.2.5 集群规模 

    2.2.6 集群资源规划设计 

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

    一)生产集群

    (1)消耗内存的分开

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

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

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

    2)测试集群服务器规划

    三:数据生成模块 

    3.1 目标数据

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

    3.1.1 页面

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

    3.1.2 事件 

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

    3.1.3 曝光 

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

    3.1.4 启动 

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

    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目录下,然后分发给其他集群,这样就可以随时生成日志了。

  • 相关阅读:
    字符串笔记-字符串哈希
    【漏洞复现】酒店宽带运营系统RCE
    c++计时器
    Spring Bean的生命周期理解
    Spring之@Qualifier注解简介及示例
    SpringCloud-05 Hystrix学习笔记
    IK分词器如何修改支持跨版本ES
    RabbitMQ坑大全
    通信系统架构
    Java各中依赖包介绍
  • 原文地址:https://blog.csdn.net/JiaXingNashishua/article/details/126067169