需求背景
该篇内容基于之前写过的一篇<>,上一篇文章其实主要重点是结合logstash的实际应用。近期业务方提出了新的需求,增加了些业务逻辑,同时数据量也成倍增加,要求每日产出指标结果,这里再回顾下上篇的数据情况和技术方案同时对比下新调整后的数据量
端 | 调整前数据量 | 调整后数据量 |
---|---|---|
生产端 | 每日20亿左右 | 每日500亿左右 |
输出端 | 减半,10亿左右 | 每日50亿+ |
考虑到投入产出比,该需求仍然采用来原来老的技术方案设计,只是做了些优化手段。具体使用到的技术:Java,Kafka,MLSQL,Logstash,Ruby,Hive,ES,SparkSQL,Datax「注意:这里均是实际的业务场景和实际的数据量,本文以分享为目的,如果读者有更好的方案,欢迎一起交流」
方案设计
「1.数据流向」流程:
1.业务方将数据推送至MQ,并将消息进行序列化处理
2.通过流平台接入消费消息,并进行一部分逻辑处理,再次回转到MQ中
3.使用logstash消费消息,编写ruby进行逻辑处理,将数据写入hdfs
4.数仓对hdfs文件进行加载入表,进行建模处理
5.最后将指标结果写入到业务方,以es存储
阅读过上