news 2026/8/7 9:44:38

Flink SQL 的 JOB 管理语句SHOW / DESCRIBE / STOP(SQL CLI SQL Gateway 实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flink SQL 的 JOB 管理语句SHOW / DESCRIBE / STOP(SQL CLI SQL Gateway 实战)

1. JOB 语句能做什么?

官方定位很明确:

Job statements are used for management of Flink jobs.
(JOB 语句用于 Flink 作业管理。)

也就是说,你不需要跑到 Web UI 或 REST API 才能看作业/停作业,在 SQL CLI/Gateway 里也可以“就地管理”。

2. SQL CLI 实战:三连操作(SHOW → DESCRIBE → STOP)

2.1 SHOW JOBS:列出集群作业

FlinkSQL>SHOWJOBS;+----------------------------------+----------+---------+-------------------------+|job id|job name|status|starttime|+----------------------------------+----------+---------+-------------------------+|228d70913eab60dda85c5e7f78b5782c|myjob|RUNNING|2023-02-11T05:03:51.523|+----------------------------------+----------+---------+-------------------------+

输出一般包含:job id / job name / status / start time

2.2 DESCRIBE JOB:查看某个 job 的信息

FlinkSQL>DESCRIBEJOB'228d70913eab60dda85c5e7f78b5782c';+----------------------------------+----------+---------+-------------------------+|job id|job name|status|starttime|+----------------------------------+----------+---------+-------------------------+|228d70913eab60dda85c5e7f78b5782c|myjob|RUNNING|2023-02-11T05:03:51.523|+----------------------------------+----------+---------+-------------------------+

当你从SHOW JOBS拿到 job_id 后,下一步通常就是DESCRIBE JOB确认目标是不是你要操作的那个。

2.3 STOP JOB:停止作业(带 SAVEPOINT 示例)

先设置 savepoint 目录(也可以由集群配置提供):

FlinkSQL>SET'execution.checkpointing.savepoint-dir'='file:/tmp/';[INFO]Executestatement succeeded.

然后停止作业并触发 savepoint:

FlinkSQL>STOP JOB'228d70913eab60dda85c5e7f78b5782c'WITHSAVEPOINT;+-----------------------------------------+|savepointpath|+-----------------------------------------+|file:/tmp/savepoint-3addd4-0b224d9311e6|+-----------------------------------------+

执行后会返回savepoint path,这通常就是你后续“从 savepoint 恢复”的关键凭证(路径要保存好)。

3. 语法与关键点(官方语义梳理)

3.1 SHOW JOBS

SHOWJOBS

作用:显示 Flink 集群中的作业。
限制:只在 SQL CLI 或 SQL Gateway 可用


3.2 DESCRIBE / DESC JOB

{DESCRIBE|DESC} JOB'<job_id>'

作用:显示指定 job_id 的作业信息。
限制:只在 SQL CLI 或 SQL Gateway 可用


3.3 STOP JOB:停止作业(可选 SAVEPOINT、可选 DRAIN)

STOP JOB'<job_id>'[WITHSAVEPOINT][WITHDRAIN]
WITH SAVEPOINT:停止前做一次 Savepoint
  • 含义:在停止作业前执行一次 savepoint

  • savepoint 目录配置来源:

    • 可在集群配置里设置execution.checkpointing.savepoint-dir
    • 也可通过SET 语句设置(并且SET 的优先级更高

也就是:你在 SQL CLI 里SET了 savepoint-dir,就会覆盖集群默认值。

WITH DRAIN:在最后一次 checkpoint barrier 前把 watermark 提到最大

官方解释是:

Increase the watermark to the maximum value before the last checkpoint barrier. Use it when you want to terminate the job permanently.

直白理解(不展开超出原文的机制细节):

  • WITH DRAIN是一种“更倾向永久终止”的停止方式
  • 它会在停止前把 watermark 推到最大值(在最后一次 checkpoint barrier 之前)

注意:STOP JOB同样只在 SQL CLI 或 SQL Gateway 可用。

4. 最佳实践:生产里怎么用更稳

4.1 停作业前先确认目标:SHOW → DESCRIBE

不要直接 copy job_id 就 stop,建议固定流程:

1)SHOW JOBS;
2)DESCRIBE JOB '<job_id>';(确认名称、状态、启动时间等)

这样能显著减少“停错作业”的概率。

4.2 需要可恢复,优先用 WITH SAVEPOINT

很多生产场景停作业的真实诉求是:可恢复、可迁移、可升级
这时优先:

SET'execution.checkpointing.savepoint-dir'='file:/tmp/';STOP JOB'<job_id>'WITHSAVEPOINT;

并保存返回的savepoint path

4.3 临时变更 savepoint-dir:用 SET 覆盖集群默认

如果你只是临时想把 savepoint 输出到某个位置,不想改集群配置,直接在会话里:

SET'execution.checkpointing.savepoint-dir'='file:/tmp/';

官方明确:SET 的优先级更高

5. 常见坑点提醒

  • 限制坑SHOW JOBS / DESCRIBE JOB / STOP JOB只在SQL CLI / SQL Gateway可用,不要在普通 TableEnvironment 的 Java 程序里指望它们能跑通。
  • 路径坑:开启WITH SAVEPOINT时,别忘了 savepoint-dir 的来源与优先级(SET > cluster config)。
  • 语义坑WITH DRAIN是用于“永久终止”的场景(官方这么建议),不要把它当成普通 stop 的默认选项随手用。

6. 总结

Flink SQL 的 JOB 管理语句很少,但非常实用:

  • SHOW JOBS:列出集群作业

  • DESCRIBE JOB:查看指定作业

  • STOP JOB:停止作业

    • WITH SAVEPOINT:停止前做 savepoint,路径由execution.checkpointing.savepoint-dir决定(SET 优先)
    • WITH DRAIN:提升 watermark 到最大值,用于永久终止场景
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 17:34:11

Open-AutoGLM工作流监控实战指南(实时可视化监控体系搭建全解析)

第一章&#xff1a;Open-AutoGLM工作进度监控概述在大规模语言模型&#xff08;LLM&#xff09;自动化任务系统中&#xff0c;Open-AutoGLM 作为一个开源框架&#xff0c;致力于实现从任务调度、模型推理到结果反馈的全流程闭环管理。为了保障系统的稳定性与可维护性&#xff0…

作者头像 李华
网站建设 2026/8/7 21:30:43

别让“小眼镜”挡住清晰世界!儿童近视防控,家长必知的科学指南

小学里3个孩子就有1个近视&#xff0c;初中更是7成以上&#xff0c;高中超过8成——这不是危言耸听&#xff0c;而是我国儿童青少年视力健康的真实写照。作为家长&#xff0c;我们该如何守护孩子的明亮双眸&#xff1f;一、不同年龄段&#xff0c;近视防控有侧重1.学前阶段&…

作者头像 李华
网站建设 2026/8/7 21:30:36

AI赋能会议管理,Open-AutoGLM预约系统深度解析

第一章&#xff1a;AI赋能会议管理&#xff0c;Open-AutoGLM预约系统深度解析在智能化办公场景不断演进的背景下&#xff0c;会议管理正从传统人工协调向AI驱动的自动化系统转型。Open-AutoGLM作为一款基于大语言模型&#xff08;LLM&#xff09;的开源会议预约系统&#xff0c…

作者头像 李华
网站建设 2026/8/7 3:48:55

打开Simulink工程时总得先泡杯咖啡——电池模型搭建这事儿,手动调参太费劲。不过这次咱们直接用二阶RC等效电路模型开搞,毕竟既要考虑极化效应又要平衡计算量

锂离子电池soc估计 采用simulink全模块搭建 可得到辨识估计端电压与仿真端电压曲线 模型估计精度较好&#xff0c;可以完好运行电池端电压的数学表达式得先捋清楚&#xff1a; % 电池端电压方程 function V_terminal batteryModel(SOC, I, R0, R1, R2, C1, C2, tau1, tau2)V_o…

作者头像 李华
网站建设 2026/8/7 4:08:06

读懂HikariCP一百行代码,多线程就是个孙子

总结&#xff1a;Java届很难得有读百十行代码就能增加修炼的机会&#xff0c;这里有一个。通常&#xff0c;我在看书的时候一般不写代码&#xff0c;因为我的脑袋被设定成单线程的&#xff0c;一旦同时喂给它不同的信息&#xff0c;它就无法处理。但多线程对电脑来说就是小菜一…

作者头像 李华
网站建设 2026/8/7 15:28:05

SMP语言基础知识-应用系统,开发的痛点,开发者的痛点

上篇文章介绍了需求的来源和需求方的痛点&#xff0c;这些痛点会影响到应用系统开发的质量、时间和费用。 今天我们再来看看开发&#xff0c;看看开发的痛点和开发者的痛点。 这里的开发方是指直接参与应用系统开发的人员&#xff0c;主要是项目组人员&#xff0c;至于软件公司…

作者头像 李华