系统检查点(Checkpoint)和作业快照(Savepoint)统称为状态集。本文为您介绍如何管理作业的状态集,包括创建、查看、删除和从指定状态恢复。
背景信息
| 概念 | 详情 | 
| 系统检查点 (对应Apache Flink中的Checkpoint) | 生命周期完全由Flink系统管理,您可以配置系统检查点间隔、系统检查点超时时间和两次系统检查点间最短间隔,并查看其生成情况。但无法手动创建和删除系统检查点,作业会默认保留一个系统检查点作为作业恢复时可选择的状态集中的一部分。参数配置操作详情请参见配置作业部署信息。 | 
| 作业快照 (对应Apache Flink中的Savepoint) | 生命周期完全由用户管理,具体表现在以下方面: 
 说明  当配置为定时生成或清理时,系统是根据用户配置的规则进行,因此也属于用户管理。 | 
针对系统检查点和作业快照,支持您进行以下操作,具体的使用场景和文档链接如下表所示。
| 操作 | 使用场景 | 文档链接 | 
| 手动创建作业快照 | 如果您需要在某个特定时间(作业运行时或者停止时)手动创建一个作业快照,并希望从该快照恢复作业,则可以手动创建作业快照。 重要  
 | |
| 配置定时自动创建作业快照 | 如果您需要系统可以自动定时创建作业快照,则可以配置作业快照创建周期。保存该规则后,作业运行过程中,系统会根据此周期来自动创建作业快照,无需您进行手动创建。 | |
| 查看系统检查点和作业快照生成总览 | 您可以在总览处,了解系统检查点和作业快照的生成历史,通过生成状态和相关时间快速了解作业状态的保存情况。 | |
| 从(其他作业)指定快照恢复作业 | 如果您需要从指定快照恢复作业,则可以指定作业快照,进行作业恢复。 说明  支持作业间快照的共享,此时您需要满足作业间的状态的兼容性。例如,进行双跑测试。 | |
| 配置作业快照自动清理规则 | 如果您需要系统可以自动清理作业快照,不再人工手动删除快照,则可以配置作业快照保存个数或是保存时间信息。保存该规则后,作业运行过程中,系统会根据此规则自动清理快照。 说明  
 | |
| 手动删除指定作业快照 | 作业停止前不再自动删除您手动创建的作业快照,因此您需要定时删除过时的作业快照。否则会导致不必要的OSS存储空间占用,进而引发不必要的存储费用。 | |
| 设置State相关参数 | 设置流状态存储系统、SQL作业的State TTL和作业快照过程中产生的临时数据是否储存在本地磁盘等相关参数。 | 
手动创建作业快照
仅运行中的作业支持手动创建作业快照。
- 进入目标作业快照创建界面。 - 登录实时计算控制台。 
- 单击对应工作空间操作列下的控制台。 
- 在页面,单击目标作业名称。 
 
- 在页面右上角,单击创建快照。 
- 选择快照格式,并填写快照描述。  
- 单击创建。 
配置定时自动创建作业快照
- 进入状态集管理入口。 - 登录实时计算控制台。 
- 单击对应工作空间操作列下的控制台。 
- 在页面,单击目标作业名称。 
- 单击状态集管理。 
 
- 在配置页签,打开作业快照定时自动生成开关,并设置周期。 - 您可以单击快捷设置,直接选择合适的时间周期,也可以利用Cron表达式手动填写周期信息。即先单击目标域,然后修改对应的取值。依次修改完所有的域值。Cron表达式中5个域的取值及支持的特殊字符如下表所示。 - 域 - 是否必须 - 取值范围 - 特殊字符 - 分钟 - 是 - [0, 59] - * , - / - 小时 - 是 - [0, 23] - * , - / - 日 - 是 - [1, 31] - * , - / - 月 - 是 - [1, 12]或[JAN, DEC] - * , - / - 周 - 是 - [1, 7]或[MON, SUN]。 说明- 如果您使用[1, 7]表达方式,1代表星期一,7代表星期日。 - * , - / 说明- 最小间隔为10分钟。如果输入的Cron表达式小于10分钟,则系统默认按10分钟触发。 - 每个域都支持一定数量的特殊字符,每个特殊字符有其特殊含义,详情如下表所示。 - 特殊字符 - 含义 - 示例 - *- 所有可能的值。 - 在月域中, - *表示每个月;在星期域中,- *表示星期的每一天。- ,- 列出枚举值。 - 在分钟域中, - 5,20表示分别在5分钟和20分钟触发一次。- -- 范围。 - 在分钟域中, - 5-20表示从5分钟到20分钟之间每隔一分钟触发一次。- /- 指定数值的增量。 - 在分钟域中, - 0/15表示从第0分钟开始,每15分钟触发一次。在分钟域中- 3/20表示从第3分钟开始,每20分钟触发一次。- 以下为Cron表达式的取值示例。 - 示例 - 说明 - 15 10 * * *- 每天上午10:15执行任务。 - 0 12 * * *- 每天中午12:00执行任务。 - 0 10,14,16 * * *- 每天上午10:00点、下午14:00以及下午16:00执行任务。 - 0/30 9-17 * * *- 每天上午09:00到下午17:00时间段内每隔半小时执行任务。 - * 14 * * *- 每天下午14:00到下午14:59时间段内每隔1分钟执行任务。 - 0-5 14 * * *- 每天下午14:00到下午14:05时间段内每隔1分钟执行任务。 - 0/5 14 * * *- 每天下午14:00到下午14:55时间段内每隔5分钟执行任务。 - 0/5 14,18 * * *- 每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务。 - 0 12 * * WED- 每个星期三中午12:00执行任务。 - 15 10 15 * *- 每月15日上午10:15执行任务。 - 10,44 14 * 3 WED- 每年3月的每个星期三下午14:10和14:44执行任务。 
- 单击保存更改。 
查看状态生成总览
- 进入状态集管理入口。 - 登录实时计算控制台。 
- 单击对应工作空间操作列下的控制台。 
- 在页面,单击目标作业名称。 
- 单击状态集管理。 
 
- 在总览页签,查看以下信息。 - 类别 - 总览信息 - 系统检查点 - 可以查看上次成功和失败的系统检查点信息,包括ID、完成时间、持续时间和全量存储大小。 - 作业快照 - 可以查看上次成功和失败的作业快照信息,包括快照ID、完成时间、持续时间或失败时间。 
从(其他作业)指定快照恢复作业
仅已停止的作业支持从指定快照恢复作业。如果您的作业为运行中,则需要先停止作业。
配置作业快照自动清理规则
- 进入状态集管理入口。 - 登录实时计算控制台。 
- 单击对应工作空间操作列下的控制台。 
- 在页面,单击目标作业名称。 
- 单击状态集管理。 
 
- 在配置页签,打开作业快照定时自动清理开关,配置定时自动清理规则。 - 您可以配置历史快照保存个数和历史快照保存最长时间。满足个数和保存时长任意一个条件,Flink作业运行中即会进行快照清理。 
- 单击保存更改。 
手动删除指定作业快照
- 进入状态集管理入口。 - 登录实时计算控制台。 
- 单击对应工作空间操作列下的控制台。 
- 在页面,单击目标作业名称。 
- 单击状态集管理。 
 
- 在历史页签,作业快照列表中,找到目标快照。 
- 在目标快照的操作列,选择。 
- 单击确定。 
设置State相关参数
- 进入目标作业运维页面。 - 登录实时计算控制台。 
- 单击对应工作空间操作列下的控制台。 
- 在页面,单击目标作业名称。 
 
- 在部署详情页签,单击运行参数配置区域右侧的编辑。 
- 在其他配置中,添加代码后保存生效,代码示例如下。 - state.backend.incremental: true table.exec.state.ttl: 129600000- Flink可以设置的基础参数和高级参数详情请参见企业级状态后端存储配置。 
相关文档
- 实时计算Flink版系统检查点或作业快照相关的常见问题,请参见系统检查点或作业快照。 
- SQL修改所造成的兼容性影响详情,请参见SQL修改及兼容性。