概述

SQL语言具有数据处理表达能力强、语法简单、开发门槛低、在数据领域使用范围广等优点,因此百度流式计算选择SQL语言作为数据流作业的基本开发语言。百度流式计算SQL以Spark SQL作为基础,结合常用的SQL语法标准做出适合流计算作业开发的调整,使其在基本兼容Spark SQL语法的基础上具有更完备的表达能力。

名词解释

名词 解释
流式计算平台 streaming system,用于处理数据的实时系统。百度流式计算服务即是一个流式计算平台,可以提供数据集成、数据实时计算等服务,百度流式计算可以用SQL表示数据计算逻辑。
数据流 data stream,在流式计算中,用于表示数据动态的形态。
数据表 table,用于表示数据静态的形态。在流计算中,体现为无边界表(unbound table)。
数据流管道 data pipeline,数据流处理过程的形式化抽象。一般包括数据的读取、数据计算、数据持久化等步骤。
流式作业 streaming job,数据处理过程的逻辑表示,是流计算的基本执行单位。
数据源 data source,流式作业处理数据的输入源。例如,百度消息服务。
数据目的 data sink,经过流计算处理后数据的输出目的。例如,百度消息服务。
DDL 数据定义语言(Data Definition Language),SQL语言用于创建对象的子集。主要包括CREATE等语句。
DML 即数据操作语言(Data Manipulation Language),SQL语言用于操作数据对象的子集。包括INSERT、SELECT等语句。
event time 事件发生时间,一般包含在数据中。
process time 数据处理时间,一般由流计算系统自动生成。
时间窗口 流式计算中通过时间窗口对作业进行切分。窗口的划分可以基于event time、process time以及session等划分,窗口的大小可以是固定的、不固定的,类型可以是不重叠的、重叠的(滑动的)。
watermark 相对于event time的一个相对时间点,数据在这个时间点之前到达进入系统可以正常处理,这个时间点之后到达则不能常规处理。

语法约束

百度流计算SQL大小写不敏感。