更新时间:2024-12-11 GMT+08:00

FlinkSQL JSON_VALUE函数性能优化

本章节适用于MRS 3.5.0及以后版本。

使用场景

内置JSON_VALUE函数解析一个JSON item的多个字段时,复用上次JSON item的解析结果,提升算子性能。

使用方法

配置Flink作业时,可通过在FlinkServer WebUI的Flink作业开发界面添加自定义参数“table.optimizing.json-value-optimization”为“true”开启JSON_VALUE函数性能优化,可参考如何创建FlinkServer作业

SQL示例:
create table kafkaSource (
    msgValue STRING
) with (
    'connector' = 'kafka'
    ,'topic' = 'topic-1'
    ,'properties.bootstrap.servers' = 'Kafka的Broker实例业务IP:Kafka端口号'
    ,'properties.group.id' = 'group-1'
    ,'value.format' = 'raw'
    ,'scan.startup.mode' = 'group-offsets'
    ,'properties.auto.offset.reset' = 'earliest'
    ,'value.fields-include' = 'EXCEPT_KEY'
);
create table print (
    id STRING,
    name STRING
) with (
      'connector' = 'print'
);
INSERT INTO print
SELECT
    JSON_VAL(msgValue, '$.id'),
    JSON_VAL(msgValue, '$.name')
from kafkaSource;