Skip to content

数据库查询组件使用说明

组件说明

该组件用于在数据库表中查找值,查询出的字段值传递到下游组件。

配置项说明

配置名称数据类型是否必须默认值描述
节点名称String-当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。
选择数据源String-指定数据源。
选择库String-下拉列表值为数据库schema值,当schema值为空时,下拉值为当前建立连接所用数据库名。
选择表String-指定转换操作表名称。
全局缓存Booleanfalse缓存行数,针对含有数据库查询组件的作业均生效。
局部缓存Booleanfalse缓存行数,只针对当前运行的作业生效。
从表中加载所有数据Booleanfalse当选择全局缓存或局部缓存时,可选择从表中加载所有数据,一次性把表中数据加载到缓存中。
缓存大小Integer0当选择全局缓存或局部缓存时,可配置缓存大小(行数)。与从表中加载所有数据互斥。
查询所需的关键字段--目标字段:表中字段。比较符:表中字段数据与流中数据比较条件。来源字段1:当比较符不为IS NULL/IS NOT NULL时,此值不能为空,该字段值为前置步骤输出流中值。来源字段2:当比较符为BETWEEN时,此值不能为空,该字段值为前置步骤输出流中值。
查询表返回的值--字段:表中字段。新的名称:默认与表中字段一致,也可以修改。默认值:当字段值为空时,返回默认值。类型:表字段的类型。
获取多条结果Booleanfalse返回根据条件查询出的多条结果。
多行结果时失败Booleanfalse启用此选项可在查找返回多个结果时强制该步骤失败。
查询失败则忽略Booleanfalse如果查找失败,则不传递该行。
排序String-如果查找查询返回多个结果,ORDER BY子句将帮助您选择要获取的记录。

FAQ

Q1: 关系型数据库输入和数据库查询有什么区别?
A1:

特性‌表输入 (Table Input)‌数据库查询 (Database Lookup)
‌主要用途‌从数据库中读取原始数据(单表或简单JOIN)根据输入流的字段值,动态查询其他表的数据(类似JOIN)
‌数据流向‌作为数据流的起点,直接读取数据库表或SQL结果在数据流中补充关联数据(需已有输入流)
‌查询触发方式‌一次性执行SQL,读取全部结果对输入流的每一行数据触发查询(逐行匹配)
‌性能‌适合批量读取大数据量(高效)数据量大时性能较低(需逐行查询)
‌参数传递‌支持变量替换(如 ${DATE})支持将输入流的字段值作为查询参数
‌典型场景‌提取主表数据关联维度表、代码表(如通过ID查名称)

Q2: 数据库查询都有哪些使用场景?
A2: 下面列出一些常见使用场景,以供参考:

  1. 数据补全‌
    ‌场景‌:需要从另一个表中获取附加信息来丰富当前数据。
    ‌示例‌:
    订单数据流中仅有 customer_id,需从客户表中查询对应的 customer_name 和 address。
    使用数据库查询组件,根据 customer_id 匹配客户表,将名称和地址添加到订单数据中。
  2. 代码转换
    ‌场景‌:将编码转换为可读值(如状态码转状态名称)。
    ‌示例‌:
    数据流中的 status_code 字段值为 1/2/3,需转换为 Active/Inactive/Pending。
    通过查询数据库中的 status_codes 表,将 status_code 映射为可读文本。
  3. 数据验证 ‌场景‌:验证数据是否符合业务规则或参考表的约束。
    ‌示例‌:
    检查输入的 product_id 是否存在于产品表中,若不存在则标记为无效记录。
    使用数据库查询组件验证 product_id 的有效性,过滤非法数据。
  4. 跨数据源关联‌
    ‌场景‌:需要关联不同数据库或数据源的表。
    ‌示例‌:
    主数据流来自MySQL的订单表,需关联Oracle数据库中的库存表,检查商品库存量。
    通过数据库查询组件跨库查询库存信息,实现数据关联。