tencent cloud

数据传输服务

动态与公告
产品动态
公告
产品简介
产品概述
数据迁移功能描述
数据同步功能描述
数据订阅(Kafka 版)功能描述
产品优势
支持的地域
规格说明
购买指南
计费概述
变更配置说明
欠费说明
退费说明
快速入门
数据迁移操作指导
数据同步操作指导
数据订阅操作指导(Kafka 版)
准备工作
业务评估
网络准备
添加 DTS IP 地址至对接数据库白名单
DTS 服务权限准备
数据库及权限准备
配置自建 MySQL 系的 Binlog
数据迁移
数据迁移支持的数据库
云数据库跨账号实例间迁移
迁移至 MySQL 系列
迁移至 PostgreSQL
迁移至 MongoDB
迁移至 SQL Server
迁移至腾讯云分布式缓存数据库
任务管理
数据同步
数据同步支持的数据库
云数据库跨账号实例间同步
同步至 MySQL 系列
同步至 PostgreSQL
同步至 MongoDB
同步至 Kafka
任务管理
数据订阅(Kafka 版)
数据订阅支持的数据库
MySQL 系列数据订阅
TDSQL PostgreSQL 数据订阅
MongoDB 数据订阅
任务管理
消费管理
前置校验不通过处理方法
检查项汇总
割接说明
监控与告警
支持的监控指标
告警通知功能
通过控制台配置指标告警和事件告警
通过 API 配置指标告警和事件告警
运维管理
配置系统维护时间
任务状态扭转说明
实践教程
本地数据库同步上云
构建双向同步数据结构
构建多对一同步数据结构
构建多活数据中心
数据同步冲突策略如何选择
使用 CLB 代理将其他账号下的数据库迁移至本账号下
通过云联网方式迁移自建数据库至腾讯云数据库
DTS 性能调优最佳实践
常见问题
数据迁移
数据同步
数据订阅 Kafka 版常见问题
数据订阅正则表达式
错误处理
常见错误处理
连通性测试不通过
校验项结果不通过或者出现警告
云联网接入配置源数据时无法选择子网
迁移慢或者进度卡住
数据同步有延时
数据订阅延迟过高
数据消费异常
API 文档
History
Introduction
API Category
Making API Requests
(NewDTS) Data Migration APIs
Data Sync APIs
Data Consistency Check APIs
(NewDTS) Data Subscription APIs
Data Types
Error Codes
DTS API 2018-03-30
相关协议
服务等级协议

Where 条件过滤

PDF
聚焦模式
字号
最后更新时间: 2024-12-25 15:57:47

操作场景

在配置同步任务时,DTS 支持对单个表或者批量对多个表设置 Where 条件过滤,只有满足设置规则的数据才会同步到目标数据库,这样用户可以灵活进行数据拆分。

适用范围

当前支持批量 Where 的同步链路:MySQL/MariaDB/Percona/TDSQL-C MySQL/TDSQL TDStore/TDSQL MySQL 相互之间、MySQL/MariaDB/Percona/TDSQL-C MySQL 同步到 Kafka 链路。
TDSQL MySQL 同步到 Kafka 链路当前仅支持对单个表设置 Where 条件,不支持批量设置 Where 条件。

约束限制

1. 不支持对整库或者整表设置 Where 条件,多个表需要设置 Where 条件过滤时,请依次勾选多个表对象,然后设置 Where 条件规则。
2. 列过滤与 Where 条件过滤的交互说明如下:
如果一个表进行了列过滤,用户同时还对该表设置 Where 规则,需要用户自行保证输入 Where 规则中的列名,包含在待同步的表中,否则 Where 规则可以设置成功,但后续任务启动后会报错。

Where 条件规则说明

1. 设置 Where 过滤条件后,单个表中只有满足设置规则的数据才会同步到目标数据库。
对于 INSERT 操作,需要插入的数据满足条件过滤规则才能同步到目标库。
对于 DELETE 操作,需要删除的数据满足条件过滤规则才能同步到目标库。
对于 UPDATE 操作,用户可根据自身需求设置不同的规则。
更新前、后数据均满足:表示更新前、后的数据都满足条件过滤规则才能同步到目标库。
更新前满足:表示更新前的数据满足条件过滤规则可以同步到目标库。
更新后满足:表示更新后的数据满足条件过滤规则可以同步到目标库。
2. Where 条件输入的规则必须是一个合法的 BOOL 表达式,并且表达式的规则相对于 MySQL 更为严格,一些在 MySQL 中支持但可能产生 WARNING 的语法(如字符串同数字比较,c1 + c2 < "abc" ),此处不支持。逻辑运算、算术运算、比较运算规则和优先级同 MySQL 一致,支持通过括号改变运算优先级,操作数中有 NULL 时,运算规则也同 MySQL 一致。DTS 系统会对输入的条件过滤规则进行验证,如果不合法会给出提醒。
3. Where 条件基本的运算规则如下:
支持引入列名作为变量。
支持逻辑运算(NOT,AND,OR,XOR,&&,||)。
支持数字类型(有符号/无符号的整型 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点类型 FLOAT 和 DOUBLE,精确类型 DECIMAL)及其算术运算(+、-、*、/、%、DIV、MOD)和比较运算(=、!=、>、<、>=、<=、<>、<=>)。
支持字符串类型(CHAR,VARCHAR)及其比较运算(二进制比较)。
支持日期类型(DATE,DATETIME,TIMESTAMP)及其比较运算。
支持时间类型(TIME)及其比较运算。支持日期/时间类型变量同字符串比较,此时字符串被转换为日期/时间类型常量,按照日期/时间比较规则进行。
用户可以指定 TIMESTAMP 常量的时区。示例:c1 为 TIMESTAMP 类型的列,用户选择的时区为+08:00,输入过滤规则为 'c1 > "2016-10-01 09:00:00"',则相当于'c1 > "2016-10-01 09:00:00 +08:00"'。

Where 条件实现示例

如下对不同场景的操作结果进行举例,各数据中 ID 为主键。
示例一:INSERT 操作



示例二:DELETE 操作



示例三:UPDATE 操作(以“更新前、后数据均满足”为例)




操作步骤

1. 同步任务设置同步选项和同步对象页面中,勾选同步对象。
说明:
依次勾选单个表,才能支持在后续步骤设置 where 条件;勾选整库/整表,不能设置 where 条件。



2. 设置数据加工规则,开启 where 条件过滤。
2.1 选择对象。
从前一步骤选择的同步对象范围中,再勾选需要设置 where 条件的对象范围。



2.2 设置过滤条件并确认。
设置 UTC 时区:指定 TIMESTAMP 类型字段比较值的时区,建议和数据库时区保持一致。
UPDATE 数据条件:可选择“更新前、后数据均满足”、“更新前满足”、“更新后满足”。
条件表达式:输入 where 条件表达式,具体规则见本章节前述的 Where 条件规则说明。设置 where 条件后点击检查条件检测输入内容的合法性,然后单击生成过滤规则

3. 确认过滤规则,无误后单击保存并下一步进行后续同步任务流程。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈