案例背景:
XXX通讯公司流量分析与控制系统面临问题:数据量特别大,但预算特别有限,普通的数据库分析系统完全无法支持。
问题解决步骤
1.首先提出了测试方案:
300 天数据约50 亿条导入集群,再定制Dashboard 分析。
由于预算特别有限,硬件上定制10 个节点的PC 集群(1 CPU8Core)。
2. DEMO:
Demo:工作原理、展现能力,从功能上基本可以认可项目的可行性。
测试大数据量下多查询,多用户并发访问的响应速度。经过测试,结果符合需求。
3. 第一阶段技术服务支持:
解析日志:不单是某些文件块,而是整个文件系统下所有日志文件。
清洗:维度关联,维度清洗,日期的清洗,等等。
应用展现:各维度的月,日,年分组展现。
4. 出现严重问题:
一天的数据分成N 个链路,388 块数据,每6 分钟一个块。
一天的数据, 原始DAT 文件大概有5G,关联入库后大概是30G 数据,至少5 亿条数据。
问题:300天数据量大于500亿条,是当初估算数据量的6-7 倍!
5. 问题解决方式:
降维!做两小时汇总,给细节数据加上两小时时间的字段 。
3 天细节数据,汇总数据分为App与非App的数据20G数据,汇总后的总量2G,大概下降10倍。重构前端。
6. 最终方案:
配置180G 的JVM 内存。
硬件:10 台PC,每台内存:32G,1 CPU 8 Core。
历史数据集中导:按照两小时打标签,和维度表关联生成细节数据,再汇总入库。
增量数据自动导:每5 分钟导入数据,每两小时生成汇总数据。系统保留3 天细节数据和300 天汇总数据供前端消费。
7. 前端展现: 流量分析与控制系统:
各网间出口的流量统计,分地市,分运营商。
各网间出口的流量的流向统计,分运营商,分省。
各网间出口的流量的业务量统计,分地市。
各网间出口的流量的业务量TOPN 排名,分大类业务,具体应用的小类业务。
热点域名的TOPN 排名
案例测试结果:
数据量非常大,300 天超过500 亿条日志。
预算非常有限,投入10 台PC,10多万块硬件,软件性价比也很高。
日志解析清洗过程难度较高,随着降维的需求加入,展现层难度相应提高。
为了达到十几秒的交互式响应,进行了多个层面的优化。