• 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】。

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

  • 相关阅读:
    Python语言程序设计(1)--实例1和基本知识点
    前端学习笔记--函数
    知乎推荐书籍整理
    第六周周总结
    第五周总结
    第四周周总结
    第三周周总结
    第二周总结
    第一周总结
    项目目标
  • 原文地址:https://www.cnblogs.com/arli/p/6123539.html
Copyright © 2020-2023  润新知