项目介绍和数据采集
1.了解行业背景知识
个股、指数、板块,涨跌幅、振幅,换手率,成交占比
成交时间:9:30-11:30 13:00-15:00
2.介绍今日证券项目
1.项目介绍
基于flink实时流计算的,金融证券项目,实时大屏展示,预警模块和离线模块的处理。
2. UI产品原型
首页
涨跌幅:
个股:
K线
3.业务功能
3.1业务模块
1、数据采集
2、离线数据处理
3、实时数据处理
4、实时预警监控
5、离线预警
6、应用大屏展示
3.2业务文档
Web项目:《大数据平台需求规格说明书-今日指数(前端应用).docx》
流处理项目:《今日指数数据模型.xlsx》
数据采集:《数据源接口规格说明书.docx》
3.3性能指标
l 批处理部分指标:
Ø 支持批处理集群批量总写入速度2GB/秒,批量读取速度300MB/秒;
Ø 平台支持并发执行300个查询和200个加载任务;
Ø 应用查询时间对于数据库的简单数据读取将不超过1~2秒,三个月统计计算查询时间将不超过15秒,复杂查询时间将不超过1分钟;
Ø 复杂批处理任务,ETL的处理时间将不超过2个小时;
l 实时流处理指标:
Ø 平台支持接收峰值为每秒100万条+的流数据;
Ø 平台能够在峰值条件下,完成2秒内的实时预警,2秒内完成针对当日数据的查询;
Ø 平台每日实时处理模块能够累积处理144亿笔(按4小时交易日保持峰值流速计)订单流数据;
Ø 平台支持至少50个并发访问/查询当日数据。
l 应用响应指标:
Ø 数仓应用项目离线报表30秒内完成数据响应查询;
Ø 实时大屏数据展示5秒内完成数据响应查询;
应用平台支持并发执行500个用户查询请求;
类型 | 业务场景 | 业务场景特征 | 并发度 | 耗时 |
简单 | 秒级行情亿级数据查询 | 功能点查询 | 500 | 1s |
中等 | 业务指标数据加工 | 亿级数据关联查询 | 50 | 10s |
预警规则关联查询 | ||||
复杂 | 大表关联大表 | 复杂历史数据查询 | 20 | 30s |
实时报表 | 实时大屏报表生成 | 当日实时报表 | 50 | 2s |
历史报表 | 历史报表生成 | 跨年历史报表生成 | 20 | 30s |
实时行情 | 指标数据实时展示 | 页面实时查询 | 50 | 1s |
3.4数据存储规模
秒级行情(Hbase):存储5日内秒级行情,数据量为2.88亿条
分时行情(Druid):存储半年内分时行情数据,数据量为8.64亿条;
历史数据(Hive数仓):以沪深市场2万只证券,存储时间按1年统计:
秒级行情: 210亿条以上
分时行情: 20亿条以上
K线: 1500万条以上
日数据采集总量统计 :
20000(只)* 3600(秒)*4(小时)= 2.88(亿)≈ 85(GB)
3.5.架构设计
3.5.1、技术选型
数据采集:flume、socket、ftp、sqoop
数据存储:HDFS、HBase、MySQL、Kafka、Redis
数据计算:Hive SQL、Flink
任务调度:oozie
数据分析:Druid、Kylin
产品 | 版本 |
zookeeper | 3.4.5 |
kafka | 1.0.0 |
hbase | 1.2.0 |
hadoop | 2.6.0 |
flink | 1.7.0 |
flume | 1.6.0 |
mysql | 5.6 |
Redis | 3.0 |
3.5.2平台选择
apache
cdh,hdp, => cdp
华为,星环
云平台
3.5.3平台规划
- 消息队列日数据吞吐量:20000只证券1条/秒60604 = 2.88亿条
- 每条行情数据1kb左右,每天日志量: 2.88亿kb/1024/1024 ≈ 275G
- 一年磁盘存储量: 275G * 360天/1024 ≈ 97T
- 保存3个副本需占用磁盘总量 :97T * 3 = 291T
- 预留30%的磁盘空间 = 291T/70% ≈ 416T
- 机器数量:
(1) 机器一方案:416T/(1.2T * 10)≈ 35台
(2) 机器二方案:416T/(1.2T * 15)≈ 23台
7.再加上元数据,主节点服务器,还需再加上一定数量的机器
3.5.4、技术结构
1.原始数据采集采用的是flume收集文本数据和实时流数据,使用sqoop采用RDBMS中的交易数据
2.数据存储根据不同的业务需求采用不同的存储介质,这里我们采用的存储资源包含:Hbase、Mysql、Redis、HDFS等
3.采用Hadoop Yarn统一资源管理
4.计算框架采用MapReduce、Spark SQL、Flink
5.数据处理包含批处理和实时数据处理,其中批处理数仓处理采用Hive,再根据主题建立模型和业务数据分层
6.数据应用采用Kylin和web应用做到监控预警;前端页面对接web应用做到实时大屏展示