数据归档至专属存储

本文为您介绍如何将数据归档至专属存储中(存储在DMS),以及删除归档至专属存储的数据等操作。

前提条件

  • 源数据库类型为:

    • MySQL:RDS MySQLPolarDB MySQL版AnalyticDB MySQL 3.0

      说明

      MySQL数据库账号必须具有REPLICATION CLIENT权限。

    • PostgreSQL:RDS PostgreSQLPolarDB PostgreSQL版

    • MongoDB 3.6版本及以上。

  • 源数据库的管控模式为稳定变更或安全协同。

    说明

    若实例的管控模式为稳定变更,在进行周期归档前,建议您为实例开启安全托管或变更管控模式为安全协同,以免由于实例登录失效导致任务执行失败。具体操作,请参见开启安全托管变更管控模式

  • 需要归档的源表必须存在主键或者唯一键。

    说明

    建议源表中包含业务修改时间的字段,以便将业务修改时间作为归档的过滤条件。

费用说明

公测阶段暂不收费。若使用此功能开始收费,则会提前通知。

注意事项

  • 数据归档至专属存储无存储量限制。

  • 如果待归档的源表中存在三个列联合主键(即三个相互关联的列共同构成该表的主键)或三个及以上的唯一键,可能会出现归档失败的情况。建议您在归档前对拥有三个列联合主键的源表进行充分测试,或者考虑使用DBS备份等其他归档方式。

数据归档

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择解决方案 > 数据归档

    说明

    若您使用的是极简模式的控制台,请单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > 解决方案 > 数据归档

  3. 在页面右上角,单击数据归档

  4. 新建数据归档工单页面,配置以下信息:

    配置项

    是否必填

    说明

    归档目标

    选中专属存储

    源数据库

    搜索并选择源数据库。

    归档配置

    选择需要归档数据的表。

    • 可选:输入归档数据的过滤条件。例如,gmt_modified<='${6_month_ago}'

      说明

      如果您需要使用时间变量,例如,归档6个月前的数据,可以先进行变量配置

    • 可选:单击添加,添加多个源表。

    归档表映射

    您可以通过归档表映射查看源表归档至专属存储后的表名、列和分库键等归档表信息。

    变量配置

    配置该变量可以在配置归档过滤条件时使用。例如,时间变量为6_month_ago,时间格式为yyyy-MM-dd,偏移量设置为-6月。如果当前日期为2021-8-12,则变量${6_month_ago}的值为2021-02-11。配置时间变量的更多信息,请参见配置时间变量

    后置行为

    • 若您选中清理原表已归档数据(delete-无锁),则在归档完成后,系统将自动执行归档后的源表数据删除操作,可以通过无锁数据变更的DELETE语句完成。但删除源表的同时,源库中会生成存储此次归档数据的备份临时表,请保证源库空间充足,避免空间容量不足引发实例不可用问题。

      清理备份临时表:您可以在确认数据归档完成且数据无误后,通过新建普通数据变更工单,清理源库中的备份临时表。

    • 若您未选中清理原表已归档数据(delete-无锁),则需要在数据归档成功后,手动进行源表数据删除和空间优化。

      1. 清理源表数据:通过新建普通数据变更工单清理数据库中已归档的数据。新建普通数据变更工单,请参见普通数据变更

      2. 源表空间优化:通过新建无锁变更工单完成源表空间优化。新建无锁变更工单,请参见通过无锁变更工单实现无锁结构变更

    运行方式

    选择运行方式,当前支持:

    • 单次执行:工单审核通过后,仅单次运行归档任务。

    • 周期调度:工单审核通过后,可根据部署的周期调度执行归档任务。具体配置,请参见周期调度

  5. 单击提交申请

  6. 工单审批通过后,系统自动执行数据归档任务,等待归档任务执行完成。

    若任务执行失败,您可在工单的执行区域,单击操作列下的详情,查看归档任务日志,找出任务执行失败的原因。若是由于网络或数据库连接失败等偶然发生的问题,您也可以单击断点重试,尝试重新执行。

    说明

    归档后的数据格式为Parquet文件格式,且数据量会有所压缩。

  7. 查询归档至专属存储的数据

恢复已归档数据至源库

费用说明

该功能免费使用。

使用限制

仅源数据库类型为RDS MySQLPolarDB MySQL版AnalyticDB MySQL 3.0可使用此功能。

操作步骤

  1. 进入数据归档工单列表页面,视图选择工单视图

  2. 单击目标工单视图行操作列下的详情

  3. 数据归档工单列表页的执行区域,单击操作列下的恢复到源库

  4. 在对话框中,单击确认

    此时归档的任务下会增加一个恢复的任务。系统自动执行此任务,您需要等待任务状态从正在执行变为执行成功,此过程耗时长短与您恢复的数据量有关。

    重要

    执行归档数据恢复到源库操作后,系统会自动在源库中创建临时表,可能会造成源库空间不足,请您谨慎操作。

  5. 查看已恢复的数据。

    1. 在该工单详情页的基本信息区域,单击变更库名称,在弹出的提示框上单击查询

    2. 双击目标表名称,单击执行

      您可在SQL Console页面下方的执行结果区域,查看已恢复的数据。

删除已归档至专属存储的数据

重要

删除已归档数据的操作不可逆,请谨慎使用。

物理删除单次或周期归档工单中已归档至专属存储的数据,可释放数据占用的存储空间。

注意事项

删除归档数据后,不可进行归档后查询数据、恢复已归档数据至源库操作。

操作步骤

  1. 进入数据归档工单列表页面,视图选择工单视图

  2. 选择目标工单,单击操作列下的详情

  3. 进入数据归档工单列表页面,在执行区域,单击目标任务操作列下的更多 > 删除

  4. 在弹出的对话框中,单击确认

常见问题

Q:逻辑库进行数据归档查询时会将所有逻辑库的表合并到一个物理表中吗?

A:会。逻辑库在进行数据归档时,会将所有逻辑库的表都合并到一个物理表内,因此在归档视图页面中,查询任意一个逻辑表就可以查询到逻辑库中所有表的数据。

Q:同一个工单内进行了多次归档,即周期归档,在进行数据查询时,可以查询指定时间段的数据归档吗?

A:可以。同一个工单的周期归档会根据归档的时间生成不同时间段的归档数据,所以可以通过创建数据归档的时间,判断并查询指定时间段的归档数据。

Q:如何查询某张表周期性归档的所有数据、查询同一张表跨工单归档的所有数据?

A:进入逻辑数仓功能页面,在数据源页签下,选择专属湖仓 > archive,展开目标数据库,双击目标表名或工单号,此时SQL窗口会自动填充查询SQL,单击执行,可在执行结果区域查看归档数据。lianhechaxun

Q:在RDS数据库归档至专属存储过程中,勾选了源表数据清理后,产生的备份临时表数据会占用多少源库空间?

A:临时表数据最多会占用源库中已占用空间的一倍。