SQL 条件过滤数据

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

适用场景

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

使用限制

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

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

操作步骤

  1. 新建数据同步项目,并配置至 选择同步对象 步骤。

    详情请参见 数据同步 模块相应类型的创建数据同步项目文档。

  2. 选择同步对象后,在 选择同步范围 区域右侧的 目标端对象 列表中,鼠标悬停至目标表对象。

  3. 单击显示的 设置

    image
  4. 设置 对话框中,输入标准的 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')

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

    image
  6. 单击 确定

  7. 根据提示完成后续的项目配置。