概述
更新时间:2021-06-24
SQL语言具有数据处理表达能力强、语法简单、开发门槛低、在数据领域使用范围广等优点,因此百度流式计算选择SQL语言作为数据流作业的基本开发语言。百度流式计算SQL以SPARK/FLINK SQL作为基础,结合常用的SQL语法标准做出适合流计算作业开发的调整,使其在基本兼容SPARK/FLINK SQL语法的基础上具有更完备的表达能力。
注:由于SPARK\FLINK SQL 语法天然存在区别,百度流式计算SQL没有做到引擎无关,提交到不同引擎的作业在同一个功能的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大小写不敏感。