数据归档

本文档旨在介绍如何通过提交数据归档工单实现归档数据。

背景信息

ODC 支持定时将源数据库中的表数据归档至其它目标数据库中,以解决因线上数据增多影响查询性能与业务运作的问题。

本文档以新建数据归档为例,介绍如何在 ODC 中将同一项目的数据库 odc_test 中的表 employee 归档到数据库 test2 中。

说明

文中所使用的均为示例数据,您可根据实际情况对数据进行替换。

注意事项

  • 前置条件:

    • 归档的表中必须包含主键,若数据源类型为 OceanBase MySQL 及 MySQL,则包含唯一索引也可进行归档。

    • 用于归档的数据库用户需要拥有读/写权限和内部视图的访问权限。权限配置请参见 查看用户权限用户及权限概述 和 修改用户权限

    • 需保证源端表字段在目标端兼容,数据归档不处理字段兼容性问题。

    • 同构归档链路二级分区不支持表结构同步,异构数据库不支持结构同步以及自动建表。

  • 归档链路支持:

    • OceanBase MySQL 到 OceanBase MySQL 。

    • OceanBase Oracle 到 OceanBase Oracle。

    • OceanBase MySQL、OceanBase Oracle 到对象存储(OSS、COS、OBS、S3)。

  • 以下情况不支持归档:

    • OceanBase MySQL 数据源若表中包含 XMLTYPE 字段类型,不支持进行归档

    • OceanBase Oracle 数据源若表中包含 JSON、XMLTYPE 字段类型,不支持归档

    • 若归档条件中包含 LIMIT 语句,不支持归档。

    • 若表中包含外键,不支持归档。

  • 支持自动建表链路

    • OceanBase Oracle 到 OceanBase Oracle。

    • OceanBase MySQL 到 OceanBase MySQL。

  • 支持表结构同步链路

    • OceanBase MySQL 到 OceanBase MySQL。

新建数据归档

  1. 在 SQL 开发窗口中,编辑 SQL 语句以创建表 employee。

    image

    CREATE TABLE `employee` (
    `emp_no` int(120) NOT NULL COMMENT 'employee number',
     `birthday` date DEFAULT NULL COMMENT 'employee birthday',
     `name` varchar(120) DEFAULT NULL COMMENT 'employee name',
     `time` date NOT NULL COMMENT 'time' COMMENT 'create time',
     PRIMARY KEY (`time`)
    ) partition by range columns(time) (
     partition p2023_01
     values
      less than ('2023-01-01'),
      partition p2023_02
    values
      less than ('2023-02-01')
    )
  2. 在 SQL 开发窗口的 任务 页签中,单击 数据归档 > 新建数据归档

    image.png

  3. 新建数据归档 页面中,输入以下信息。

    image.png

    信息项

    说明

    源端数据库

    选择表所属的数据库。

    说明

    ODC V4.2.2 及之后的版本支持选择 MySQL 数据库,以将 MySQL 中的数据归档到 OceanBase 数据库中。

    目标数据库

    选择表归档的数据库。

    说明

    ODC V4.2.2 及之后的版本支持选择 MySQL 数据库,以将 OceanBase 中的数据归档到 MySQL 数据库中。

    归档范围

    • 部分归档:通过过滤条件归档源端数据库中部分表。

      • 可使用常量或者引用变量配置中定义的变量来配置过滤条件。例如:time<'${create_time}',其中create_time为变量配置中的变量名,time为归档表中的字段。

      • 勾选 指定分区,支持根据指定的分区归档数据。

    • 整库归档:归档源端数据库中所有表。

    自定义变量

    可选项。通过定义变量和设置时间偏移量筛选表中符合条件的行进行归档。

    执行方式

    选择 立即执行/定时执行/周期执行 设置任务执行方式。

    任务设置

    • 指定任务时长:任务启动指定时长后,若未完成则会暂停调度,等待下一次调度。

    • 开启目标表结构同步:任务调度前进行一次表结构比对,若源端和目标端表结构不一致,将跳过该表。

    • 插入策略:执行数据归档时,忽略重复数据/更新重复数据。

    • 搜索策略:支持全表扫描和条件匹配。

    • 限流策略:配置行限流和数据大小限流。

    描述

    可在 描述 文本框中输入不超过 200 个字符的描述信息,该项为选填项。

  4. 单击 新建 后,预览归档 SQL 语句并单击 确定,完成新建数据归档。

    image

  5. 任务生成后可以在 工单 > 数据归档 列表中查看任务信息。

    image.png

查看数据归档任务

任务信息

  1. 如上图所示,在 工单 的数据归档列表中,单击操作列中的 查看 按钮。

  2. 在弹出的任务详情面板中,单击 任务信息 页签查看任务类型、源数据库、目标数据库、变量配置、归档范围和执行方式等信息。

    image

执行记录

在任务详情面板中,单击 执行记录 页签查看任务状态和执行详情等操作。

image

操作记录

在任务详情面板中,单击 操作记录 页签查看任务的任务审批状态和变更记录。

image

导入数据归档任务

您可以将云数据库 OceanBase 中的实例迁移到 OB Cloud,并将已迁移实例中包含的数据归档任务迁移到 OB Cloud。

步骤一:从云数据库 OceanBase 导出数据归档任务

  1. 云数据库 OceanBase 管理控制台 的左侧导航栏中,单击 实例列表

  2. 单击实例 操作 项下的 切至云市场

    image

  3. 实例切换完成后,单击实例 操作 项下的 处理数据研发任务

    image

  4. 处理数据研发任务 页面,单击 查看并导出全部,导出定时任务到本地。

    image

步骤二:导入数据归档任务到 OB Cloud

  1. 登录 OB Cloud 云数据库控制台,单击 数据服务 > 生命周期 后,在 生命周期 页面中单击 ... 更多选项 > 导入作业

    image

  2. 将下载到本地的数据归档配置文件上传到导入作业。

    image

相关文档