zoukankan      html  css  js  c++  java
  • storm实战:基于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可以横着走了。

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
    如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
    如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【Arli】。

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    洛谷 P1443 马的遍历 BFS
    洛谷 P1583 魔法照片 快排
    洛谷 P1093 奖学金 冒泡排序
    洛谷 P3811 【模板】乘法逆元 如题
    洛谷 P3384 【模板】树链剖分 如题
    洛谷 P3379 【模板】最近公共祖先(LCA) 如题
    vijos 信息传递 tarjan找环
    洛谷 P3373 【模板】线段树 2 如题(区间加法+区间乘法+区间求和)
    酒厂选址
    ⑨要写信
  • 原文地址:https://www.cnblogs.com/arli/p/6123539.html
Copyright © 2011-2022 走看看