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