Flink 1.11 Table & SQL深度解读

1. kafka table DDL 动态table,后者定义覆盖前者, 一次创建多次使用

在这里插入图片描述

2.clone table 完整继承、或者覆盖OPTION

在这里插入图片描述

3.性能测试体验提升

在这里插入图片描述

4.kafka table options 提升

在这里插入图片描述

5.source & Sink重构

(1)ChangeLog:kafka sink 支持update delete
(2) NoMatchingFactory 异常修复
(3)table schema 类型异常

在这里插入图片描述

6.Hive 流批一体

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.Hive Dialect

在这里插入图片描述

在这里插入图片描述

8.Api Client

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

以上内容整理自2020年6月14日阿里云主办的大数据+AI meetup

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink 1.11中,Kafka SQL Connector可以通过使用`TIMESTAMP_LTZ`类型来表示Kafka消息的时间戳。这个类型可以直接从Kafka的消息中获取时间戳,并将其转换为UTC时间。 要使用`TIMESTAMP_LTZ`类型,需要在创建表时指定相应的字段类型,例如: ``` CREATE TABLE kafka_table ( `timestamp` TIMESTAMP_LTZ(3), `key` STRING, `value` STRING, WATERMARK FOR `timestamp` AS `timestamp` - INTERVAL '5' SECOND ) WITH ( 'connector' = 'kafka', 'topic' = 'my_topic', 'properties.bootstrap.servers' = 'localhost:9092', 'scan.startup.mode' = 'earliest-offset', 'format' = 'json' ) ``` 在这个表中,`timestamp`字段被声明为`TIMESTAMP_LTZ`类型,并且在`WATERMARK`语句中定义了一个水印来指示数据流的事件时间。在这个示例中,水印是通过将事件时间减去5秒来计算的。 在Flink中,可以使用`org.apache.flink.formats.json.JsonNode`类型来解析JSON格式的消息。例如: ``` StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env); tableEnv.createTemporaryView("kafka_table", env .addSource(new FlinkKafkaConsumer<>("my_topic", new JSONKeyValueDeserializationSchema(false), props)) .map(record -> { JsonNode value = record.value(); long timestamp = value.get("timestamp").asLong(); ZonedDateTime zonedDateTime = Instant.ofEpochMilli(timestamp).atZone(ZoneId.of("UTC")); return Row.of(Timestamp.from(zonedDateTime.toInstant()), value.get("key").asText(), value.get("value").asText()); }), $("timestamp"), $("key"), $("value")); ``` 在这个示例中,`JSONKeyValueDeserializationSchema`用于将JSON格式的消息解析为`JsonNode`对象,并且从中获取时间戳。然后,使用`Instant.ofEpochMilli`将时间戳转换为Java 8的`Instant`对象,并将其转换为UTC时间。最后,使用`Timestamp.from`将`Instant`对象转换为Flink SQL Connector所需的`java.sql.Timestamp`类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值