FlinkSQL SPLIT_INDEX函数性能优化
使用场景
内置SPLIT_INDEX函数解析一个字符串的多个字段时,复用上次split的解析结果,提升计算性能。
使用限制
本章节仅适用于MRS 3.6.0-LTS及之后版本。
使用方法
配置Flink作业时,可通过在FlinkServer WebUI的Flink作业开发界面添加自定义参数“table.optimizing.split-index-optimization”为“true”开启SPLIT_INDEX函数性能优化,可参考创建FlinkServer作业。
CREATE TABLE datagen (
auction BIGINT,
bidder BIGINT,
price BIGINT,
channel VARCHAR,
url VARCHAR
)
WITH
('connector' = 'datagen');
CREATE TABLE blackhole (
auction BIGINT,
bidder BIGINT,
price BIGINT,
channel VARCHAR,
dir1 VARCHAR,
dir2 VARCHAR,
dir3 VARCHAR
)
WITH
('connector' = 'blackhole');
INSERT INTO
blackhole
SELECT
auction,
bidder,
price,
channel,
SPLIT_INDEX (url, '/', 3) as dir1,
SPLIT_INDEX (url, '/', 4) as dir2,
SPLIT_INDEX (url, '/', 5) as dir3
FROM
datagen;