使用Apache Spark和EVAM构建实时流式解决方案

http://spark.apache.org 是一个基于高速处理的大数据开源框架,具有易用和处理复杂分析的特性。Spark日益流行,支持批量处理及流式处理,图数据,机器学习,Hadoop和map / reduce。这是探索实时事件数据处理的理想平台。

EVAM是实时事件处理方面的领先企业,拥有超过40个解决方案,为全球2亿多终端用户提供实时事件处理。近年来,EVAM开始探索利用AWS Kinesis和RedShift等流行功能用于客户解决方案,在本文中我们将探讨基于Apache Spark和EVAM的事件处理引擎的解决方案体系结构。

实时事件处理要求:

实时客户互动系统提出了一套严格的要求,关注于50毫秒内的“事件到行动”。通过有选择的数据集成实现这种水平的响应是可能的,将技术事件对客户和业务有利的方式进行组合。一般需求包括:

  1. 与任何来源的数据集成,包括点击流,日志,交易系统,物联网,推特等。
  2. 通过Kafka,Kinesis和其他系统实时摄取数据。
  3. 将事件和非事件与时间窗口、客户配置文件数据相结合的事件处理方式,来触发操作。为了本文的书写目的,我们将把每个这样的组合称为“场景”。
  4. 有数以百计的场景,有必要对行为进行约束和优先排序。例如,与客户支持相关的行动可能优先于“新产生”行动。
  5. 执行一个场景的一系列事件应作为其他场景的输入。
  6. “事件到行动”的时间延迟应不超过50毫秒。

实时事件处理的概念模型:

在过去的十年中,我受邀参与了实时事件解决方案,了解到业务抽象层的重要性对于客户实时的需求。业务抽象层根据对业务有意义的术语来定义事件,为业务分析师定义和实现场景创造了条件。

一个模型关注于一个产生事件的“角色”。角色通常是一个人,但也可以是网络上的设备(IOT或CPE)。事件源于技术事件,这些技术事件被组合在一起就构成“商业”事件。例如,新客户的创建可以涉及关系数据库中多表联合创建,每个表格被单独识别为事件,但是组合起来就形成“客户创建”事件。

一个强建的模型不仅包含对非事件的支持,也包括随时间推移聚合事件的支持。非事件可以包括购买在特定时间窗口内未在网络上注册的新设备或服务。认识到事件缺乏对于业务系统来说至关重要。

由此产生的操作上下文,需要如姓名,邮件地址等信息。别的信息可通过电子邮件或其他渠道获得“角色”数据。

图 1

最后,支持场景优先次序和约束很重要。处于“技术支持”场景中的客户可能有别于其他客户处理方式。同等重要的是,客户不会受到多种行为的覆盖,因为在短时间内触发多种操作的情况是相当常见。针对场景有效管理策略并在Spark或其他开源框架之上构建健壮的实时参与解决方案是所面临众多挑战之一。

除对场景的全球约束进行优先级排序和支持外,使用实时仪表板监视场景也很重要。监视场景可以导致增强和优化,如果通过模板可以访问场景,可以轻松实现监视场景的功能,以便轻松更新参数。

把它放在一起:

与企业大数据战略相关的挑战之一就是简单地组织用例范围和技术要求。在本文中,我们专注于支持客户(包括设备)参与的复杂实时事件处理,事件识别组合相应需要,非事件的时间窗口,客户档案数据优先级重叠及对不同场景的限制。

Spark提供了一个理想的框架,为数据集成,技术事件处理和一系列批处理过程提供全行业编程支持。在解决方案体系结构中,Spark为EVAM事件引擎提供了一个有效的前端,它提供了一个业务事件抽象,适用于支持复杂场景。

图 2

EVAM事件处理引擎很容易与基于云的设计集成(在另一篇文章中,我们将概述EVAM如何与AWS Kinesis,RedShift和其他服务一起服务于全球无线运营商)。在本文中,我们着重介绍EVAM如何与Apache Spark集成。

在此体系结构中,EVAM托管实时事件的内存弹性缓存以及用于场景识别的关联业务规则。EVAM设计包括一个可视化场景设计器,它使用Spark技术事件的输入来识别更高级别的业务事件。EVAM的设计考虑到了复杂场景,包括实时事件,非事件,时间窗口以及客户资料数据(客户名称,邮件,地址,付款状态)的混合。EVAM也非常适合充当现有传统事件处理系统的“企业事件中心”,以便集中查看事件和相关操作。

结论:

实时事件处理是一个令人兴奋的领域。它在技术上是有趣的,而且在实际解决方案中,也被证明有真正的商业价值。这些系统并没有收集“一切数据”,而是专注于实时事件的收集,以支持特定的场景。数据收集的重点是,通过相关实时行为的产生对客户行为进行直接洞察。这些系统减少客户流失,降低客户支持,并改善交叉销售和收入。

Apache Spark将继续流行,因为它提供了日益成熟的实时数据收集框架,同时,支持一系列批处理功能,包括Graph,Hadoop等。然而,在Spark上发布一个有效的实时事件管理系统将是一件重要任务。这样的系统需要用于事件识别的逻辑,其包括实时事件,非事件,时间窗口和客户简档数据。在Spark上开发这样一个系统,其中优先和限制场景的灵活性对大多数团队来说都不是一个现实的目标。

一个实际的方法是将Spark和经过验证的企业实时事件处理引擎(如EVAM提供的)一起使用。我公司EVAM是实时事件处理领域的领导者,有超过四十家企业依靠EVAM来支持超过两亿的终端用户。在另一篇文章中,我们将探讨如何在AWS上部署EVAM,使用Kinesis,RedShift和其他服务为全球无线运营商提供实时事件解决方案。

想要了解有关实时事件流解决方案的更多信息,请访问我们的网站,让我们知道我们该如何提供帮助 http://www.evam.com

本文的版权归 AlexanderTan 所有,如需转载请联系作者。

发表于 2018-01-05
9

云计算

130 篇文章78 人订阅

专注于提供全球领先的专业云计算资讯。

0 条评论

相关文章