Flink SQL支持添加提示(Hints),允许您手动影响执行计划的生成结果,从而优化SQL作业的执行。本文为您介绍如何使用SQL提示。
动态表选项提示
从VVR 4.x开始,您可以通过动态表选项来动态地制定或覆盖表选项,从而让这些表参数仅在Query级别的范围内生效。动态表选项的语法和示例,请参见动态表(dynamic table)选项。
查询提示
维表联接提示
维表联接提示(Lookup Join Hints)详情,请参见维表JOIN Hints 。
算子状态生命周期(State TTL)提示
通过为状态设置状态生命周期,可以显著减少算子状态的大小,从而增强系统稳定性和可靠性。算子状态生命周期设置的方式详情如下:
状态生命周期提示:为特殊的有状态算子设置算子粒度的状态生命周期。当前该方式仅适用于双流联接算子和分组聚合算子,具体的设置方式如下:
双流联接算子
VVR 8.0.7及以上版本:可以通过状态生命周期提示或双流JOIN hints的提示来实现。
VVR 8.0.1~VVR 8.0.6版本:仅支持通过双流JOIN hints的提示来实现。
分组聚合算子
VVR 8.0.7及以上版本:通过分组聚合状态生命周期提示实现,更多语法和示例请参见状态生命周期提示。
VVR 8.0.6及以前版本:不支持配置算子状态生命周期提示。
作业参数配置:设置作业参数来设置全局作业级别的状态生命周期,详情请参见table.exec.state.ttl。
专家模式:为有状态算子配置算子粒度的状态生命周期,详情请参见配置算子并发、Chain策略和TTL。
说明
算子状态生命周期设置生效的优先级从高到低依次是:专家模式、状态生命周期提示、作业参数配置。
相关文档
关于提示的基本能力详情,请参见SQL Hints。