10.3. 多发比对功能概览

本章节重点介绍比对服务的功能。功能清单列表如下:

比对服务功能概览

服务

功能

描述

比对服务

1

多租户功能

支持根据业务用户名进行区分用户的操作

2

比对结果页面展示

展示traceId、业务SQL、状态、错误原因、SQL类型、源库、目标库、源库SQL、目标库多发SQL、比较内筒、记录行数、应用类型、应用名、业务用户名、schema、业务执行时间、比对执行时间、操作详情展示

3

比对结果筛选

支持根据状态、TraceID、应用类型、应用名、用户名进行筛选

比对规则自定义

1

替换规则(ForceReplace)

用于将数据替换为另一部分内容。

2

字符串截取规则(SubString)

从输入字符串中截取指定长度的子串

3

精度截取规则(SubPrecision)

将数值小数部分精确到指定的位数(四舍五入),该规则用于保证数值精度在特定应用场景下的一致性和准确性。

4

布尔转数字(Boolean2Number)规则

将true转成1,将false转成0

5

时间戳转字符串(Timestamp2String)规则

将数值类型的时间戳(通常为毫秒数)转换为格式化的日期字符串。

6

忽略表字段规则

指定某张表里的某些字段不进行比较。

7

全局比对规则展示

其他特色功能

1

支持全表同步

目标库与源库的表数据不一致,支持全表同步

2

支持钉钉消息推送

在发生比对失败的时候,发送钉钉消息

10.3.1. 比对服务

10.3.1.1. 多租户功能

10.3.1.2. 比对结果页面展示

10.3.1.3. 比对结果筛选

10.3.2. 比对规则自定义

10.3.2.1. 支持多租户隔离

比对规则支持多租户隔离,在比对规则文件目录 compareRules 下以目录形式隔离每一个租户的规则。在 compareRules 下的比对规则文件 (*.json) 是默认通用规则, 在租户目录下的比对规则为当前租户的规则。

  1. 每一个租户对应一个比对规则目录;

  2. 若当前租户无比对规则(比对规则文件目录没有改租户目录、租户目录下为空、租户目录下的 (*.json) 无有效规则(有效规则配置参考规则配置))则使用通用规则;

  3. 规则文件 (*.json) 中一行(json格式)表示一条规则

  4. 当前只支持一级目录,不支持租户目录下创建租户目录

比对规则文件(*.json)位于目录 ``comparison/config/compareRules`` 下与比对服务配置文件 ``jrescloud.properties`` 同一层。以下为示例:

     ├─config
     │  │  jrescloud.properties 比对服务配置文件
     │  │
     │  ├─compareRules (比对规则配置目录)
     │  │  │  Boolean2Number.json (通用规则:布尔转数字规则)
     │  │  │  ForceReplace.json (通用规则:替换规则)
     │  │  │  SubPrecision.json (通用规则:精度截取规则)
     │  │  │  SubString.json (通用规则:字符串截取规则)
     │  │  │  Timestamp2String.json (通用规则: 时间戳转字符串规则)
     │  │  │
     │  │  ├─em (租户em的比对规则目录)
     │  │  │      Boolean2Number.json (租户em:布尔转数字规则)
     │  │  │      ForceReplace.json (租户em:替换规则)
     │  │  │      SubPrecision.json (租户em:精度截取规则)
     │  │  │      SubString.json (租户em:字符串截取规则)
     │  │  │      Timestamp2String.json (租户em: 时间戳转字符串规则)
     │  │  │
     │  │  └─lightdb (租户lightdb的比对规则目录)
     │  │          Boolean2Number.json (租户lightdb:布尔转数字规则)
     │  │          ForceReplace.json (租户lightdb:替换规则)
     │  │          SubPrecision.json (租户lightdb:精度截取规则)
     │  │          SubString.json (租户lightdb:字符串截取规则)
     │  │          Timestamp2String.json (租户lightdb: 时间戳转字符串规则)

10.3.2.2. 替换规则(ForceReplace)

10.3.2.3. 字符串截取规则(SubString)

10.3.2.4. 精度截取规则(SubPrecision)

10.3.2.5. 布尔转数字(Boolean2Number)规则

10.3.2.6. 时间戳转字符串(Timestamp2String)规则

10.3.2.7. 忽略表字段规则

10.3.2.8. 全局比对规则展示

前端页面点击 比对规则 按钮即可查看当前有效的全局比对规则。如下所示。

../_images/compare_rules_list_dispaly.png

10.3.3. 其他特色功能

10.3.3.1. 支持全表同步

在比对报告中,可点击 全表数据同步 将对比失败的表进行表数据的全量同步,当前版本只支持从 ORACLE 同步表数据到 OCEAN_BASE_ORACLE ,只支持同步一个表。详细操作步骤如下:

../_images/%E5%85%A8%E9%87%8F%E5%90%8C%E6%AD%A5%E6%AF%94%E5%AF%B9%E5%A4%B1%E8%B4%A5%E7%9A%84%E8%A1%A8.png ../_images/%E6%88%90%E5%8A%9F%E5%85%A8%E9%87%8F%E5%90%8C%E6%AD%A5%E6%AF%94%E5%AF%B9%E5%A4%B1%E8%B4%A5%E7%9A%84%E8%A1%A8.png
  1. LightDB 官网下载迁移工具 LightDB-ETL

  2. 將下载的 LightDB-ETL 里的jar包(如 lightdb-etl-24.3.jar )的绝对路径配置在环境变量 LIGHTDB_ETL_JAR

  3. 迁移日志文件目录为 {比对服务安装目录的log}/lightdb-etl/{当前时间_traceId_计数} ,可查看详细的迁移日志。

  4. 前端页面会展示基本全量同步结果。

问题排查

../_images/%E5%85%A8%E9%87%8F%E5%90%8C%E6%AD%A5%E6%AF%94%E5%AF%B9%E5%A4%B1%E8%B4%A5%E7%9A%84%E8%A1%A8%E9%94%99%E8%AF%AF%E4%BF%A1%E6%81%AF.png
  1. 可通过查看 LightDB-ETL 的日志文件 lightdb-etl-error.log 查看更加详细的报错内容。

  2. 日志路径为 {比对服务安装目录的log}/lightdb-etl/{当前时间_traceId_计数}

  3. lightdb-etl.log :数据同步的总日志,可查看具体迁移的表、迁移数据等。

  4. lightdb-etl-error.log :数据同步报错日志汇总。

10.3.3.2. 支持钉钉消息推送

当配置钉钉机器人后,数据比对失败,会给钉钉机器人发送消息,如下图:

../_images/dingding_message.png