string_split
string_split函数,根据指定的分隔符将目标字符串拆分为子字符串,并返回子字符串列表。
语法说明
string_split(target, separator)
| 
        参数  | 
      
        数据类型  | 
      
        说明  | 
     
|---|---|---|
| 
        target  | 
      
        STRING  | 
      
        待处理的目标字符串。 
         说明: 
         
  | 
     
| 
        separator  | 
      
        VARCHAR  | 
      
        指定的分隔符,当前仅支持单字符分隔。  | 
     
示例
- 参考Kafka和Print创建flink opensource sql作业,输入以下作业运行脚本,提交运行作业。
    注意:创建作业时,在作业编辑界面的“运行参数”处,“Flink版本”选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。如下脚本中的加粗参数请根据实际环境修改。
CREATE TABLE kafkaSource ( target STRING, separator VARCHAR ) WITH ( 'connector' = 'kafka', 'topic' = 'KafkaTopic', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'properties.group.id' = 'GroupId', 'scan.startup.mode' = 'latest-offset', 'format' = 'json' ); CREATE TABLE printSink ( target STRING, item STRING ) WITH ( 'connector' = 'print' ); insert into printSink select target, item from kafkaSource, lateral table(string_split(target, separator)) as T(item);
 - 连接Kafka集群,向Kafka的topic中发送如下测试数据:
    
{"target":"test-flink","separator":"-"} {"target":"flink","separator":"-"} {"target":"one-two-ww-three","separator":"-"}即数据如下:
表2 测试源表数据和分隔符 target(STRING)
separator (VARCHAR)
test-flink
-
flink
-
one-two-ww-three
-
 - 查看输出结果。
    
- 方法一:
      
- 登录DLI管理控制台,选择“作业管理 > Flink作业”。
 - 在对应Flink作业所在行的“操作”列,选择“更多 > FlinkUI”。
 - 在FlinkUI界面,选择“Task Managers”,单击对应的任务名称,选择“Stdout”查看作业运行日志。
 
 - 方法二:如果在提交运行作业前“运行参数”选择了“保存作业日志”,可以通过如下操作查看。
      
- 登录DLI管理控制台,选择“作业管理 > Flink作业”。
 - 单击对应的Flink作业名称,选择“运行日志”,单击“OBS桶”,根据作业运行的日期,找到对应日志的文件夹。
 - 进入对应日期的文件夹后,找到名字中包含“taskmanager”的文件夹进入,下载获取taskmanager.out文件查看结果日志。
 
 
查询结果参考如下:+I(test-flink,test) +I(test-flink,flink) +I(flink,flink) +I(one-two-ww-three,one) +I(one-two-ww-three,two) +I(one-two-ww-three,ww) +I(one-two-ww-three,three)
即数据输出结果参考如下:
表3 结果表数据 target(STRING)
item(STRING)
test-flink
test
test-flink
flink
flink
flink
one-two-ww-three
one
one-two-ww-three
two
one-two-ww-three
ww
one-two-ww-three
three
 - 方法一: