更新时间:2025-12-10 GMT+08:00
分享

FlinkSQL SPLIT_INDEX函数性能优化

使用场景

内置SPLIT_INDEX函数解析一个字符串的多个字段时,复用上次split的解析结果,提升计算性能。

使用限制

本章节仅适用于MRS 3.6.0-LTS及之后版本。

使用方法

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

SQL示例
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;

相关文档