系统数据流程

2020-09-20 19:43:47 浏览数 (1)

系统数据流程设计.jpg

数据仓库概念

数据的传入

一、日志采集系统 记录用户行为(搜索、悬停、点击事件、按钮、输入,请求异常采集等) PC端、App端(Ios,安卓),前端收集埋点数据

二、业务系统数据库 JavaEE后台把数据存储到mysql中,用来完成交易的业务数据

三、爬虫


数据的处理

将数据收集到Data warehouse中,进行ETL清洗。做分层处理,便于分析和扩展指标。 作用:为企业提供战略决策支持,改进业务流程、控制成本、提高产品质量等。 准备工作:清洗、转义、分类、重组、合并、拆分、统计等。


数据结果呈现

1.报表系统 -- 各类图表 2.用户画像 -- 各类标签 3.推荐系统 -- 根据标签,进行推荐 4.机器学习 -- 科学分析,强化推荐 5.风控系统 -- 响应各类异常


项目需求分析

1.用户行为数据采集平台搭建 2.业务数据采集平台搭建 3.数据仓库维度建模 * 4.分析指标:用户、流量、会员、商品、销售、地区、活动等电商核心主题,统计报表指标个数。 5.采用即席查询工具,随时进行指标分析 6.对集群性能进行监控,发生异常需要报警 * 7.元数据管理 * 8.质量监控 *


思考

1.项目技术如何选型? 2.框架版本如何选型(Apache、CDH、HDP等) 3.服务器使用物理机还是云主机? 4.如何确认集群规模?(假设每台服务器8T硬盘)

技术选型主要考虑因素:数据量大小、业务需求、行业内经验(框架的使用)、技术成熟度、开发维护成本、总成本预算等。


具体使用的框架和技术

数据采集传输:

Flume(进) Kafka(缓冲池) Sqoop(出) Logstash -- ELK Data X -- 阿里

数据存储:

MySQL -- 模拟java后台的数据 HDFS -- Hive HBase -- kylin,实时的kv格式数据 Redis -- 缓存 MongoDB -- 前端

数据计算:

Hive -- 底层是mr Tez -- 基于内存 Spark -- 计算引擎(多表) Flink -- 支持实时的单条数据处理与批处理(多表,被阿里收购,取名Blink,添加了很多新特性) Strom -- 实时处理(old)

数据查询:

Presto -- 基于内存(快速查询,Apache) Druid -- 德鲁伊(只支持单表、宽表查询) Impala -- 基于内存(快速查询,CDH) Kylin -- 预计算,预聚合,多维度(国人开发的Apache顶级项目)

数据可视化:

Echarts -- 百度开源,需要绘图,使用难度高 Superset -- 免费开源,适合中小型企业使用,简单轻量 QuickBI -- 收费 Data D -- 收费、酷炫

任务调度:

Azkaban Oozie -- CDH内部集成,web页面安装即可

集群监控:

Zabbix -- 报警(通过邮件、钉钉、甚至电话通知,属于专业运维使用)

元数据管理

Atlas -- 可以用来管理hive的元数据,形成血缘依赖关系

数据质量监控

Griffin -- 监工,查看指标运行是否正确正常

0 人点赞