# 数据缓存
# 一. 需求场景
实现将第三方系统(演示中使用SQL Server模拟SAP)的供应商数据定时同步到本地缓存表(idemo_vendor_cache)。
- 实时查询痛点:频繁访问外部系统(如SAP)导致性能瓶颈
- 缓存价值:将第三方数据定时同步到本地数据库,提升查询效率
- 传统方案:需开发同步程序(代码量大、维护成本高)
- 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输出流
- 进入ESB管理界面 → "流程库" → "ESB输出流"
- 点击"添加"新建ESB流程
# 3.2 配置数据提取节点
- 拖入
SqlServer Select节点(实际生产替换为SAP节点) - 常规配置:
- 连接:选择源数据库(示例用DemoData)
- SQL:
SELECT * FROM idemo_vendor
▲ 配置SQL语句
- 返回配置:
- 右键Variables → 编辑 → 添加变量:
- 变量名:
vendors - 类型:对象数组
- 变量名:
- 编辑变量结构:
{ "code": "字符串", "name": "字符串", "contact": "字符串", "mobile": "字符串", "bu": "字符串" } - 字段映射:将查询结果字段连线到变量对应字段
- 右键Variables → 编辑 → 添加变量:
▲ 返回配置
- (高级)可直接使用整体赋值:
vendors: Result.rows
# 3.3 配置缓存节点
- 拖入
SqlServer Cache节点 - 常规配置:
- 连接:选择目标数据库(示例用DemoData)
- 缓存到表:选择
idemo_vendor_cache
▲ 配置缓存表
- 调用配置:
- 将
vendors变量的各字段连线到缓存表对应字段
- 将
▲ 调用配置
- (高级)若结构一致可直接整体映射
idemo_vendor_cache: Variables.vendors
# 3.4 保存ESB
- 点击保存按钮
- 命名示例:"数据缓存"
▲ 数据缓存示例图
# 四. 执行方式
# 方式1:定时任务
- 创建定时流程
- 添加"调用ESB"节点选择本ESB
▲ 定时任务调用数据缓存ESB
# 方式2:手动测试
- 创建测试流程
- 添加"调用ESB"节点选择本ESB
- 手动执行流程
▲ 手动发起调用数据缓存ESB
# 五. 注意事项
- 生产环境应将SQL查询替换为真实的SAP数据源节点
- 大数据量同步建议分批处理
- 缓存表建议建立适当索引
# 附录:表结构对照示例
| 源字段 | 变量字段 | 目标表字段 |
|---|---|---|
| code | code | vendor_code |
| name | name | name |
| contact | contact | contact |
| mobile | mobile | mobile |
| bu | bu | bu |
← 跨系统数据合并 如何让业务人员使用数据源 →