1 概述
1.1 版本
| 服务器版本 |
|---|
| v8.0.0及之后版本 |
1.2 应用场景
【条件SQL】组件非常适用于需要根据数据内容或外部参数进行判断和分支处理的场景,例如:
场景一:智能数据同步与清洗
- 场景:在同步用户数据时,需要根据用户的“状态”字段进行不同处理。例如,状态为“活跃”的用户需要同步到业务库A,状态为“休眠”的用户需要同步到归档库B,状态为“注销”的用户则直接跳过不同步。
- 组件作用:通过设置多个条件(如 status = ‘active’, status = ‘inactive’),为每个条件编写对应的 INSERT INTO … SELECT …语句,实现一条数据流水线完成多种处理逻辑。
场景二:动态数据路由与分发
- 场景:处理交易数据时,需要根据交易金额的大小将数据分发到不同的分析表中(例如:大额交易表、普通交易表)。
- 组件作用:设置条件如 amount > 10000和 amount <= 10000,分别执行插入到不同目标表的SQL,实现数据的自动分类与路由。
场景三:参数驱动的差异化处理
- 场景描述:在数据备份或数据导出任务中,根据传入的业务日期参数(如 $biz_date),决定是处理全量数据还是某一天的增量数据。
- 组件作用:可以设置条件判断参数是否为空或为特定值,从而执行全量查询SQL或带日期条件的增量查询SQL。
1.3 功能简介
【条件SQL】允许开发者根据一个或多个预定义的条件,动态地执行不同的SQL脚本,从而实现灵活、有分支的数据处理逻辑。
条件SQL组件是将传统的“IF-ELSE”编程逻辑引入到可视化的数据流程中,避免编写冗长且复杂的静态SQL,使数据处理流程更加清晰、智能且易于维护。
2 功能说明
条件SQL主要配置包括:数据源、执行条件。
1、数据源
配置需要执行的SQL的数据来源,下拉选项为当前应用内已配置过的数据连接且当前用户有使用权限的选项。
目前支持的数据连接类型包括:MySQL、SQL Server、Oracle、达梦、PostgreSql、PolarDB O、ClickHouse,后续将逐步进行扩充。
2、执行条件
这是组件的核心配置部分,主要包括:条件、SQL和执行模式。
1)条件
输入执行某个SQL语句需要满足的条件,通常是基于任务参数或上游数据字段。
示例1(基于参数):${is_full_load} = true
示例2(基于字段,需在SQL中判断):1=1(这是一个永远为真的条件,常用于设置“默认”或“其他”分支)。
注:条件表达式不需要包含 WHERE关键字。
2)SQL
编写当上述条件满足时你想要执行的完整SQL语句。这可以是数据查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)等任何合法SQL。
示例:
-- 条件为 ${user_type} = 'VIP' 时执行的SQL
INSERT INTO vip_user_table
SELECT user_id, user_name
FROM source_table
WHERE status = 'active';3)执行模式
在配置区域的右上角,有两个重要的执行模式选项,它们决定了多个条件之间的执行逻辑:
①全部执行(默认模式):
- 逻辑:组件会从上到下依次判断每一个条件。对于所有满足为真(True)的条件,它们对应的SQL语句都会被执行。
- 适用场景:多个条件之间互不排斥,需要同时执行多个操作。例如,既要把数据同步到A表,又要同步一份到日志B表。
②满足一个条件执行后不再执行:
- 逻辑:组件会从上到下依次判断条件,一旦发现某个条件为真(True),则执行其对应的SQL语句,然后立即结束整个组件的运行,后续条件将被跳过。
- 适用场景:典型的“IF-ELSE IF-ELSE”逻辑,多个条件互斥。例如,根据用户类型进行不同处理,一个用户只能是VIP或普通用户,只需执行一个分支。
3 总结
通过条件SQL组件,您可以:
- 简化流程:将多个串行任务节点合并为一个智能的条件分支节点。
- 提升灵活性:轻松应对复杂的业务逻辑变化,只需修改条件或SQL,而无需重构整个数据流水线。
- 清晰管理:所有分支逻辑在一个界面中集中管理,一目了然。
作者:fancy 创建时间:2025-12-03 10:03
最后编辑:fancy 更新时间:2025-12-03 17:18
最后编辑:fancy 更新时间:2025-12-03 17:18
扫码关注网盛数新公众号,获取更多帮助资料