有奖:语音产品征文挑战赛火热进行中> HOT
流计算常用术语如下:
术语
详细说明
流计算
流计算是面向流式数据的计算,它从一个或多个流式数据源读取持续不断产生的数据,经过引擎中多个算子的组合进行高效计算,再根据实际需要,将结果输出至下游的多种数据目的,例如消息队列、数据库、数据仓库、存储服务等。
数据源(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 模式带来的不可控性。
时间窗口
定义了多个时间段以及各个时间段之间的关系(例如是否可重叠、是否固定大小)。目前系统支持 TUMBLE、HOP、SESSION 三种时间窗口。具体见 时间窗口函数
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 语句,可以用来对数据表、视图等进行选择、变换、筛选、插入等操作。