全部产品

OB 同步到 ODPS(仅专有云)

更新时间:2020-06-08 15:39:28

数据同步服务支持数据源同步到流计算服务。本文将介绍如何使用数据同步服务快速配置 OceanBase(简称 OB)到 ODPS 项目表的实时数据同步,让数据可以实时进入大数据数仓进行数据分析。

注意:该功能仅适用于部分专有云用户。

支持功能

  • 支持 OB 物理数据表到 ODPS 的实时数据同步。
  • 支持 OB 中多张 schema 相同的物理表绑定为一张逻辑表的方式,实时同步到 ODPS 一张目的表中。

同步对象

  • OB 物理表(分区表或非分区表),以及绑定后的逻辑表。

支持的 SQL 操作类型

OceanBase > ODPS 实时同步支持的 SQL 操作类型如下:

  • Insert
  • Delete
  • Update

数据同步服务暂不支持 OB 中表结构变更(DDL)到 ODPS 的自动同步。同步过程中,如果 OB 中某个表进行了 DDL 操作,那么,数据同步服务会跳过这个 DDL,后面同步到这个表的相关 DML 操作时,会出现同步失败。此时,您需要在目标 ODPS 中手动修改表,再重启同步任务即可。

操作步骤

  1. 进入数据同步服务控制台,在左侧导航栏中,选择 数据同步任务
  2. 点击 添加任务,选择 OceanBase 数据源同步到流计算服务 的场景,即 OB 同步至 ODPS 的场景。
    ob2maxcompute
  3. 开始设置和校验参数:任务参数
    • 任务名称:包含字母、数字及下划线,并且以字母开头。无唯一性要求,建议使用有业务意义的名称。
    • 填写 数据来源信息,选择同步表:
      • 物理表:可直接选择 OB 中已经创建的分区型或非分区型物理表。
      • 逻辑表:OB 的物理表大部分是分库分表,通过 元数据管理 > 录入逻辑表,可以将多张 schema 一致的物理表绑定成一张逻辑表。此处直接选择该逻辑表,即可将多张物理表中的数据同步至目的端。
        注意:绑定的物理表必须有一致的 schema,否则后续数据同步时,无法正确创建目标表,数据同步会失败。
    • 填写 数据去向信息
      • 数据源:选择 ODPS 数据源。
      • ODPS 表名:输入 ODPS 表名,确保项目内唯一。
      • 分区选项:可选 天分区小时分区
    • 确认源端目的端字段信息:确认展示的源端和目的端表的 schema 信息。
      • 依据源端表的主键和唯一键来选择目的端表的主键,为后期数据合并做准备。
      • 可修改目的端表的字段名。
        字段映射
  4. 点击 提交,完成任务创建。
    • 如果报错,请检查输入的参数是否正确,或联系技术支持团队。
    • 如果任务创建成功,可进行数据校验。

校验数据同步任务

任务创建完成之后,如果 OB 数据库表中有数据更新,则任务将自动启动运行。此时,可以前往该任务详情页或 ODPS 控制台校验任务是否成功运行。

任务详情页

在该任务的详情页查看下游数据写入情况,任务详情页展示如下信息:

  • 上游数据抓取延迟:数据同步服务抓取数据写入存储的时间与数据实际写入至 OB 的时间差;
  • 上一分区写入完成时间:此时间不断刷新说明同步任务在正常运行,系统每 5 秒完成一次分区标 done。任务详情页

ODPS 控制台

进入 ODPS 控制台进行数据检查,查询数据是否有写入,检查语句如下:

  1. Select * from <project_name>.<table_name> where ds = 'yyyymmdd' limit 100;

参数说明

  • <project_name> 为任务配置中的 ODPS 项目名。
  • <table_name> 为任务配置中的 ODPS 目标表。
  • ds 为分区字段。选择天分区时,分区格式为:ds='yyyymmdd';选择小时分区时,分区格式为:ds='yyyymmdd'and hh='hh'

数据检查示例

在 ODPS 控制台进入如下数据检查:

  1. Select * from ods_cos004.test_user_12151429 where ds = '20190215' limit 100;

查询结果

查询结果

  • 红框内以 dbsync 开头的字段为同步过程的记录内容,记录数据源库、源物理表以及用户的操作类型。
  • 蓝色框内的数据为用户数据库表里的真实存储的数据字段。