云小课|聊一聊DRS的数据过滤特性
【本期推荐专题】在DevOps市场中,华为云DevCloud拔得头筹,看它如何助力企业面对商业环境瞬息万变快速响应。

【摘要】 目前,DRS已支持其他云、本地IDC、ECS自建MySQL、SQL Server、MongoDB(数据库种类)、PostgreSQL等多种数据库引擎,支持通过公网网络、华为VPN、华为云VPC网络环境下等多种网络场景的数据实时迁移和实时同步。同时,DRS还提供了丰富的数据辅助功能,今天,我们就来聊聊在您进行数据同步过程中的“小助手”---数据过滤。
本文分享自华为云社区《【云小课】【第15课】聊一聊DRS的数据过滤特性》,原文作者:数据库的小云妹。

众所周知,数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。
目前,DRS已支持其他云、本地IDC、ECS自建MySQL、SQL Server、MongoDB(数据库种类)、PostgreSQL等多种数据库引擎,支持通过公网网络、华为VPN、华为云VPC网络环境下等多种网络场景的数据实时迁移和实时同步。同时,DRS还提供了丰富的数据辅助功能,今天,我们就来聊聊在您进行数据同步过程中的“小助手”---数据过滤。
首先,我们来了解一下数据过滤特性的业务场景----数据同步。
1、数据同步介绍
功能介绍
数据同步是DRS的重要功能之一。即在不同的系统之间,将数据通过同步技术从一个数据源拷贝到其他数据库,并保持一致,实现关键业务的数据实时流动。
常用场景
实时分析,报表系统,数仓环境。
功能特点
数据同步功能聚焦于表和数据,并满足多种灵活性的需求,例如多对一(如下图所示)、一对多,动态增减同步表,不同表名之间同步数据等。

对于数据同步有了初步的了解之后,我们可以知道,数据同步不同于迁移,迁移是以整体数据库搬迁为目的,而数据同步是维持不同业务之间的数据持续性流动。
那么,在数据的定期同步、拆分汇总数据表等多种应用场景中,我们时常想要实时获取各个表中的某一部分数据来做汇总分析,这个时候,如果能够设定一些同步的规则,来帮助我们更准确、更高效的同步数据,就变得尤为重要。
DRS的数据过滤特性,就是解决这种场景的必备“良药”,通过对同步的对象进行加工,为选择的对象添加规则,方便您自己设定想要同步的数据条件。下面,我们就来了解一下今天的主角----数据过滤。
2、数据过滤
原理
基于以数据一致性为首要目标的原则,我们通过一个例子,来看看数据过滤规则添加后,在源库执行更新操作会遇到的几种场景:
假设,源库中的id为1、2、3、5、6。我们设置数据过滤条件为id between 1 and 5,那么数据同步后目标库的id为1、2、3、5。如下图所示:

首先,我们来看几种常见的更新场景:
■ 如果在源库中插入id=1.5,此id符合过滤条件(id between 1 and 5),则目标库会执行相同的更新操作。如下图所示:

■ 如果在源库中删除id=2,此id符合过滤条件(id between 1 and 5),则目标库会执行相同的删除动作。如下图所示:

■ 如果在源库中将id=3更新为id=3.5,更新后的id仍符合过滤条件(id between 1 and 5),则目标库会执行相同的更新操作。如下图所示:

以上,是我们在进行数据同步时,常常遇到的几种场景。当然,有时我们也会遇到如下几种较为特殊的更新场景:
■ 如果我们执行更新操作,将源库中的id=2更新为id=7,即更新前源库中的id=2符合过滤条件(id between 1 and 5),更新后id=7不符合过滤条件,继续同步时,目标库会执行相同的更新操作,同步后目标库的id为1、3、5、7。如下图所示:

■ 如果我们执行更新操作,将源库的id=6更新为id=4,即更新前源库中的id=6不符合过滤条件(id between 1 and 5),更新后id=4符合过滤条件,继续同步时,目标库执行相同的更新操作,但是此时目标库并没有id=6,无法匹配数据。
这时,我们会根据当前同步任务选定的冲突处理策略来处理:
● 冲突处理策略为“覆盖”,则id=4变成新数据在目标数据库插入,源库和目标库的结果仍然一致。如下图所示:

● 冲突处理策略为“忽略”,则会忽略该更新动作,即源库有id=4,而目标库没有,这种情况目标库数据将少于源库。如下图所示:

● 冲突处理策略为“报错”,则任务将会失败并立即中止。

操作步骤
1. 登录管理控制台。
2. 单击管理控制台左上角的图标,选择区域和项目。数据复制服务目前也支持通过使用专属计算集群服务购买的物理机资源,创建所需的实例,实现数据迁移和数据同步。您可以选择自己的专属计算集群。
3. 在“所有服务”或“服务列表”中,选择“数据库 > 数据复制服务”,进入数据复制服务信息页面。
4. 在“数据同步管理”页面,单击“创建同步任务”。
5. 在“场景选择”页面,分别选择“源数据库来源”和“目标数据库来源”后,单击“下一步”进入“同步实例”页面。
6. 在“同步实例”页面,填选任务名称、通知收件人信息、描述、同步实例信息,单击“下一步”。
7. 同步实例创建成功后,在“源库及目标库”页面,填选源库信息和目标库信息后,单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通后,勾选协议,单击“下一步”。
8. 在“设置同步”页面,选择数据冲突策略和同步对象,单击“下一步”。
图1 同步模式

表1 同步模式和对象

9. 在“数据加工”页面,“加工类型”选择“数据过滤”
图2 数据加工

10. 在“对象选择”区域选择需要加工的表对象。
11. 在过滤条件区域,填写过滤条件(只需填写SQL语句的WHERE之后部分,例如id=1)后,单击“校验”。
说明:
● 每张表仅支持添加一个校验规则。
● Oracle为源库的数据过滤每次最多支持20000张表,MySQL为源库的数据过滤每次最多支持10000张表。
● 过滤条件不支持使用某种数据库引擎特有的packege、函数、变量、常量等写法,须使用通用SQL标准。
12. 校验通过后,单击“生成加工规则”,即可在加工规则表格中看到该规则。
13. 检查无误后,单击“下一步”,进入下一步操作。
DRS提供在线迁移、备份迁移、数据同步、数据订阅和多活灾备等多种功能,以各自独有的特点适用不同的数据流通场景,为您提供安心且省心的数据复制体验。欲了解详情请戳这里。
云小课|聊一聊DRS的数据过滤特性的更多相关文章
- 云小课|DGC数据开发之基础入门篇
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:欢迎来到DGC数据 ...
- 云小课|MRS数据分析-通过Spark Streaming作业消费Kafka数据
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:Spark Str ...
- 云小课|MRS基础原理之MapReduce介绍
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:MapReduce ...
- 云小课|云小课教您如何选择Redis实例类型
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:购买Redis实例 ...
- 云小课 | 搬迁本地数据至OBS,多种方式任你选
摘要:搬迁本地数据至OBS,包括OBS工具方式.CDM方式.DES磁盘方式.DES Teleport方式和云专线方式,每种方式特点不同,本节课我们就一起看看有什么区别. 已有的业务数据可能保存在本地的 ...
- 云小课|带你揭开IP地址的神秘身份
摘要:本文带你了解网络云产品和相关的知识内容. 华为云网络服务大家族提供了丰富的云产品,可以满足用户的各种网络互联需求.相应地,华为云帮助中心也贴心的奉上了你想了解的所有网络云产品知识. 可是小课最近 ...
- 云小课 | IPv4枯了,IPv6来了
摘要:本篇主要分享IPv4与IPv6的区别和IPv6的应用场景,助您快速理解华为云IPv6双栈及IPv6 EIP. IPv6的由来 上节课我们讲了公网IP与私网IP,了解了IP地址的一些知识. 我们一 ...
- 云小课 | WAF反爬虫“三板斧”:轻松应对网站恶意爬虫
描述:反爬虫是一个复杂的过程,针对爬虫常见的行为特征,WAF反爬虫三板斧——Robot检测(识别User-Agent).网站反爬虫(检查浏览器合法性)和CC攻击防护(限制访问频率)可以全方位帮您解决业 ...
- 云小课 | “VPC连接”知多少
摘要:华为云提供了丰富的网络服务,可满足多种网络互连场景. 同Region的两个VPC怎么连通?” “跨Region的两个VPC又怎么连通?” “VPC内的ECS搭建了一个应用,需要访问Interne ...
- 云小课 | 需求任务还未分解,该咋整!项目管理Scrum项目工作分解的心酸谁能知?
温馨提醒:本文约3000字,需要阅读5分钟,共分为8个部分,建议分段阅读! 软件开发过程中,从产品概念形成到产品规划.往往要做详细的需求分析和项目规划等,因此,选对一款项目管理工具对开发者就显得尤为重 ...
随机推荐
- Vue之自定义过滤器
使用Vue.filter('过滤器名称',方法); 1. <!DOCTYPE html> <html lang="en"> <head> < ...
- 安装k8s
完成安装k8s集群以后,推荐使用https://github.com/512team/dhorse发布应用. 准备环境 准备两台服务器节点,如果需要安装虚拟机,可以参考<wmware和cento ...
- 《流畅的Python》 读书笔记 第5章 一等函数 20231025
第5章 一等函数 第四章相对偏僻,但时间上一样要花我很久,就先跳过了,回头再补.而这个第5章节是非常重要的.只是最近工作有点忙,我读的越来越慢了~继续坚持吧. 在 Python 中,所有函数都是一等对 ...
- 欧拉序求LCA
使用欧拉序 st 表 O(1) 求 LCA 欧拉序 st 表求 LCA 一开始是从某篇题解里看到的,后来百度了一下就会了( 这是一种预处理 O(nlogn) ,查询 O(1) 的优秀算法. 什么是欧拉 ...
- alibaba fastjson的JsonObject有序的实现和源码分析
介绍 FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.在使用的过程中, ...
- 20.7 OpenSSL 套接字SSL加密传输
OpenSSL 中的 SSL 加密是通过 SSL/TLS 协议来实现的.SSL/TLS 是一种安全通信协议,可以保障通信双方之间的通信安全性和数据完整性.在 SSL/TLS 协议中,加密算法是其中最核 ...
- Flutter搭建
目录 下载 Flutter SDK 配置 Flutter 环境变量及镜像 检查开发环境 参考 下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-arc ...
- Linux机器在命令行操作时开启/关闭代理
命令行操作时,如果需要连接通过代理才能访问的地址,可以通过配置当前shell的配置文件来手动开启/关闭代理 注意:代理只对当前用户当前shell生效,切换用户或者重新连接需要重新开启代理 修改当前用户 ...
- idea测试类没有运行按钮,右键没有Run、Debug
问题 原因 编写测试类错误 解决办法 选择合适的路径
- .NET8极致性能优化AOT
前言 .NET8对于性能的优化是方方面面的,所以AOT预编译机器码也是不例外的.本篇来看下对于AOT的优化.原文:.NET8极致性能优化AOT 详述 首先明确一个概念,.NET里面的AOT它是原生的. ...