Blink SQL计算列
2022/1/6 19:37:35
本文主要是介绍Blink SQL计算列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
计算列
计算列可以使用其它列的数据,计算出其所属列的数值。如果您的数据源表中没有TIMESTAMP类型的列,可以使用计算列方法从其它类型的字段进行转换。
计算列概念
计算列是虚拟列,并非实际存储在表中。计算列可以通过表达式、内置函数、或是自定义函数等方式,使用其它列的数据,计算出其所属列的数值。计算列在Flink SQL中可以像普通字段一样被使用。
计算列的用途
目前Watermark的Event Time(也称为Rowtime)列只支持TIMESTAMP类型。Watermark只能定义在源表DDL中,如果您的源表中没有TIMESTAMP类型的列,可以使用计算列从其他类型的字段进行转换。
计算列语法
column_name AS computed_column_expression
计算列示例
Watermark的Rowtime必须是TIMESTAMP数据类型。当前实时计算支持毫秒级别的、在Unix时间戳里是13位TIMESTAMP数据类型。如果DataHub的TIME字段是微秒级别的(16位Unix时间戳),可以用计算列方法转换为13位的时间戳,如下所示。
CREATE TABLE test_stream( a INT, b BIGINT, `TIME` BIGINT, ts AS TO_TIMESTAMP(`TIME`/1000), --使用计算列方法,将16位时间戳转换为13位时间戳。 WATERMARK FOR ts AS WITHOFFSET(ts, 1000) ) WITH ( type = 'datahub', ... );
源表数据中的字段TIME
包含时间信息,为BIGINT类型。用计算列的功能将字段TIME
转换成13位时间戳(TIMESTAMP)类型字段ts
,并将ts
字段作为Watermark的Rowtime字段。
这篇关于Blink SQL计算列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南