FLINK SQL 任务参数

server/2024/10/15 15:31:06/

在Flink SQL任务中,参数配置对于任务的性能和稳定性至关重要。以下是对运行时参数、优化器参数和表参数的详细解析:

一、运行时参数

运行时参数主要影响Flink作业在执行过程中的行为。以下是一些关键的运行时参数:

  1. 并行度(Parallelism):
    • 决定了Flink作业可以同时处理的数据量。
    • 通过增加并行度,可以加快数据处理速度,但同时也会增加资源消耗。
    • 应根据集群规模和数据量来合理设置并行度,避免设置过高导致资源竞争和调度延迟。
  2. 状态后端(State Backend):
    • Flink使用状态后端来存储和管理作业的状态。
    • 选择合适的状态后端(如RocksDB)可以提高状态访问性能。
  3. 检查点(Checkpoint):
    • Flink用于实现容错的一种机制。
    • 合理配置检查点间隔和模式可以提高作业的可靠性,但也会增加资源消耗。
  4. 缓冲区大小(Buffer Size):
    • Flink SQL查询可能涉及与外部系统的数据交换,这时缓冲区的设置就变得很重要。
    • 应根据数据的大小和交换频率来调整缓冲区大小,以减少数据传输和内存消耗。
  5. 异步查询关联:
    • 包括缓存容量和异步超时时间等参数。
  6. 微批处理:
    • 批量访问或更新一次状态,减少对状态的访问次数和时间。
    • 相关参数如table.exec.mini-batch.allow-latency和table.exec.mini-batch.size。
  7. 键值状态保留时长:
    • 如distinct、groupby等运算会用到状态,通过设置无界流中的state.ttl,可以删除一段时间未被访问或更新的状态。
  8. 算子并行度:
    • 空闲数据源闲置检测,保证时间窗口可以正常推进。

二、优化器参数

优化器参数帮助Flink生成更优的执行计划,以下是一些关键的优化器参数:

  1. 2阶段聚合(Two-Stage Aggregation):
    • 在数据倾斜的场景下,先聚合再传递给下游,以减少网络传输和数据倾斜的可能性。
  2. 分桶聚合(Bucket Aggregation):
    • 适用于去重聚合场景,如count(distinct userId)。
    • 将数据的key先打散到多个桶进行聚合,再对分桶中的数据最后聚合。
  3. 微批处理(Mini-Batch Processing):
    • 在GroupAggFunction处理每一条输入数据时,通过微批处理可以减少对状态的访问次数。
  4. 去重场景优化:
    • 如bitmap去重复用优化,通过Filter子句来实现去重场景BitMap复用。

三、表参数

表参数主要影响Flink SQL中表的定义和行为。以下是一些关键的表参数:

  1. 连接器参数:
    • 如数据源和数据目标的连接器参数,这些参数定义了如何连接到外部系统以及数据的格式和传输方式。
  2. 分区参数:
    • 定义了表的分区策略,如分区键、分区数量等。
  3. 格式参数:
    • 定义了数据的存储格式,如Avro、Parquet、CSV等。
  4. 主键和索引:
    • 定义了表的主键和索引,这些参数对于查询性能和数据一致性至关重要。
  5. table.exec.sink.keyed-shuffle:
    • 为解决向带有主键的表中写入数据时出现的分布式乱序问题,可以通过此参数来进行Hash Shuffle操作。

四、配置示例

以下是一个简单的Flink SQL任务参数配置示例:

sql">-- 运行时参数配置  
SET parallelism = 4;  
SET state.backend = rocksdb;  
SET checkpoint.interval = 10000;  -- 检查点间隔,单位为毫秒  
SET taskmanager.memory.process.size = 4096m;  -- TaskManager进程内存大小  -- 优化器参数配置  
SET table.exec.mini-batch.enabled = true;  
SET table.exec.mini-batch.allow-latency = 2s;  
SET table.exec.mini-batch.size = 100;  -- 微批处理大小  -- 表参数配置  
CREATE TABLE source_table (  id INT,  name STRING,  age INT,  PRIMARY KEY (id) NOT ENFORCED  
) WITH (  'connector' = 'kafka',  'topic' = 'source_topic',  'properties.bootstrap.servers' = 'localhost:9092',  'format' = 'json'  
);  CREATE TABLE target_table (  id INT,  total_age BIGINT,  PRIMARY KEY (id) NOT ENFORCED  
) WITH (  'connector' = 'jdbc',  'url' = 'jdbc:mysql://localhost:3306/testdb',  'table-name' = 'target_table',  'username' = 'root',  'password' = 'password'  
);

请注意,以上配置仅为示例,实际配置应根据具体需求和场景进行调整。在配置参数时,务必参考Flink官方文档和最佳实践,以确保配置的准确性和有效性。


http://www.ppmy.cn/server/132245.html

相关文章

[mysql]多表查询详解

我们如果要查询,我们就要用 SELECT .... FROM .... WHERE AND/OR/NOT #我们需要用过滤的条件来对数据进行筛选,不然会有很多多余数据 ORDER BY (ASC/DESC)#排序 LIMIT....,#是在几个有限的数据库管理系统里所以,PGsql,mysql,等 多表查询的意义 我们目前为止的查询语句…

【漏洞复现】万户OA-ezOFFICE upload.jsp 任意文件上传漏洞

免责声明: 本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严重后果…

数据结构-排序1

1.排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序…

巨日禄AI故事转漫画视频创作教程

【一】新建作品 添加剧本,从30多个画风中选择一个匹配文案的画风。如果拿不准可以参考样图。巨日禄可以一次性制作6000字,20分钟以上的视频。(第一次限制了1000字,仅为新用户更完整体验整个流程) 【二】选择画风 那文…

基础篇:带你打开Vue的大门(一)

学习目标: 理解Vue的基本概念:掌握Vue.js是什么,它的设计理念,以及它在现代Web开发中的应用。掌握Vue的基本语法:学习Vue的基础指令和语法,能够使用Vue构建简单的交互式界面。熟悉Vue组件化开发&#xff1…

C4T避风型电动采光排烟天窗(图集09J621-2)

C4T避风型电动采光排烟天窗是09J621-2《电动采光排烟天窗》图集中的一种窗型。也是一种现代化的建筑消防排烟通风采光设备,被广泛应用于多风地区厂房。 C4T避风型电动采光排烟天窗配有成品避风罩,该避风置由钢制骨架和彩色钢板构成,固定在电动…

centos的yum源网上下载找不到问题

然后找了大半天最后发现找的位置不对最好都找到的地址:centos-vault-7.6.1810-isos-x86_64安装包下载_开源镜像站-阿里云 因该去centos-vault这个目录下找就能找到centos是目前维护的目录 最新版去下面的地址 centos安装包下载_开源镜像站-阿里云

大模型时代产品经理攻略:成功必备的几点深度思考_ai时代先上车

随着人工智能技术的飞速发展,大模型时代已经到来,对产品经理提出了更高的要求和挑战。在这个新的时代背景下,产品经理需要不断思考和探索,以适应和引领市场的变化。以下是我对如何做好大模型时代的产品经理的几点思考:…