# 数据缓存

# 一. 需求场景

实现将第三方系统(演示中使用SQL Server模拟SAP)的供应商数据定时同步到本地缓存表(idemo_vendor_cache)。

  1. 实时查询痛点:频繁访问外部系统(如SAP)导致性能瓶颈
  2. 缓存价值:将第三方数据定时同步到本地数据库,提升查询效率
  3. 传统方案:需开发同步程序(代码量大、维护成本高)
  4. ESB方案:通过可视化配置实现免编程数据同步

# 二、准备工作

# 1. 缓存表设计(示例)

//确保已创建缓存表 `idemo_vendor_cache`
CREATE TABLE idemo_vendor_cache (
    vendor_code VARCHAR(50) PRIMARY KEY,
    name        VARCHAR(100),
    contact     VARCHAR(50),
    mobile      VARCHAR(20),
    bu          VARCHAR(50)
)

# 2. 关键字段说明

字段名 类型 对应源数据
vendor_code 字符串 SAP供应商ID
name 字符串 供应商名称
contact 字符串 联系人
mobile 字符串 联系电话
bu 字符串 所属大区

# 三. 配置步骤

# 3.1 创建ESB输出流

  1. 进入ESB管理界面 → "流程库" → "ESB输出流"
  2. 点击"添加"新建ESB流程

# 3.2 配置数据提取节点

  1. 拖入SqlServer Select节点(实际生产替换为SAP节点)
  2. 常规配置:
    • 连接:选择源数据库(示例用DemoData)
    • SQL:SELECT * FROM idemo_vendor

配置SQL语句 ▲ 配置SQL语句

  1. 返回配置:
    • 右键Variables → 编辑 → 添加变量:
      • 变量名:vendors
      • 类型:对象数组
    • 编辑变量结构:
      {
        "code": "字符串",
        "name": "字符串",
        "contact": "字符串",
        "mobile": "字符串",
        "bu": "字符串"
      }
      
    • 字段映射:将查询结果字段连线到变量对应字段

返回配置 ▲ 返回配置

  • (高级)可直接使用整体赋值:
    vendors: Result.rows
    

# 3.3 配置缓存节点

  1. 拖入SqlServer Cache节点
  2. 常规配置:
    • 连接:选择目标数据库(示例用DemoData)
    • 缓存到表:选择idemo_vendor_cache

配置缓存表 ▲ 配置缓存表

  1. 调用配置:
    • vendors变量的各字段连线到缓存表对应字段

调用配置 ▲ 调用配置

  • (高级)若结构一致可直接整体映射
    idemo_vendor_cache: Variables.vendors
    

# 3.4 保存ESB

  1. 点击保存按钮
  2. 命名示例:"数据缓存"

数据缓存示例图 ▲ 数据缓存示例图

# 四. 执行方式

# 方式1:定时任务

  1. 创建定时流程
  2. 添加"调用ESB"节点选择本ESB

定时任务调用数据缓存ESB ▲ 定时任务调用数据缓存ESB

# 方式2:手动测试

  1. 创建测试流程
  2. 添加"调用ESB"节点选择本ESB
  3. 手动执行流程

手动发起调用数据缓存ESB ▲ 手动发起调用数据缓存ESB

# 五. 注意事项

  1. 生产环境应将SQL查询替换为真实的SAP数据源节点
  2. 大数据量同步建议分批处理
  3. 缓存表建议建立适当索引

# 附录:表结构对照示例

源字段 变量字段 目标表字段
code code vendor_code
name name name
contact contact contact
mobile mobile mobile
bu bu bu