SQL与增量计算——复用熟悉的离线思维,自动实现增量(流式)计算!
为了简化用户编程,特别是利用原有的离线计算作业快速实现实时计算,StreamCompute允许通过高层描述性语言,如用户熟悉的SQL来编写流计算作业。例如下面的例子,通过简单几行SQL代码就可以实现过滤、维表关联等业务逻辑。
在执行时,由于数据是以流式进入系统的,用户的SQL就像数据库视图一样,被自动增量更新,并以一定的频率输出结果,供下游计算和展示。
这一独特的编程设计,不仅帮助用户借助熟悉的离线处理思维表达实时计算逻辑,也因为同样的程序可以在离线系统运行,使得结果的对比变得易如反掌。
高性能优化引擎——实现低延时计算!
用户的SQL脚本经过编译优化,生成数据流图,然后运行于StreamCompute的分布式引擎之上。相比开源数据流引擎,StreamCompute引擎在“阿里巴巴规模”下,面对真实复杂的业务场景做了很多优化。包括自适应的消息打包、自定义序列化、数据行+列压缩、先进的内存管理、和内部缓存队列和线程模型,以及基于下游向上游“反向”传递压力的流控策略等。