SQL 条件过滤数据

本文为您介绍创建数据迁移或数据同步任务时,选择迁移或同步对象后通过 SQL 条件过滤数据的适用场景、使用限制和操作步骤。

适用场景

创建数据迁移或数据同步任务时,您可以设置 SQL 过滤条件来过滤数据。完成设置后,只有满足过滤条件的数据才会被迁移或同步至目标数据库。该功能适用于数据的定期同步或迁移、拆分数据表、过滤历史数据和脏数据等多种应用场景。

数据传输同样支持在数据迁移或数据同步任务运行过程中修改迁移对象或同步对象的 SQL 过滤条件,详情请参见 查看和修改迁移对象及其过滤条件查看和修改同步对象及其过滤条件

使用限制

  • 通过 SQL 条件过滤数据时,仅支持过滤当前表的字段,不支持跨表过滤。

  • SQL 条件过滤数据的作用范围为全量迁移/全量同步和增量同步。

  • SQL 条件过滤数据使用的列请勿执行 DDL 变更,否则可能导致数据迁移或数据同步异常。

操作步骤

  1. 将数据迁移或数据同步任务配置至 选择迁移对象 选择同步对象 步骤。

    详情请参见相应类型的 数据迁移数据同步 任务文档。

    image.png

  2. 选择迁移对象后,在 选择迁移/同步范围 区域右侧的 目标端对象 列表中,鼠标悬停至目标表对象,单击显示的 设置

    image.png

  3. 设置 对话框中,输入标准的 SQL 语句中的 WHERE 子句,来配置行过滤。

    image

    SQL WHERE 语句的语法说明如下:

    • 列名不会进行大小写转换,请输入正确的列名,并对列名添加转义符(`)。例如,`col`

    • 过滤条件支持标准的 SQL WHERE 语句(仅支持 =!=<> 操作符),只有满足 WHERE 条件的数据才会被同步至目标数据库。例如,`id` > 200。

    • 过滤条件支持根据时间条件进行过滤,但请注意 SQL WHERE 语句中对时间的格式要求(yyyy-MM-dd HH:mm:ssyyyy-MM-dd)。

      例如,您需要过滤 2022 年 12 月 31 日之后的增量数据,请输入 `date_now` > '2022-12-31'`date_now` > '2022-12-31 00:00:00'

    • 如果您需要过滤某个时间段内的数据,请使用 and 或 or 语句。例如,您需要过滤 2021 年 12 月 31 日至 2022 年 4 月 1 日之间的数据,请输入 `init_date`>'20211231' and `init_date`<'20220401'

    • 过滤条件中需要使用英文单引号(')。例如 `address` in ('BEIJING','HANGZHOU')

  4. 配置完成后,单击 验证语法

    image

  5. 单击 确定

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