平台简介

HBDStreaming 实时流处理平台

  实时流处理打破了传统的数据分析和处理的模式,即数据最终积累和落地后再针对海量数据进行拆分处理,然后进行分析统计,传统的模式很难真正达到实时性和速度要求。而实时流处理模型的重点正是既有类似Hadoop中MapReduce和PIG一样的数据处理和调度引擎,由解决了直接通过输入适配接驳到流的入口,流实时达到实时处理,实时进行分组汇聚等增量操作。
  大数据实时流处理平台是基于Apache Spark的Spark Streaming实现的。在大数据平台下,主要负责处理实时数据清洗与基于模型实时预测
  从数据的实时采集过程,数据是借助Kafka消息队列以流式进入到大数据平台中,不过刚刚采集的数据,其数据质量是不完全可靠及标准的,那么这时就需要使用实时流的方式对其进行清洗,使其达到相应标准。经过清洗后的数据,就可以进行下一环节完成实时存储了。这个过程,我们可以简单叫做ETL(Extract-Transform-Load)。
  那么数据清洗的过程中,需要配置一些规则。而配置规则的方式可以同系统相应界面操作完成。一般情况下,可以满足常规的所有需求。
  通过数据分析平台,根据海量的历史数据,选择相应的算法,选取好最优的参数,构建模型。模型构建好之后,会把模型部署到流平台来完成实时的预测(预警)。

规则策略配置流程如下:

(1)创建规则策略

(2)规则策略配置选择输入方式

(3)规则策略配置

 

(4)规则策略创建定义配置

(5)规则策略创建规则配置

(6)规则策略配置选择输出方式

平台特点

数据采集

用户使用流式数据采集工具将数据流式且实时地采集并传输到大数据消息Pub/Sub系统,该系统将为下游流计算提供源源不断的事件源去触发流式计算任务的运行。

流式计算

流数据作为流计算的触发源驱动流计算运行。因此,一个流计算任务必须至少使用一个流数据作为数据源。一批进入的数据流将直接触发下游流计算的一次流式计算处理,并针对单批次流式数据得出计算结果。

数据集成

流计算将计算的结果数据直接写入目的数据源,这其中包括多种数据源,包括数据存储系统、消息投递系统,甚至直接对接业务规则告警系统发出告警信息。不同于批量计算,流计算天生自带数据集成模块,可以将结果数据直接写入到目的数据源。

数据消费

流计算一旦将结果数据投递到目的数据源后,后续的数据消费从系统划分来说,和流计算已经完全解耦。用户可以使用数据存储系统访问数据,使用消息投递系统进行信息接收,或者直接使用告警系统进行告警。

技术支持

ETL技术

  ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
  ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

CEP

  复杂事件处理(Complex Event Processing,CEP)应用大致分为两大类:事件关联和根本原因分析。
  CEP模型有效利用事件驱动架构要求用户真正理解CEP的含义,CEP的三个基本模型及其特性,以及CEP内在的限制。CEP的最简单方案是触发或者阈值激活处理。该模型里,事件要么直接导致一些操作的发生,要么是当事件达到某个阈值时会执行某个操作。CEP能够在从源到目的地的事件流里引入事件处理,比如在线事务处理,因为生成的延时很小。虽然触发或阈值CEP能够通过单个类型事件实现,但是也可以使用多个不同权重的不同事件来提供对条件更为深入的理解。

流式计算模型

  不同于批量计算模型,流式计算更加强调计算数据流和低时延。
  使用实时数据集成工具,将数据实时变化传输到流式数据存储(即消息队列);此时数据的传输变成实时化,将长时间累积大量的数据平摊到每个时间点不停地小批量实时传输,因此数据集成的时延得以保证。
  数据计算环节在流式和批量处理模型差距更大,由于数据集成从累积变为实时,不同于批量计算等待数据集成全部就绪后才启动计算任务,流式计算任务是一种常驻计算服务,一旦启动将一直处于等待事件触发的状态,一旦有小批量数据进入流式数据存储,流计算立刻计算并迅速得到结果。
  不同于批量计算结果数据需等待数据计算结果完成后,批量将数据传输到在线系统;流式计算任务在每次小批量数据计算后可以立刻将数据写入在线/批量系统,无需等待整体数据的计算结果,可以立刻将数据结果投递到在线系统,进一步做到实时计算结果的实时化展现。
  流计算是一种持续、低时延、事件触发的计算任务。

流计算特点

实时(realtime)且无界(unbounded)的数据流

  流计算面对计算的数据源是实时且流式的,流数据是按照时间发生顺序地被流计算订阅和消费。且由于数据发生的持续性,数据流将长久且持续地集成进入流计算系统。例如,对于网站的访问点击日志流,只要网站不关闭其点击日志流将一直不停产生并进入流计算系统。因此,对于流系统而言,数据是实时且不终止(无界)的。

持续(continuos)且高效的计算

  流计算是一种“事件触发”的计算模式,触发源就是上述的无界流式数据。一旦有新的流数据进入流计算,流计算立刻发起并进行一次计算任务,因此整个流计算是持续进行的计算。

流式(streaming)且实时的数据集成

  流数据触发一次流计算的计算结果,可以被直接写入目的数据存储,例如将计算后的报表数据直接写入RDS进行报表展示。因此流数据的计算结果可以类似流式数据源一样持续写入目的数据存储。