基于storm,kafka,mysql的实时统计系统
Posted Code Job
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于storm,kafka,mysql的实时统计系统相关的知识,希望对你有一定的参考价值。
公司对客户开放多个系统,运营人员想要了解客户使用各个系统的情况,在此之前,数据平台团队已经建设好了统一的Kafka消息通道。
为了保证架构能够满足业务可能的扩张后的性能要求,选用storm来处理各个应用系统上传到kafka中的埋点数据并在mysql中汇聚。
埋点数据上报的格式为json,会上报类似如下的数据
{ "account": "001", "accountName": "旺财宝", "subaccount": "001", "subaccountName": "caller001", "timestamp": 1474625187000, "eventType": "phone", "eventTags": [ { "name": "incoming", "value": 1 }, { "name": "missed", "value": 1 }, { "name": "edited", "value": 1 } ] }
最终通过Storm,在Mysql中汇聚成如下格式
account | account_name | subaccount | subaccount_name | event_type | event_tag | start_time | end_time | count |
001 | 旺财宝 | phone | incoming | 2016/9/23 18:00:00 | 2016/9/23 18:59:59 | 53 | ||
001 | 旺财宝 | phone | missed | 2016/9/23 18:00:00 | 2016/9/23 18:59:59 | 53 |
通过web包装sql语句来作各个业务场景的查询:如某账号一段时间内某事件发生的次数,所有账号一段时间的各个事件发生的次数,或者某事件高发的时间段等等。
之前考虑了最终结果存到哪里:有这样几个待选,Redis,HBase,MongoDB,Mysql。经过估算发现一年的数据量可能不到一千万,在这个数量级,Mysql可以横着走了。
以上是关于基于storm,kafka,mysql的实时统计系统的主要内容,如果未能解决你的问题,请参考以下文章
基于Flume+Kafka+ Elasticsearch+Storm的海量日志实时分析平台