在配置任务对象时,您可以设置SQL过滤条件过滤任务数据。通过设置后,只有满足过滤条件的数据才会被同步或迁移到目标数据库。该功能可应用于数据的定期同步或迁移、拆分数据表等多种应用场景。
前提条件
新版控制台的操作步骤,请参见通过SQL条件过滤任务数据。
已启动任务配置,并处于配置任务对象及高级配置环节。关于如何启动任务配置,请参见配置同步任务(新控制台)。
功能限制
仅支持过滤当前表的字段,不支持跨表过滤。如有需要,您可以在多个表中分别填写过滤条件。
操作步骤
在配置任务对象及高级配置环节,将任务对象移动到已选择对象区域框中后,将鼠标指针放置在要修改的数据表上并单击右键。
在弹出的编辑表对话框中,填入过滤条件。
说明过滤条件支持标准的SQL WHERE语句(仅支持
=
、!=
、<
、>
、in
操作符),只有满足WHERE条件的数据才会被同步或迁移到目标数据库中。本案例填入order>100
。过滤条件支持按时间条件过滤,但SQL WHERE语句中时间的格式有一定要求,例如过滤2020年之后创建的增量数据,您需要填入
create_time>'2020-01-01'
或create_time>'2020-01-01 00:00:00'
,不支持填入create_time>'2020'
。过滤条件中如需使用引号,请使用单引号('),例如
address in('hangzhou','shanghai')
。如源库中同一张表内存在两个列A和a,由于过滤条件忽略列名的英文大小写,则SQL WHERE语句仅支持过滤列A,不支持过滤列a,例如支持
WHERE A=10
,不支持WHERE a=10
。对于云数据库MongoDB,过滤条件支持的语句与标准的SQL WHERE语句不同,例如需要以用户ID进行过滤时,过滤条件输入:
{"_id":{$gt:"user100844658590795****",$lte:"user101674868045948****"}}
。其中gt
表示大于,lte
表示小于等于。
单击确定。
根据提示完成后续的任务配置。