数据归档与清理
更新时间:2024-07-09
DBSC 支持数据归档功能,您可以将不再使用的数据归档到另一个数据库中进行备份,以空出业务库的存储空间,优化性能。本功能支持一次性执行和周期性自动执行。
背景信息
在线数据运行一段时间后,随着数据量的显著增加,业务数据的写入、更新和查询性能可能会受到一定影响。同时,过去一段时间内的数据通常不再被频繁查询使用,但在数据库中却占用着存储空间。为了满足性能优化和在线存储空间的需求,我们经常需要对符合一定条件的数据进行归档管理,同时对已经归档的数据进行清理。
DBSC 的数据归档功能支持一次性或周期性的归档和清理功能,让您的业务库永远保持高性能稳定运行。
前提条件
- 实例已开启开启企业版。
- 需要归档的表中必须有时间字段。
- 目标数据库类型为 MySQL。
提交数据归档或归档+清理任务
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>数据归档与清理。
- 在数据归档与清理页面,单击页面中的创建归档与清理。
-
在创建归档与清理页面,按照下表进行配置。
参数 说明 任务名称 输入数据归档任务的名称,为了方便后续查找和管理,请尽量使用有意义的名称。最多支持 64 个字符。 备注(可选) 输入备注信息,例如针对该数据归档任务的用途描述。 策略 选择数据归档任务的策略,此处选择仅归档或归档+清理。支持如下三种: - 仅归档:对目标数据执行归档任务,将源库需要归档的数据复制到目标库保存。
- 归档+清理:先对目标数据执行归档,然后再删除源库中已归档的数据。
- 仅清理:该操作仅删除目标数据,不做归档处理。
源数据源 需要归档的数据所在的数据源和库(Schema)。 目标数据源 需要存储归档数据的数据源和库(Schema)。仅清理的情况下不可见。 频率 选择任务的执行频率。 - 单次执行:仅执行一次。
- 周期执行:创建周期性任务,根据您选定的周期循环执行。
时区 选择您数据源所在地域的时区。 周期 周期性任务需要选择,可按周或按月选择在每周的星期几或每月的几号执行任务。勾选每天代表每天执行一次。 启动时间 周期性任务需要选择,选择周期性任务在所选周期的几点执行任务。单击此刻将当前时间点设置为任务执行时间。 Optimize 策略 源数据源在进行数据清理后,存储空间不会自动释放,配置该选项可定期执行 Optimize 操作回收表空间。 选择执行多少次清理后,自动执行 Optimize 操作。 执行时长(1-24 小时) 周期性任务可选输入,限制任务的执行时长,单位为小时。例如,您可以设置归档任务于业务低峰期的 0 点开始执行,执行时长设置为 6 小时,则早上 6点时,即使任务没有执行完成,也会自动停止,避免影响业务。 数据冲突处理策略(仅 MySQL) 配置数据归档至目标端时,遇到数据冲突时的处理策略。 - 忽略:忽略当前造成冲突的操作,继续往下执行。
- 覆盖:覆盖目标数据。
-
单击下一步,跳转至选择对象页面,配置需要归档的数据。
参数 说明 系统变量 定义系统变量, $bizdate
变量将自动获取当前系统时间,您可以自定义该系统时间的格式。 该功能主要用于数据归档与清理任务中新建表的表名、WHERE 条件的书写等场景。例如,在目标创建一个新表用于储存归档数据时,将表名设置为new_table_${bizdate}
,当前日期为 2024-05-10,则表名会变成new_table_20240510
。源表名 选择源表中归档数据所在的表。 目标表名 选择目标表中,存储归档数据的表。该表的表结构需要和源表一致,如果不一致,您也可以单击右侧的映射与过滤手动进行表名和列名的映射。 单击右侧的图标,可以在目标库中新建一个表,您无需进行表名和列名的映射,系统会按照原表的表结构自动将归档数据存于该新表中。在指定表名时,您可以使用上面定义的系统变量,例如 new_table_${bizdate}
。时间字段 选择一个时间字段,作为判断数据是否需要归档的依据,该字段通常反映了该行数据生成的时间。例如,您订单表中的订单创建时间。 时间格式 如果时间字段中选择的时间字段数据类型为数值(BIGINT、INT)或字符串(CHAR、VARCHAR),则您需要在这里自定义时间格式,以确保 NineData 顺利读取这些数据类型的字段。 保留天数 基于前面选择的时间字段,选择需要归档多少天以前的数据,可选值为 1~3650 天。例如,您需要归档或清理一年以前的数据,则在此处输入 365。 操作 - 映射与过滤:数据归档场景下,手动进行表名和列名的映射。例如将源表中某个列的数据存储到目标表中指定的列。
- 预览 SQL:预览当前配置下,系统即将执行的归档、清理语句。
- 删除:删除当前记录。
添加表 新增一条记录。 -
单击创建任务。在预检查节点,等待任务状态更改为待审批,然后单击页面右上角的提交审批,在弹出的窗口中选择流程审批人员,单击确定,进入提交审批节点。在预检查节点中,您还可以执行如下操作:
- 单击页面右上角的图标,刷新任务状态。
- 单击页面右上角的撤回,直接撤回任务或重新编辑任务并提交。
- 单击页面右上角的类似创建,复制出一个配置相同的新任务- 。
说明
-
任务状态变更为审批中,在审批通过之前,您可以进行如下操作:
- 单击页面右上角的图标,刷新任务状态。
- 单击页面右上角的撤回,直接撤回任务或重新编辑任务并提交。
- 单击页面右上角的转交,更改该任务的审批人。
- 单击页面中的查看对象,可以查看本次任务的执行对象。
-
任务状态变更为审批通过,任务的执行人单击页面右上角的执行,选择执行方式,并单击确定。
- 立即执行:马上执行任务。
- 定时执行(仅一次性任务可选):选择一个时间执行任务。
- 等待任务状态变更为执行成功即可。
提交数据清理任务
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>数据归档与清理。
- 在数据归档与清理页面,单击页面中的创建归档与清理。
-
在创建归档与清理页面,按照下表进行配置。
参数 说明 任务名称 输入任务的名称,为了方便后续查找和管理,请尽量使用有意义的名称。最多支持 64 个字符。 备注(可选) 输入备注信息,例如针对该任务的用途描述。 策略 选择数据归档任务的策略,此处选择仅清理。支持如下三种: - 仅归档:对目标数据执行归档任务,将源库需要归档的数据复制到目标库保存。
- 归档+清理:先对目标数据执行归档,然后再删除源库中已归档的数据。
- 仅清理:该操作仅删除目标数据,不做归档处理。
源数据源 需要清理的数据所在的数据源和库。 频率 选择任务的执行频率。 - 单次执行:仅执行一次。
- 周期执行:创建周期性任务,根据您选定的周期循环执行。
时区 周期性任务需要选择,选择您目标所在地域的时区。 周期 周期性任务需要选择,可按周或按月选择在每周的星期几或每月的几号执行任务。勾选每天代表每天执行一次。 启动时间 周期性任务需要选择,选择周期性任务在所选周期的几点执行任务。单击此刻将当前时间点设置为任务执行时间。 -
单击下一步,跳转至选择对象页面,配置需要清理的数据。
参数 说明 源表名 选择源表中需清理数据所在的表。 时间字段 选择一个时间字段,作为判断数据是否需要清理的依据,该字段通常反映了该行数据生成的时间。例如,您的订单表中的订单创建时间字段。 保留天数 基于前面选择的时间字段,选择需要清理多少天以前的数据,可选值为 1~3650 天。例如,您需要清理一年以前的数据,则在此处输入 365。 过滤条件(可选) 设置过滤条件,仅符合过滤条件的数据会被清理。不设置则默认清理所有符合条件的数据。以测试数据 employees 表为例,将过滤条件设置为 emp_no>=10005
,则 emp_no 列中小于 10005 的数据均不会被清理。操作 删除:删除当前记录。 添加表 新增一条记录。 -
单击创建任务。在预检查节点,等待任务状态更改为待审批,然后单击页面右上角的提交审批,在弹出的窗口中选择流程审批人员,单击确定,进入提交审批节点。在预检查节点中,您还可以执行如下操作:
- 单击页面右上角的图标,刷新任务状态。
- 单击页面右上角的撤回,直接撤回任务或重新编辑任务并提交。
- 单击页面右上角的类似创建,复制出一个配置相同的新任务。
说明
-
任务状态变更为审批中,在审批通过之前,您可以进行如下操作:
- 单击页面右上角的图标,刷新任务状态。
- 单击页面右上角的撤回,直接撤回任务或重新编辑任务并提交。
- 单击页面右上角的转交,更改该任务的审批人。
- 单击页面中的查看对象,可以查看本次任务的执行对象。
-
任务状态变更为审批通过,任务的执行人单击页面右上角的执行,选择执行方式,并单击确定。
- 立即执行:马上执行任务。
- 定时执行(仅一次性任务可选):选择一个时间执行任务。
- 等待任务状态变更为执行成功即可。
审批任务
前提条件
- 当前任务的状态为审批中。
- 您是系统管理员或当前任务的审批人。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>数据归档与清理。
- 在数据归档与清理页面,找到目标任务,单击任务 ID 或任务右侧操作列的详情。
-
在任务详情页面,审批工单内容,根据实际情况选择转交、审批通过或审批不通过。
操作 说明 转交 将任务转交给其他用户审批。 审批通过 批准申请,单击审批通过后,您可以按需输入通过原因,并单击确定。 审批不通过 驳回申请,单击审批不通过后,您还需要输入驳回原因,并单击确定。