Flink SQL中的操作符

本文详细介绍了Flink SQL中的各种操作符,包括Show与Use、Scan、Projection与Filter、聚合、Joins、OrderBy和Limit等,涵盖了批处理和流处理场景。重点讲解了GroupBy聚合、Over Window聚合、时间窗口Join、Temporal Tables等功能,强调了在流处理中需要注意的状态管理和结果更新问题。
摘要由CSDN通过智能技术生成

1 操作符

1.1 Show与Use

(1) Show(批处理和流处理)

-- 显示所有 catalog
SHOW CATALOGS;
-- 显示当前 catalog 中所有的数据库
SHOW DATABASES;
-- 显示当前数据库、Catalog中的所有表
SHOW TABLES;

(2) Use(批处理和流处理)

-- 为本次会话设置 catalog
USE CATALOG mycatalog;
-- 为会话设置一个属于当前 catalog 的数据库
USE mydatabase;
1.2 Scan、Projection与Filter

(1) Scan/Select/As(批处理和流处理)

SELECT * FROM Orders
SELECT a, c AS d FROM Orders

(2) Where/Filter(批处理和流处理)

SELECT * FROM Orders WHERE b = 'red'
SELECT * FROM Orders WHERE a % 2 = 0

(3)用户定义标量函数(Scalar UDF)(批处理和流处理)
      自定义函数必须事先注册到 TableEnvironment 中。自定义函数文档

SELECT PRETTY_PRINT(user) FROM Orders;
1.3 聚合

(1)GroupBy 聚合(批处理和流处理;结果更新)
      注意: GroupBy 在流处理表中会产生更新结果(updating result)。

SELECT a, SUM(b) as d
FROM Orders
GROUP BY a;

(2)GroupBy 窗口聚合(批处理和流处理)
      使用分组窗口对每个组进行计算并得到一个结果行。

SELECT user, SUM(amount)
FROM Orders
GROUP BY TUMBLE(rowtime, INTERVAL '1' DAY), user;

(3)Over Window aggregation(流处理)
      **注意:**所有的聚合必须是定义到同一个窗口中,即相同的分区、排序和区间。当前仅支持PRECEDING (无界或有界) 到CURRENT ROW范围内的窗口、FOLLOWING所描述的区间并未支持,ORDER BY必须指定于单个的时间属性。

SELECT COUNT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值