更新时间:2024-04-29 GMT+08:00

开发实时处理单任务Flink SQL作业

对已新建的作业进行开发和配置。

开发单任务模式的实时处理Flink SQL作业,请您参考开发SQL脚本配置作业参数保存作业模板章节。

前提条件

  • 新建作业
  • 当前用户已锁定该作业,否则需要通过“抢锁”锁定作业后才能继续开发作业。新建或导入作业后默认被当前用户锁定,详情参见编辑锁定功能

开发SQL脚本

  1. 参考访问DataArts Studio实例控制台登录DataArts Studio管理控制台。
  2. DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
  3. 在数据开发主界面的左侧导航栏,选择数据开发 > 作业开发
  4. 在作业目录中,双击单任务模式作业名称,进入作业开发页面。
  5. 在SQL编辑器右侧,单击“基本信息”,可以配置作业的基本信息、属性和高级信息等。单任务SQL作业的基本信息如表1所示,属性如表2所示,高级信息如表3所示。
    表1 作业基本信息

    参数

    说明

    责任人

    自动匹配创建作业时配置的作业责任人,此处支持修改。

    执行用户

    当“作业调度身份是否可配置”设置为“是”,该参数可见。

    执行作业的用户。如果输入了执行用户,则作业以执行用户身份执行;如果没有输入执行用户,则以提交作业启动的用户身份执行。

    作业委托

    当“作业调度身份是否可配置”设置为“是”,该参数可见。

    配置委托后,作业执行过程中,以委托的身份与其他服务交互。

    作业优先级

    自动匹配创建作业时配置的作业优先级,此处支持修改。

    实例超时时间

    配置作业实例的超时时间,设置为0或不配置时,该配置项不生效。如果您为作业设置了异常通知,当作业实例执行时间超过超时时间,将触发异常通知,发送消息给用户,作业不会中断,继续运行。

    实例超时是否忽略等待时间

    配置实例超时是否忽略等待时间。

    如果勾选上,表示实例运行时等待时间不会被计入超时时间,可前往默认项设置修改此策略。

    如果未选上,表示实例运行时等待时间会被计入超时时间。

    自定义字段

    配置自定义字段的参数名称和参数值。

    作业标签

    配置作业的标签,用以分类管理作业。

    单击“新增”,可给作业重新添加一个标签。也可选择管理作业标签中已配置的标签。

    表2 单任务作业属性信息

    属性

    说明

    Flink SQL属性

    Flink作业名称

    输入Flink作业名称。

    系统支持Flink作业名称按照工作空间-作业名称格式自动填入。

    说明:

    只能包含英文字母、数字、中划线和下划线。最大只能输入64个字符。

    MRS集群名

    选择MRS集群名称。

    说明:

    单任务Flink SQL目前支持的MRS集群版本是MRS 3.2.0-LTS.1及以上版本。

    运行程序参数

    配置作业运行参数。

    该参数为本次执行的作业配置相关优化参数(例如线程、内存、CPU核数等),用于优化资源使用效率,提升作业的执行性能。

    注意:

    系统支持实时Flink SQL作业运行前能够查询历史checkpoint,并选择从指定checkpoint启动。要使Flink Checkpoin生效,需要配置两个运行参数:

    • 用来控制checkpoint间隔

      -yD:execution.checkpointing.interval=1000

    • 用来控制保留的checkpoint数量

      -yD:state.checkpoints.num-retained=10

      查询checkpoint列表时,配置-s参数,鼠标单击参数值输入框,checkpoint列表参数值会自动弹出。

    说明:

    若集群为MRS 1.8.7版本或MRS 2.0.1之后版本,需要配置此参数。

    单击“选择模板”,选择已创建好的脚本模板,系统支持可以引用多个模板。创建模板的详细操作请参见配置模板

    MRS Flink作业的运行程序参数,请参见《MapReduce用户指南》中的运行Flink作业

    Flink作业执行参数

    配置Flink作业执行参数。

    Flink程序执行的关键参数,该参数由用户程序内的函数指定。多个参数间使用空格隔开。

    MRS资源队列

    选择已创建好的MRS资源队列。

    需要先在数据安全服务队列权限功能中,配置对应的队列后,才能在此处选择到已配置的队列。当有多处同时配置了资源队列时,此处配置的资源队列为最高优先级。

    重跑策略

    • 从上一个检查点重跑
    • 重新启动

    输入数据路径

    设置输入数据路径,系统支持从HDFS或OBS的目录路径进行配置。

    输出数据路径

    设置输出数据路径,系统支持从HDFS或OBS的目录路径进行配置。

    表3 高级参数

    参数

    是否必选

    说明

    作业状态轮询时间(秒)

    设置轮询时间(30~60秒、120秒、180秒、240秒、300秒),每隔x秒查询一次作业是否执行完成。

    作业运行过程中,根据设置的作业状态轮询时间查询作业运行状态。

    最长等待时间

    设置作业执行的超时时间,如果作业配置了重试,在超时时间内未执行完成,该作业将会再次重试。

    说明:

    如果作业一直处于启动中状态,没有成功开始运行,超时后作业会被置为失败。

    失败重试

    作业执行失败后,是否重新执行作业。

    • 是:重新执行作业,请配置以下参数。
      • 超时重试
      • 最大重试次数
      • 重试间隔时间(秒)
    • 否:默认值,不重新执行作业。
      说明:

      如果作业节点配置了重试,并且配置了超时时间,该节点执行超时后,系统支持再重试。

      当节点运行超时导致的失败不会重试时,您可前往“默认项设置”修改此策略。

      当“失败重试”配置为“是”才显示“超时重试”。

  6. 在SQL编辑器中输入SQL语句,支持输入多条SQL语句。
    • SQL语句之间以“;”分隔。如果其它地方使用“;”,请通过“\”进行转义。例如:
      select 1;
      select * from a where b="dsfa\;";  --example 1\;example 2.
    • 脚本内容大小不能超过16MB。
    • 使用SQL语句获取的系统日期和通过数据库工具获取的系统日期是不一样,查询结果存到数据库是以YYYY-MM-DD格式,而页面显示查询结果是经过转换后的格式。
    为了方便脚本开发,数据开发模块提供了如下能力:
    • 脚本编辑器支持使用如下快捷键,以提升脚本开发效率。
      • F8:运行
      • F9:停止
      • Ctrl + /:注释或解除注释光标所在行或代码块
      • Ctrl + Z:撤销
      • Ctrl + F:查找
      • Ctrl + Shift + R:替换
      • Ctrl + X:剪切
      • Ctrl + S:保存
      • Alt + 鼠标拖动:列模式编辑,修改一整块内容
      • Ctrl + 鼠标点选:多列模式编辑,多行缩进
      • Shift + Ctrl + K:删除当前行
      • Ctrl + →或Ctrl + ←:向右或向左按单词移动光标
      • Ctrl + Home或Ctrl + End:移至当前文件的最前或最后
      • Home或End:移至当前行最前或最后
      • Ctrl + Shift + L:鼠标双击相同的字符串后,为所有相同的字符串添加光标,实现批量修改
      • Ctrl + D:删除一行
      • Shift + Ctrl + U:解锁
      • Ctrl + Alt + K:同词选择
      • Ctrl + B:格式化
      • Ctrl + Shift + Z:重做
      • Ctrl + Enter:执行所选行/选中内容
      • Ctrl + Alt + F:标记
      • Ctrl + Shift + K:查找上一个
      • Ctrl + K:查找下一个
      • Ctrl + Backspace:删除左侧单词
      • Ctrl + Delete:删除右侧单词
      • Alt + Backspace:删除至行首
      • Alt + Delete:删除至行尾
      • Alt + Shift-Left:选择行首
      • Alt + Shift-Right:选择行尾
    • 支持脚本参数。

      在SQL语句中直接写入脚本参数,然后在编辑器右侧的“参数”处选择“更新脚本参数”。也可以直接配置该作业脚本的参数与常量。

      脚本示例如下,其中str1是参数名称,只支持英文字母、数字、“-”、“_”、“<”和“>”,最大长度为16字符,且参数名称不允许重名。

      select ${str1} from data;
  7. (可选)在编辑器上方,单击“格式化”,格式化SQL语句。
  8. 在编辑器上方,单击,保存该作业并进行提交。

配置作业参数

作业参数为全局参数,可用于作业中的任意节点。操作方法如下:

单击编辑器右侧的“参数”,展开配置页面,配置如表4所示的参数。

表4 作业参数配置

功能

说明

变量

新增

单击“新增”,在文本框中填写作业参数的名称和参数值。

  • 参数名称

    名称只能包含字符:英文字母、数字、中划线和下划线。

  • 参数值
    • 字符串类的参数直接填写字符串,例如:str1
    • 数值类的参数直接填写数值或运算表达式。

参数配置完成后,在作业中的引用格式为:${参数名称}

编辑参数表达式

在参数值文本框后方,单击,编辑参数表达式,更多表达式请参见表达式概述

修改

在参数名和参数值的文本框中直接修改。

掩码显示

在参数值为密钥等情况下,从安全角度,请单击将参数值掩码显示。

删除

在参数值文本框后方,单击,删除作业参数。

常量

新增

单击“新增”,在文本框中填写作业常量的名称和参数值。

  • 参数名称

    名称只能包含字符:英文字母、数字、中划线和下划线。

  • 参数值
    • 字符串类的参数直接填写字符串,例如:str1
    • 数值类的参数直接填写数值或运算表达式。

参数配置完成后,在作业中的引用格式为:${参数名称}

编辑参数表达式

在参数值文本框后方,单击,编辑参数表达式,更多表达式请参见表达式概述

修改

在参数名和参数值的文本框中直接修改,修改完成后,请保存。

删除

在参数值文本框后方,单击,删除作业常量。

工作空间环境变量

查看工作空间已配置的变量和常量。

单击“作业参数预览”页签,展开预览页面,配置如表5所示的参数。

表5 作业参数预览

功能

说明

当前时间

仅单次调度才显示。系统默认为当前时间。

事件触发时间

仅事件驱动调度才显示。系统默认为事件触发时间。

周期调度

仅周期调度才显示。系统默认为调度周期。

具体时间

仅周期调度才显示。周期调度配置的具体运行时间。

起始日期

仅周期调度才显示。周期调度的生效时间。

后N个实例

作业运行调度的实例个数。

  • 单次调度场景默认为1。
  • 事件驱动调度场景默认为1。
  • 周期调度场景

    当实例数大于10时,系统最多展示10个日期实例,系统会自动提示“当前参数预览最多支持查看10个实例”。

在作业参数预览中,如果作业参数配置存在语法异常情况系统会给出提示信息。

如果参数配置了依赖作业实际运行时产生的数据,参数预览功能中无法模拟此类数据,则该数据不展示。

保存作业

作业配置完成后,请执行以下操作:

  1. 单击画布上方的运行按钮,运行作业。
  2. 运行完成后,单击画布上方的保存按钮,保存作业的配置信息。

    保存后,在右侧的版本里面,会自动生成一个保存版本,支持版本回滚。保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。

模板

在开发Flink SQL单任务实时处理作业时,系统支持可以引用脚本模板。创建模板的详细操作请参见配置模板,脚本模板的使用场景指导请参见引用脚本模板和参数模板的使用介绍