配置同步条件
在数据同步过程中,我们可能会遇到各种各样的场景,
- 场景一: 历史数据不变,数据增量更新
比如某一张表的历史数据不变,每天会按照日期新增,为了提高同步效率,在第一次将整表全部同步到客户端后更改为增量同步,只同步最新数据。
- 场景二:客户端不需要保存历史数据,只关注最新数据
为了应对各种场景,UTS针对客户的场景做了很多细节设计。在下文中将介绍如何配置同步条件来实现以上两种应用场景。
在UTS中配置同步条件
1、打开【数据库服务】账号设置页面
如下图所示,选择【数据库服务】,选中需要设置的账号,双击弹出账号信息设置页面
2、打开表明细设置页面
选择【下载列表】,选中表格中需要设置的表的所在行,双击弹出明细设置页面
3、设置同步条件
选择【范围设置】,在右侧同步框中输入同步条件,如图所示。
条件设置说明:
[!TIP]
条件开头直接写字段名,无需写WHERE或者条件连接词
多个条件之间以AND或者OR连接一起
默认选项服务端和客户端的条件一致,如果在条件中使用了一些数据库系统函数,请注意目标数据库是否支持该语法,如果不支持,【客户端执行】属性需要选择【指定独立的SQL语句】,并在下面的文本框中设置目标数据库可执行的SQL条件,如上图所示选项。
如果设定了同步条件,请注意条件字段是否有索引,条件字段和时间戳字段是否有复合索引,否则可能会引发慢查询SQL,影响同步效率
一、增量数据同步,并保留历史数据
增量数据同步,并保留历史数据,需要先设定同步条件(常见以日期条件过滤),额外需要检查如下配置项:
[!TIP]
需要确保勾选了“客户端忽略范围外数据”选项,如果不勾选,则会删除历史数据,导数据缺失。
二、只保留最新数据,删除历史数据
增量数据同步,并保留历史数据,需要先设定同步条件(常见以日期条件过滤),额外需要检查如下配置项:
[!TIP]
需要取消勾选“客户端忽略范围外数据”选项,如果勾选了,则不会删除历史数据。
同步条件的局限性及替代方案
对于简单的一些条件过滤,可以直接在UTS中设置同步条件进行传输,但是对于复杂的条件则不建议通过以上方式来实现。如果条件比较复杂,建议通过视图传输的方式来实现。
具体的做法是:在目标数据库中建立视图,然后将视图数据同步给客户端。
这样做的好处有以下几点:
支持更加复杂的查询条件,如条件中有子查询或者涉及到联表的操作
更加直观的管理同步的数据内容,可以像数据表一样统一管理而不用担心UTS服务因迁移或者人为导致同步的条件丢失
能够更好地对SQL语句进行优化,提升查询效率。