Flink的数据类型

Flink的数据类型,分为两类:

  • 基础数据类型

  • 复合数据类型

基础数据类型

#1.字符串类型
varchar
string

#2.数值类型
int
bigint
integer

#3.浮点型
double
float

#4.boolean类型
true
false

#5.null类型
null

#6.时间日期类型
date
time
timestamp                #不带时区。早先Flink版本使用时间戳类型
timestamp_ltz            #带时区,推荐使用,ltz:local time zone

复合数据类型

Flink的复合数据类型如下:

数组类型,FlinkSQL中名字叫ARRAY,类似于Java的array

Map类型,FlinkSQL中名字叫Map,类似于Java的Map

集合类型,FlinkSQL中名字叫MULTISET,类似于Java的List

对象类型,FlinkSQL中名字叫ROW,类似于Java的Object

案例演示

--建表
CREATE TABLE json_source (
    id            BIGINT,
    name          STRING,
    `date`        DATE,
    obj           ROW<time1 TIME,str STRING,lg BIGINT>,
    arr           ARRAY<ROW<f1 STRING,f2 INT>>,
    `time`        TIME,
    `timestamp`   TIMESTAMP(3),
    `map`         MAP<STRING,BIGINT>,
    mapinmap      MAP<STRING,MAP<STRING,INT>>,
    proctime as PROCTIME()
 ) WITH (
    'connector' = 'socket',
    'hostname' = 'node1',        
    'port' = '9999',
    'format' = 'json'
);

--SQL运行语句
select id, name,`date`,obj.str,arr[1].f1,`map`['flink'],mapinmap['inner_map']['key'] from json_source;

--数据
{"id":1238123899121,"name":"itcast","date":"1990-10-14","obj":{"time1":"12:12:43","str":"sfasfafs","lg":2324342345},"arr":[{"f1":"f1str11","f2":134},{"f1":"f1str22","f2":555}],"time":"12:12:43","timestamp":"1990-10-14 12:12:43","map":{"flink":123},"mapinmap":{"inner_map":{"key":234}}}

--开启socket,把数据输入,FlinkSQL能查询出结果
nc -lk 9999

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值