flink常用参数及介绍

Table 和 SQL API 的配置参数,Hints的用法

执行配置选项

参数介绍
table.exec.async-lookup.buffer-capacity异步查找连接可以触发的异步 i/o 操作的最大数量。
table.exec.async-lookup.timeout异步操作完成的异步超时。
table.exec.disabled-operators主要用于测试。以逗号分隔的运算符名称列表,每个名称代表一种禁用的运算符。可以禁用的运算符包括“NestedLoopJoin”、“ShuffleHashJoin”、“BroadcastHashJoin”、“SortMergeJoin”、“HashAgg”、“SortAgg”。默认情况下没有操作被禁用。
table.exec.mini-batch.allow-latency最大延迟可用于 MiniBatch 缓冲输入记录。MiniBatch 是一种缓冲输入记录以减少状态访问的优化。MiniBatch 以允许的延迟间隔和达到最大缓冲记录数时触发。注意:如果 table.exec.mini-batch.enabled 设置为 true,则其值必须大于零。
table.exec.mini-batch.enabled指定是否启用 MiniBatch 优化。MiniBatch 是一种缓冲输入记录以减少状态访问的优化。默认情况下禁用。要启用此功能,用户应将此配置设置为 true。注意:如果启用了小批量,则必须设置“table.exec.mini-batch.allow-latency”和“table.exec.mini-batch.size”。
table.exec.mini-batch.sizeMiniBatch 可以缓冲的最大输入记录数。MiniBatch 是一种缓冲输入记录以减少状态访问的优化。MiniBatch 以允许的延迟间隔和达到最大缓冲记录数时触发。注意:MiniBatch 目前仅适用于非窗口聚合。如果 table.exec.mini-batch.enabled 设置为 true,则其值必须为正数。

详情见官网:https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/dev/table/config/

SQL Hints的使用

SQL hints 是和 SQL 语句一起使用来改变执行计划的。
SQL hints 一般可以用于以下:
增强 planner:没有完美的 planner,所以实现 SQL hints 让用户更好地控制执行是非常有意义的;
增加元数据(或者统计信息):如"已扫描的表索引"和"一些混洗键(shuffle keys)的倾斜信息"的一些统计数据对于查询来说是动态的,用 hints 来配置它们会非常方便,因为我们从 planner 获得的计划元数据通常不那么准确;
算子(Operator)资源约束:在许多情况下,我们会为执行算子提供默认的资源配置,即最小并行度或托管内存(UDF 资源消耗)或特殊资源需求(GPU 或 SSD 磁盘)等,可以使用 SQL hints 非常灵活地为每个查询(非作业)配置资源。
1.3.1.SQL hints配置参数的使用
hints让用户可以通过动态参数的形式灵活地设置表的属性参数,覆盖或者追加元表的 WITH (…) 语句内定义的 table options。使用hints方式配置的参数的优先级最高。
基本语法为:
table_name /*+ OPTIONS(‘k1’=‘v1’, ‘aa.bb.cc’=‘v2’) */

使用示例如下:
– 覆盖SQL语句中元表的部分with参数

insert into kafkatohive_test_table
/*+options('sink.partition-commit.policy.kind'='metastore,success-file'
,'sink.partition-commit.trigger'='process-time'
,'sink.partition-commit.delay'='1 h'
)*/
select content, DATE_FORMAT(CURRENT_TIMESTAMP,'yyyyMMdd') as dt
from kafkatohive_test_kafka;
-- 在同一个计算任务中,对同一个表设置不同的属性参数
insert into test_kafka1
select content, DATE_FORMAT(CURRENT_TIMESTAMP,'yyyyMMdd') as dt
from test_kafka/*+options(' scan.startup.mode '=' latest-offset '
,' properties.group.id '='test1')*/;
insert into test_kafka2
select content, DATE_FORMAT(CURRENT_TIMESTAMP,'yyyyMMdd') as dt
from test_kafka/*+options(' scan.startup.mode '=' earliest-offset '
,' properties.group.id '='test2')*/;

SQL hints和SET语句配置参数的使用区别

使用hints方式和set方式均可以配置元表的部分with参数,其中不支持的参数已在下列参数列表中备注,用来改变SQL语句的执行计划。两者区别在于:
使用hints可以动态的配置元表的属性参数,其配置的参数的优先级要高于set方式配置的参数。
使用set语句还可以配置生成计算列,而hints方式则不能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink SQL中,常用配置包括:regular join、Split Distinct优化方法、LocalGlobal优化、MiniBatch等。 regular join是Flink SQL常用的连接操作,包括inner join、left join和right join。在regular join中,左右表的数据都会一直保存在状态里,不会清理。如果需要清理数据,可以设置TTL(Time-To-Live)或使用Flink SQL的interval join。 Split Distinct优化方法是一种优化方法,可以用于处理包含UDAF(User-Defined Aggregation Function)的Flink SQL语句。但目前在包含UDAF的Flink SQL中不能使用Split Distinct优化方法。 LocalGlobal优化是Flink SQL中的一种优化策略。该优化策略可以将聚合操作拆分为两个GROUP聚合操作,并参与LocalGlobal优化。这个功能在Flink 1.9.0版本及以上版本才支持。 MiniBatch是Flink SQL中的一种机制,可以将输入数据分批处理,以减少资源消耗。开启MiniBatch需要依赖于MiniBatch的参数设置。常用的MiniBatch参数包括: - `table.exec.mini-batch.enabled`:是否开启MiniBatch,默认为false。 - `table.exec.mini-batch.allow-latency`:批量输出的间隔时间,用于控制数据处理的延迟。 - `table.exec.mini-batch.size`:每个批次最多缓存数据的条数,可以根据需求进行调整。 除了上述常用配置外,还可以根据具体需求设置其他参数,如聚合策略`table.optimizer.agg-phase-strategy`,用于控制聚合操作的执行策略。默认为AUTO,还支持TWO_PHASE(使用LocalGlobal两阶段聚合)和ONE_PHASE(仅使用Global一阶段聚合)两种策略。 示例代码中展示了如何设置这些参数: ``` // 初始化table environment TableEnvironment tEnv = ... // 获取tableEnv的配置对象 Configuration configuration = tEnv.getConfig().getConfiguration(); // 设置参数: // 开启MiniBatch configuration.setString("table.exec.mini-batch.enabled", "true"); // 批量输出的间隔时间 configuration.setString("table.exec.mini-batch.allow-latency", "5 s"); // 防止OOM,设置每个批次最多缓存数据的条数,可以设为2万条 configuration.setString("table.exec.mini-batch.size", "20000"); // 开启LocalGlobal configuration.setString("table.optimizer.agg-phase-strategy", "TWO_PHASE"); ``` 综上所述,这些是Flink SQL常用配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Flink 优化(六) --------- FlinkSQL 调优](https://blog.csdn.net/m0_51111980/article/details/130102786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值