系统检查点和作业快照的统称叫做状态集。本文为您详细介绍如何管理作业的状态集,包括创建、查看、删除和从指定状态恢复。

背景信息

概念详情
系统检查点

(对应Apache Flink社区的Checkpoint)

生命周期完全由Flink系统管理,用户无法进行手动创建和删除,只能查看其生成情况。作业会默认保留一个系统检查点作为作业恢复时可选择的状态集中的一部分。
作业快照

(对应Apache Flink社区的Savepoint)

生命周期完全由用户管理,具体表现在以下方面:
  • 由用户在作业运行中或者结束时触发,或使用VVP平台进行单次或者定时触发。
  • 删除也是由用户手工或使用VVP平台进行单次或者定时触发完成。
  • 在作业启动时,可以基于某个作业快照进行作业状态恢复。
说明 当配置为定时生成或清理时,系统是根据用户配置的规则进行,因此也属于用户管理。
针对系统检查点和作业快照,支持您进行以下操作,具体的使用场景和文档链接如下表所示。
操作使用场景文档链接
手动创建作业快照如果您需要在某个特定时间(作业运行时或者停止时)手动创建一个作业快照,并希望从该快照恢复作业,则可以手动创建作业快照。
重要
  • 手动创建的作业快照,只能手动删除,无法通过自动清理规则删除。
  • 作业停止时选择停止前创建一次快照,可以减少需要回追的数据,但会导致停止的时间变长。
配置定时自动创建作业快照如果您需要系统可以自动定时创建作业快照,则可以配置作业快照创建周期。保存该规则后,作业运行过程中,系统会根据此周期来自动创建作业快照,无需您进行手动创建。配置定时自动创建作业快照
查看系统检查点和作业快照生成总览您可以在总览处,了解系统检查点和作业快照的生成历史,通过生成状态和相关时间快速了解作业状态的保存情况。查看状态生成总览
从(其他作业)指定快照恢复作业如果您需要从指定快照恢复作业,则可以指定作业快照,进行作业恢复。
说明 支持作业间快照的共享,此时您需要满足作业间的状态的兼容性。例如,进行双跑测试。
从(其他作业)指定快照恢复作业
配置作业快照自动清理规则如果您需要系统可以自动清理作业快照,不再人工手动删除快照,则可以配置作业快照保存个数或是保存时间信息。保存该规则后,作业运行过程中,系统会根据此规则自动清理快照。
说明
  • 自动清理不包含手动触发生成的作业快照,手动触发的快照只能手动删除。
  • 如果作业长期停止,则作业启动时,系统会根据之前设置的清理规则进行作业快照清理。
配置作业快照自动清理规则
手动删除指定作业快照作业停止前不再自动删除您手动创建的作业快照,因此您需要定时删除过时的作业快照。否则会导致不必要的OSS存储空间占用,进而引发不必要的存储费用。手动删除指定作业快照
设置State相关参数设置流状态存储系统、SQL作业的State TTL和作业快照过程中产生的临时数据是否储存在本地磁盘等相关参数。设置State相关参数

手动创建作业快照

说明运行中的作业支持手动创建作业快照。
  1. 进入目标作业快照创建界面。
    1. 登录实时计算控制台
    2. Flink全托管页签,单击对应工作空间操作列下的控制台
    3. 在左侧导航栏上,选择应用 > 作业运维
    4. 单击目标作业名称。
  2. 在页面右上角,单击快照
  3. 选择快照格式,并填写快照描述。
    创建快照
  4. 单击创建

配置定时自动创建作业快照

  1. 进入状态集管理入口。
    1. 登录实时计算控制台
    2. Flink全托管页签,单击对应工作空间操作列下的控制台
    3. 在左侧导航栏上,选择应用 > 作业运维
    4. 单击目标作业名称。
    5. 单击状态集管理
  2. 配置页签,打开作业快照定时生成开关和设置周期。
    定时生成
    说明 最小间隔为10分钟。如果输入的Cron表达式小于10分钟,则系统默认按10分钟触发。
    1. 打开作业快照定时自动生成开关。
    2. 设置时间周期。
      您可以单击快捷设置,直接选择合适的时间周期。也可以利用Cron表达式手动填写周期信息。
      即先单击目标域,然后修改对应的取值。依次修改完所有的域值。Cron表达式中5个域的取值及支持的特殊字符如下表所示。
      是否必须取值范围特殊字符
      分钟[0, 59]* , - /
      小时[0, 23]* , - /
      [1, 31]* , - /
      [1, 12]或[JAN, DEC]* , - /
      [1, 7]或[MON, SUN]。
      说明 如果您使用[1, 7]表达方式,1代表星期一,7代表星期日。
      * , - /
      每个域都支持一定数量的特殊字符,每个特殊字符有其特殊含义,详情如下表所示。
      特殊字符含义示例
      *所有可能的值。在月域中,*表示每个月;在星期域中,*表示星期的每一天。
      ,列出枚举值。在分钟域中,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执行任务。
  3. 单击保存更改

查看状态生成总览

  1. 进入状态集管理入口。
    1. 登录实时计算控制台
    2. Flink全托管页签,单击对应工作空间操作列下的控制台
    3. 在左侧导航栏上,选择应用 > 作业运维
    4. 单击目标作业名称。
    5. 单击状态集管理
  2. 总览页签,查看以下信息。
    类别总览信息
    系统检查点可以查看上次成功和失败的系统检查点信息,包括ID、完成时间、持续时间和全量存储大小。
    作业快照可以查看上次成功和失败的作业快照信息,包括快照ID、完成时间、持续时间或失败时间。

从(其他作业)指定快照恢复作业

说明已停止的作业支持从指定快照恢复作业。如果您的作业为运行中,则需要先停止作业。
  1. 进入状态集管理入口。
    1. 登录实时计算控制台
    2. Flink全托管页签,单击对应工作空间操作列下的控制台
    3. 在左侧导航栏上,选择应用 > 作业运维
    4. 单击目标作业名称。
    5. 单击状态集管理
  2. 历史页签,向下滑动鼠标。
  3. 作业快照生成历史列表中,找到目标快照。
  4. 单击目标快照操作列的从该快照恢复作业
  5. 作业启动配置对话框,配置作业启动信息。
    配置详情请参见作业启动

配置作业快照自动清理规则

  1. 进入状态集管理入口。
    1. 登录实时计算控制台
    2. Flink全托管页签,单击对应工作空间操作列下的控制台
    3. 在左侧导航栏上,选择应用 > 作业运维
    4. 单击目标作业名称。
    5. 单击状态集管理
  2. 配置页签,配置定时自动清理规则。
    定时自动清理
    1. 打开作业快照定时自动清理开关。
    2. 配置历史快照保存个数历史快照保存最长时间
      满足个数和保存时长任意一个条件,Flink作业运行中即会进行快照清理。
  3. 单击保存更改

手动删除指定作业快照

  1. 进入状态集管理入口。
    1. 登录实时计算控制台
    2. Flink全托管页签,单击对应工作空间操作列下的控制台
    3. 在左侧导航栏上,选择应用 > 作业运维
    4. 单击目标作业名称。
    5. 单击状态集管理
  2. 历史页签,鼠标向下滑动。
  3. 作业快照生成历史列表中,找到目标快照。
  4. 在目标快照的操作列,选择更多 > 删除此快照
  5. 单击确定

设置State相关参数

  1. 进入目标作业运维页面。
    1. 登录实时计算控制台
    2. Flink全托管页签,单击对应工作空间操作列下的控制台
    3. 在左侧导航栏上,选择应用 > 作业运维
    4. 单击目标作业名称。
  2. 单击返回开发
  3. 在页面右侧高级配置面板的更多Flink配置中,添加代码后保存生效,代码示例如下。
    state.backend.incremental: true
    table.exec.state.ttl: 129600000

    Flink全托管可以设置的基础参数和高级参数详情请参见企业级状态后端存储配置