文档

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. 根据提示完成后续的项目配置。