[翻译]Spark Struct Streaming设计文档

2017-11-09  本文已影响536人  分裂四人组

介绍

通过过去三年里部署、运维Spark Streaming的积累,我们在Catalyst和DataFrames的基础上重新架构了绰号为“Struct Streaming”的实时计算项目。

语义

我们提出来一个简单的模型“repeated queries(RQ)”。基于该模型用户可以从原静态表以及SQL/DataFrames的一些概念推广至Struct Streaming上。

工作原理:

操作

Map-only ETC job

Infinite agrregation/landmark window

Sliding window aggregation by Event time

sliding window包含4个参数:

  1. 时间列;
  2. window的大小;
  3. sliding 间隔;
  4. window起始时间;

Tumbling window是一种特殊的sliding window,它的sliding间隔同window大小一样;针对这种查询,作如下处理:

Query on top of window(find most popular window in past hour)

Session statistics(count number and average length of sessions)

Output mode

Time和Trigger

过期数据

同其他模型的比较

Repeated Query模型的好处:

  1. 没有stream的概念--所有的都是table和sql 查询;
  2. 不同于Google Dataflow, triggers和outputs同查询本身是独立的;Dataflow中window(从sql的角度看就是一个groupby)必须确定一个outputmode 和trigger,而在RQ中,可以使用这些查询,而不一定使用window的概念;
  3. 同batch processing兼容性很好;
  4. 许多心仪的features(sessions/feedback loops等)很容易实现;

RQ主要的缺点为查询的渐增是由planner完成的,planner必须支持queries/output mode/triggers的结合,比如说必须支持什么时候可以删除老的数据或者状态,用户对此则没法控制。

同Storm的比较

同Dstream的比较

RQ相较于以上两种的优势在于:

CQL(Streams + Tables)

CQLCalcite和其他的一些streaming DB也有streams和table的概念, 但这些都是嘉定一个单调、不可变的时间度量,对于这些系统,结果一旦差生就不可再变更。


参考:

上一篇 下一篇

猜你喜欢

热点阅读