DataWorks新版数据开发中的Flink SQL Streaming节点支持使用标准SQL语句定义实时任务处理逻辑。Flink SQL Streaming具有易用性、丰富的SQL支持、强大的状态管理及容错能力,兼容事件时间和处理时间,并可灵活扩展。该节点易于与Kafka、HDFS等系统集成,提供详尽的日志和性能监控工具。您只需在DataWorks项目中添加Flink SQL Streaming任务并编写SQL语句即可开始实时数据处理。本文将介绍如何在DataWorks开发Flink SQL Streaming节点任务,并通过DataWorks完成Flink实时数据处理。
前提条件
已在管理中心绑定实时计算Flink版计算资源。详情请参见创建工作空间并绑定计算资源。
已创建Flink SQL Streaming节点。
步骤一:开发Flink SQL Streaming节点
在Flink SQL Streaming节点编辑页面,执行如下开发操作,完成节点任务开发。
开发SQL代码
在SQL编辑区域开发任务代码,您可在代码中使用${变量名}的方式定义变量,并在节点编辑页面右侧实时配置的脚本参数中为该变量赋值。实现调度场景下代码的动态传参,调度参数使用详情,示例如下。
--创建源表datagen_source。
CREATE TEMPORARY TABLE datagen_source(
name VARCHAR
) WITH (
'connector' = 'datagen'
);
--创建结果表blackhole_sink。
CREATE TEMPORARY TABLE blackhole_sink(
name VARCHAR
) WITH (
'connector' = 'blackhole'
);
--将源表数据插入到结果表。
INSERT INTO blackhole_sink
SELECT
name
FROM datagen_source WHERE LENGTH(name) > ${name_length};
该示例参数name_length
对应的参数值为5
,通过设置该参数可以实现对人名长度小于5的数据进行过滤。
步骤二:配置Flink SQL Streaming节点
您可根据业务情况,参照下面的参数描述信息配置Flink SQL Streaming节点任务。
配置Flink资源
您可在编辑页面右侧实时配置框的Flink资源信息中根据资源模式配置如下参数信息,详情请参见配置作业资源。
参数 | 参数描述 |
Flink 集群 | 在管理中心绑定的全托管Flink计算资源名称。 |
Flink 引擎版本 | 您可根据实际情况选择引擎版本。 |
资源组 | 选择与Flink网络连通的Serverless资源组。 |
资源模式支持以下两种模式,详情请参见配置作业资源。
请根据您选择的资源模式,参考下文配置相关参数。通过深入理解Flink架构,您可以更有效地进行参数配置,Flink架构详情请参见Flink Architecture | Apache Flink。 | |
基础模式 | |
Job Manager CPU | 根据Flink的最佳实践,JobManager至少需要0.5核CPU和2GiB内存来确保稳定运行,建议配置为1核CPU和4 GiB内存,最大不超过16核CPU。具体配置应根据集群规模和作业复杂度调整。 |
Job Manager Memory | JobManager的内存配置影响其处理调度和管理任务的能力,推荐配置范围是2 GiB到64 GiB,以确保稳定高效的运行。具体大小应根据集群规模和作业需求调整。 |
Task Manager CPU | TaskManager的CPU资源配置影响其任务处理能力。根据Flink的最佳实践,建议配置至少0.5核CPU和2 GiB内存,推荐1核CPU和4 GiB内存,最大不超过16核CPU。具体配置应依据实际需求调整。 |
Task Manager Memory | TaskManager的内存配置决定了其处理任务的数据量和性能。为了确保任务稳定执行和高效处理,内存大小至少应为2 GiB,最大可设置为64 GiB。 |
并发度 | 决定了Flink作业中任务的并行执行数量,较高的并发度可以提高处理速度和资源利用率,您需要根据集群资源和作业特性进行合理设置。 |
每个TaskManager Slot数 | 每个TaskManager的Slot数决定了它可以并行执行的任务数量,您可通过调整Slot配置优化资源利用和作业的并行处理能力。 |
专家模式 | |
Job Manager CPU | 根据Flink的最佳实践,JobManager至少需要0.25核CPU和1 GiB内存来确保稳定运行,最大不超过16核CPU。具体配置应根据集群规模和作业复杂度调整。 |
Job Manager Memory | JobManager的内存配置影响其处理调度和管理任务的能力,推荐配置范围是1 GiB到64 GiB,以确保稳定高效的运行。具体大小应根据集群规模和作业需求调整。 |
每个TaskManager Slot数 | 每个TaskManager的Slot数决定了它可以并行执行的任务数量,您可通过调整Slot配置优化资源利用和作业的并行处理能力。 |
多SSG模式 | 默认情况下,所有算子都放在一个Slot共享组内,因此您无法为每个算子单独修改资源配置。如果您需要对单独的算子设置资源,需要开启多SSG模式后让每个算子有自己独立的Slot,这样就可以直接在对应的Slot上设置算子的资源。 |
(可选)配置脚本参数
您可在右侧导航栏的实时配置框的脚本参数中单击添加参数,并编辑相应的参数名、参数值信息,方便在代码中动态使用。
(可选)配置Flink运行参数
您可在右侧导航栏的实时配置框的Flink运行参数中配置如下参数信息,详情请参见配置作业部署信息。
参数 | 描述 |
系统检查点间隔 | 配置该参数决定了Flink作业状态快照的频率,较短的间隔可以减少故障恢复时间但会增加系统开销。如果不填写,将会关闭系统检查点。 |
两次系统检查点之间的最短时间间隔 | 配置该参数定义了Flink在连续检查点之间必须等待的最小时间,以防止过于频繁的检查点对系统性能造成影响。这确保了当系统检查点的最大并行度为1时,两次检查点之间存在一个最短的时间间隔。 |
State数据过期时间 | 配置该参数决定了Flink作业中状态数据在没有被访问或更新的情况下可以保留的最长时间,默认值为36小时,即作业状态信息将在36小时后自动过期并清除。以优化状态存储和资源使用。 重要 此处默认值根据云上最佳实践的经验值设置,与开源的默认值不同(开源默认值为0,表示状态信息永不过期)。 |
其它配置 | 支持Flink的其它运行参数配置,您可在此配置Flink的其它运行参数,例如: 说明 更多参数配置详情请参见配置作业部署信息。 |
完成任务配置后,单击保存节点任务。
步骤三:启动Flink SQL Streaming节点
发布Flink SQL Streaming节点。
任务需要发布至运维中心后才可执行,请参考界面引导对需要运行的Flink SQL Streaming节点执行发布操作。
说明发布操作会同步将任务发布至Flink vvp空间,您可在Flink vvp运维中心>作业运维中看到通过DataWorks发布的任务。
启动Flink SQL Streaming节点。
任务发布后,您可以单击发布到生产环境下方的去运维,在运维中心的
中找到需要启动的任务,单击任务操作列的启动按钮,启动并查看实时计算任务的运行情况。