Flink 1.9 版本开源了很多 Blink 方面的功能,尤其是在 SQL 方面,这使得我们在开发 Flink 实时任务变得更加方便。目前 Blink SQL 支持了 Create Table 功能,以及维表的功能。我们的实时任务整体流程为,读取Kafka的数据,然后去关联 HBase 维表的数据,最后在输出到 Kafka 中,虽然整体流程跑通,但是其中也遇到了很多坑,这里记录一下,和大家一起分享,避免以后再遇到类似的坑。
Flink SQL Row 类型使用
Flink SQL Row 字段,整体你可以将其理解为一个 Map,Key 为字段的名称,Value 为字段的数据类型。你能够在里面再次定义你的数据类型,比如:
col Row< name varchar,age int,likes varchar,city varchar>col1 Row( name varchar,age int,likes varchar,city varchar)
上面定一个两个 Row 字段,一个是 col,一个是col1。你可以使用()或者也可以使用<>,这两个都是等价的。
一般我们会直接 Kafka 里面的数据,Kafka 的数据格式通常是 Json 格式,Json 数据你可以将其理解为一个具有数据模式的数据类型,但有一种情况,就是在 Json 数据中,会存在再次嵌套数据的情况,比如下面这种情况:
{"name" : "hello_world