通过SQL条件过滤任务数据

在配置任务对象时,您可以设置SQL过滤条件过滤任务数据。通过设置后,只有满足过滤条件的数据才会被同步或迁移到目标数据库。该功能可应用于数据的定期同步或迁移、拆分数据表等多种应用场景。

前提条件

说明

新版控制台的操作步骤,请参见通过SQL条件过滤任务数据

已启动任务配置,并处于配置任务对象及高级配置环节。关于如何启动任务配置,请参见配置同步任务(新控制台)

功能限制

仅支持过滤当前表的字段,不支持跨表过滤。如有需要,您可以在多个表中分别填写过滤条件。

操作步骤

  1. 配置任务对象及高级配置环节,将任务对象移动到已选择对象区域框中后,将鼠标指针放置在要修改的数据表上并单击右键。

  2. 在弹出的编辑表对话框中,填入过滤条件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表示小于等于。

  3. 单击确定

  4. 根据提示完成后续的任务配置。