流计算常用术语如下:
术语 | 详细说明 |
流计算 | 流计算是面向流式数据的计算,它从一个或多个流式数据源读取持续不断产生的数据,经过引擎中多个算子的组合进行高效计算,再根据实际需要,将结果输出至下游的多种数据目的,例如消息队列、数据库、数据仓库、存储服务等。 |
数据源(Source) | 为流计算系统持续提供输入数据,例如腾讯云 CKafka 等。 |
数据目的(Sink) | 流计算系统处理结果输出的地方,例如腾讯云 CKafka、云数据库 MySQL、PostgreSQL 等。 |
Schema | 表示一个表的结构信息,例如各个列名、列类型等。对于 PostgreSQL 而言,Schema 是介于 Database 和 Table 之间的一个层级,可以理解成数据库内部的命名空间。 |
时间模式 | 指导系统处理数据时如何获取时间戳,目前支持 Event Time、Processing Time、Source Time 三种时间模式。 |
Event Time | Event Time 时间模式下,时间戳由输入数据的某个字段提供,可以用 WATERMARK FOR 语句指定该字段并启用 Event Time 时间模式,适用于数据源包含精确时间戳的场合。 |
Watermark | 表示一个特定的时间点,在该时间点之前的所有数据已经得到妥善处理。 Watermark 由系统自动生成,用户可通过 WATERMARK FOR BOUNDED 语句指定时间戳的最大容差。 |
Processing Time | Processing Time 时间模式下,时间戳由系统自动生成并添加到数据源中(以 PROCTIME 命名,SELECT * 时不可见,使用时必须显式指定)。它以每条数据被系统处理的时间作为时间戳,因而有一定的不可控性,适用于对时间精度要求不是很高的场合。 |
Source Time | 在 Source Time 时间模式下,可使用 Kafka 每条记录所含元数据的时间戳作为流计算处理所使用的时间戳(以 SOURCETIME 命名,SELECT * 时不可见,使用时必须显式指定),避免了输入数据没有时间戳字段时,使用 Processing Time 模式带来的不可控性。 |
时间窗口 | |
TencentDB for MySQL | TencentDB 是腾讯云提供的一种高性能、高可靠、可灵活伸缩的数据库托管服务。它让用户可以轻松在云端部署、使用 MySQL、PostgreSQL 等数据库。 |
CKafka | CKafka 是腾讯云提供的一个分布式的、高吞吐量、高可扩展性的消息系统,完全兼容0.10版本的 Kafka API。流计算目前支持 CSV 和 JSON 两种输入输出格式。 |
Tuple 与 Append 流 | Tuple(又称为 Append)为数据流类型的一种,可以存放不含主键的流数据。用户可以不断追加新数据到这种数据流中,它不涉及到对之前已发出数据的更新操作。目前各种数据源和数据目的均支持 Append 流的输入输出。 |
Upsert 流 | Upsert 是 Update OR Insert 的简写,由 DISTINCT、不含时间窗口的 GROUP BY 语句、不含时间范围的 JOIN 语句等查询产生,它具有主键定义,如果后续发出的数据与之前的某条数据具有相同主键,则更新该条记录为新值;反之则新增一行数据。它可以确保之前发出的数据被更新以反映最新的值。 |
DDL 语句 | DDL 即数据定义语言(Data Definition Language),为 SQL 语言的一个子集,由 CREATE 语句组成。它可以用来定义表、视图、以及用户自定义函数(UDF)等。 |
DML 语句 | DML 即数据操作语言(Data Manipulation Language),为 SQL 语言的一个子集,包括 INSERT 和 SELECT 语句,可以用来对数据表、视图等进行选择、变换、筛选、插入等操作。 |