基于akka和data-sketch技术的实时数据流分析服务




实时数据流分析服务: 实时提交分析数据,实时获取分析结果


    之前一直在一家公司做埋点的后台数据处理分析程序,在碰到很多问题后就产生一个想法,能不能直接弄一个数据分析服务,

用户可以随时调用分析服务的接口提交分析数据和获取分析结果(www.xiuyundata.com)


技术背景:

  • data-sketch对常见的统计需求,如count(distinct), quantiles, topN等 在精确程度,存储成本,计算成本之间进行了折衷,对每一个计算元素只touch一次的情况下,得到精度相当高的统计结果。
  • akka是一个实现了actor pattern的异步编程 library。业务功能都被封闭成actor, 相互之间的调用或状态改变,通过message传递完成,无状态共享.
基于akka和data-sketch技术的实时数据流分析服务_第1张图片

目前封装了三种计算模型:

  • theta sketch:基数计算,即计算count(distinct)
  • quantile sketch:分位数计算,即计算一系列数值的分布情况
  • frequency sketch:频率计算,即topn计算

数据安全性:

  • 提交数据使用wss,获取数据使用https,数据不会被中途截取
  • 后台服务不存储任何原始数据,算后即扔,服务端只有分析后的数据
  • 相关计算参数,比如userid,business,可以hash或混淆后再传值
  • 由于目前只做authenticate,开发者应注意appid的保密性,建议后台调用

目前整个服务后台算是完成了0.5左右吧,由于是试验性质,目前只用了一台阿里云的ES,下一步要做的工作有两方面,
  1. 增加统计模型
  2. 增加对akka cluster 的支持,使整个后台服务能力可扩展


你可能感兴趣的:(基于akka和data-sketch技术的实时数据流分析服务)