作者:赵平
导读:在上一篇Wormhole系列文章中,我们介绍了Wormhole的设计思想,并给出了Stream、UMS、Flow、Namespace等相关概念的具体定义,从文章中我们得知,Wormhole作为实时流式处理平台,其设计思想最终是为流上处理数据而服务的。在本文中,我们主要从Wormhole的功能设计入手,重点介绍Wormhole所支持的几个基本功能。
Wormhole支持的功能很多,如下图所示,除了流式数据处理,Wormhole在管理和运维等方面也做的比较完善。下面我们从流式处理、平台管理、数据质量、数据安全以及运维监控五个维度来介绍Wormhole的具体功能。
一、流式处理
Wormhole的核心是流式处理,并将流式处理抽象为Flow(流式处理逻辑管道,具体参见:#Wormhole# 流式处理平台设计思想)。Flow的引入,使得一个Spark Streaming上可以跑不同的处理逻辑,也就是多个Flow可以在一个Spark Streaming上同时执行而互不影响。这种异构逻辑的并行处理大大提高了资源利用率,也提高了流式处理的易用性。
如上图所示,Flow从处理过程角度分为解析、转换、写入三个过程,具体如下:
1、解析
Flow支持多种消息协议,UMS和用户自定义JSON两种消息协议:
UMS
UMS是Flow支持的标准消息协议,在设计思想的文章中有介绍,这里不再介绍。(参见:#Wormhole# 流式处理平台设计思想)自定义JSON
开源后,为了适配用户已有系统的数据格式需求,Flow开始支持用户自定义JSON消息协议,使用也比较方便简单,只要在页面贴一个JSON消息例子,就会自动解析,然后通过点击配置即可完成自定义JSON的Schema的定义。
2、转换
这里的转换主要指对流上指定的Namespace的数据进行处理,处理方式包括Transform SQL(包含Spark