环信技术博客

环信RTBDA系统架构

2015年06月23日|作者: |大数据|标签:, ,

RTBDA(Real Time Big Data Analysis)架构是目前大数据分析领域的流行架构理念,最早是由David Smith在他非常流行的博客([Reference 2])里头提出来的。他的提议里包括了四层架构 - 数据,分析,集成,决策。尽管他当初的提议主要是为了进行预测性分析计算,但后来这个架构逐渐演变为大数据分析领域的主流架构。如下图:
David Smith RTBDA

图1 :David Smith 的 RTBDA架构图

今天我们以这个主流架构模式来看看和理解环信分析系统的体系架构。

环信大数据分析系统架构由底向上基本上也可以分四层 :数据,分析,集成,决策。

环信大数据系统的最底层使用的是cassandra数据库,所有需要分析的数据存储在这个数据库里。环信也使用mysql数据库保存与分析系统管理相关的数据。这两个数据库里的所有这些个数据是整个分析系统的基础。数据层之上的第三层是分析层。环信大数据系统分析层使用spark做分析平台。各种社交指标分析算法的实现采用spark环境支持的scala,python 或者java 语言编写。Spark本身包含一个机器学习的库。环信的预测建模以这个库为基础。SPARK平台构成环信指标分析模型计算的基础。
easemob RTBDA

图2 :环信系统RTBDA架构图

分析层之上是集成层,集成层就像一层粘糊剂,把系统的各个组成部分有机的粘接起来。在这个层次上,环信主要需要开发两个子系统 – 社交建模规则执行引擎和和任务调度引擎。社交建模规则执行引擎根据建模规则调用分析层的分析计算进程,计算各类社交指标。任务调度引擎按照执行逻辑的优先次序和依赖关系调用规则执行逻辑完成计算任务,计算结果通过web服务反馈到web前端,所以集成层以分析层为基础,把分析计算和决策层无缝连接起来,形成一个大数据分析计算的处理系统。。

环信大数据系统分析层之上的决策层包括有手机和web前端,主要提供各个社交指标的计算结果及其所产生各类分析图表。基本的图形组件有饼图,线图,柱状图等等,全部采用javascripts开发。环信大数据系统决策层直接面对用户及其相关的决策领导,从环信的角度出发,这一层是吸引用户购买和使用环信社交大数据分析系统工具的重要一环。

环信有2万多家app客户,为了适应这么多不同客户的需求, 环信构造的这四层分析系统基础架构尽量采取灵活的可配置功能。每层都有其相关的配置对应,使用起来非常灵活,应当能够高效率的充分满足不同领域的客户需求。

[Reference]

1. 环信 Social Activity Indicator Analysis Engine - TD.docx
2. http://blog.revolutionanalytics.com/
3. http://www.oreilly.com/data/free/big-data-analytics-emerging-architecture.csp

作者:黄智,负责环信大数据部门运作和大数据分析系统的搭建

本文章版权归环信所有,转载请注明出处。更多技术文章请访问http://blog.easemob.com/

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>