[关闭]
@songhanshi 2021-08-24T00:47:23.000000Z 字数 3958 阅读 473

项目

1234


0-项目

版本

占数师

0-项目概述
  1. 背景:
    针对app、微信等多种渠道的用户行为数据进行采集;将各类行为数据进行整合,与公司内线下数据、公司外数据结合;开展行为数据分析,提供相应数据分析功能和工具;提供相关业务功能和可视化展示页面。

  2. 工程中用到的技术

    • 总:
      ① 数据流
      简
      详细
      ② 项目名称
      data_generator: 生成测试数据(php)
      dc_openresty:lua脚本
      log_service:数据收集(重点)
      realtime-task:flink实时写入(重点)
      skynet-backend: web工程(重点)
      das-api: 数据服务平台(重点)
      zsh_docker:一键部署
      ③ 知识点:
      lua脚本、filebeat、kafka、flink、impala、kudu、springboot、docker
    • 分:
      ① 客户端app+openresty
      客户端app会将埋点数据加密后,请求dc-skynet.rong360.com下/prod/send_data接口上传数据。
      nginx运行lua脚本获取数据,进行封装,写入log。脚本参见zsh_docker工程
      ② 日志收集+log-service
      app端或者客户服务端打点数据过来后,会在日志收集系统中进行数据的简单校验和转换,同时添加用户标识id。定义转换为放入 kafka 的消息格式。
      1> 数据收集
      后台脚本不断扫描数据文件是否有新的写入 com\example\log_service\common\ThreadPoolExecutor.java
      a.生产者不断扫描文件判断是否有新数据写入,如果有新数据写入将数据读取,并推送至阻塞队列中
      b.消费者主线程不断监听阻塞队列,如果有数据将数据取出发送给消费线程池进行消费
      c.消费线程负责数据处理、保存等
      2> 日志数据的处理
      1)日志消费分为sdk日志和nginx的log日志
      2)Nginx日志消费com\example\log_service\common\NgConsumeService.java
      a.数据的decode,unzip等操作,解析出json格式数据
      b.Sdk日志消费 com\example\log_service\common\SdkConsumeService.java
      将数据直接解析成json格式数据
      c.Json格式处理 com\example\log_service\domain\impl\LogServiceImpl.java
      3)数据存储,通过log4j日志插件将日志保存至文件中代码:
      com\example\log_service\common\writelogs\LogFileOperator.java
      在这里插入图片描述
      ③ filebeat:
      数据推送到kafka。配置参考zsh_docker工程
      ④ realtime-task:
      利用flink程序消费kafka,将数据存入kudu实时表。
      ⑤ skynet:
      元数据、漏斗分析、用户分群、事件分析、后端推送消息(websocket)
      在这里插入图片描述
      ⑥ das
      1> 背景:
      数据应用层在整个系统架构中承担了业务系统对数据层的访问逻辑。为适应各种业务的变化带来的数据应用层频繁开发新接口上线问题,数据应用层需要对现有的异构数据源(包括但不限于MySQL, Redis, Impala等)进行抽象,提供出公共数据服务接口,以应对业务应用层多变的数据查询需求。
      在这里插入图片描述
      ⑦ 大数据端
      1> 数据层交互架构图
      在这里插入图片描述
      2> 数仓架构图
      在这里插入图片描述
      3> 查询方式
      kudu表当天分区增量和hive历史数据做union all 建成视图,供外提供查询:
      在这里插入图片描述
1-skynet结构
2-元数据设计
3-留存分析

留存分析需求
1)日留存中间表schema设计

a、log_dt,skynet_user_id 作为主键

b、表命名规则?krs.tmp_用户_时间戳?
在这里插入图片描述

外数

0-技术栈

前端:Vue + highChart
后端: Spring boot + MyBatis-Plus+ Quartz+ QLExpress + Shiro
数据库:Oracle
缓存+队列:Redis
监控+日志收集:Open-Falcon+Kibana

1-系统结构
功能

在这里插入图片描述

技术栈

在这里插入图片描述

数据流

在这里插入图片描述

调用

在这里插入图片描述

2-监控

时间戳

项目量级
Hbase

整体技术架构设计
在这里插入图片描述
大数据方向总体设计

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


外数:
在这里插入图片描述
查询方式
kudu表当天分区增量和hive历史数据做union all 建成视图,供外提供查询:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注