Solo DSP数据集成模块的架构设计

Solo DSP数据集成模块的架构设计

数据集成模块 - 架构设计文档 | Solo DSP

文档编号:DSP-ARCH-DI-001
版本号:v1.0.0
发布日期:2026-05-27
架构师:DSP架构团队
密级:内部公开
状态:✅ 已发布 | 最后更新: 2026-05-27


文档摘要

本文档详细阐述了DSP数据集成模块的架构设计,涵盖系统分层架构、核心组件设计、业务流程编排、双引擎(DataX/Kettle)集成方案、调度系统设计、监控告警机制及API接口规范。本模块采用企业级架构设计理念,支持向导式零代码配置与专业级Kettle深度集成双轨能力,满足从简单数据同步到复杂ETL转换的全场景数据集成需求。

>核心亮点:分层架构设计 | 双引擎支持 | 零代码配置 | 可视化编排


1. 架构概览

指标数值
任务创建模式2 种
执行引擎2 个
数据源支持50+
可视化配置100%

DSP数据集成模块采用分层架构设计,提供向导式零代码配置企业级Kettle深度集成双轨能力,支持从简单数据同步到复杂ETL转换的全场景数据集成需求。

>核心设计理念:
> -双引擎架构:DataX负责高性能数据同步,Kettle负责复杂数据转换,各取所长
> -双模式创建:平台创建(支持元数据自动触发)、外部导入两种任务创建模式,覆盖全场景
> -零代码配置:向导式界面,业务人员无需编程即可完成复杂ETL配置
> -企业级集成:完整的Kettle资源库管理、可视化编辑、远程执行能力


2. 系统架构设计

2.1 总体架构设计

>架构图说明:下图展示了数据集成模块的完整技术架构,包含数据源层、引擎层、管理层和目标层的全景视图,以及各层之间的数据流转关系。

架构层次说明:

层次名称核心功能技术组件
数据源层多源异构数据接入支持20+种数据源MySQL / Oracle / PostgreSQL / Hive / ClickHouse / MongoDB / Redis / Kafka / 文件系统 / Elasticsearch / API
数据集成引擎层数据同步与转换DataX引擎 + Kettle集成Reader/Writer插件、通道控制、资源库管理、任务导入、变量管理、可视化编辑器
任务管理与调度任务生命周期管理配置、映射、策略、调度、监控、告警Quartz + DAG引擎
元数据采集数据血缘追踪自动采集、历史记录、血缘关系与元数据管理模块深度集成
数据质量检查数据质量保障前置校验、清洗规则、质量报告完整性/一致性校验
目标数据层数据存储与消费数据仓库、数据湖、实时数仓、OLAP、消息队列、对象存储、搜索引擎、API服务层

>架构设计说明:
> -数据源层:支持20+种异构数据源,包括关系型数据库、NoSQL、大数据存储、消息队列和文件系统
> -数据集成引擎层:采用双引擎架构,DataX负责向导式ETL任务,Kettle负责复杂转换和外部任务集成
> -任务管理与调度:提供完整的任务生命周期管理,包括配置、映射、策略、调度、监控和告警
> -元数据采集:与元数据管理模块深度集成,自动采集数据血缘和变更历史(紫色连线表示元数据同步)
> -数据质量:集成数据质量检查能力,支持前置校验和清洗规则
> -目标数据层:支持多种数据目标,实现数据仓库、数据湖、实时数仓的统一集成

2.2 核心组件清单

组件名称所属层级功能描述技术实现
任务管理服务服务层负责任务的创建、查询、更新、删除等生命周期管理Spring Boot + MyBatis
调度编排服务服务层处理任务的定时调度、依赖触发、事件触发等调度逻辑Quartz + DAG引擎
资源库服务服务层管理Kettle资源库连接、任务导入导出、版本控制Kettle Java API
监控告警服务服务层任务执行监控、日志收集、异常告警、数据质量检查Prometheus + AlertManager
元数据服务服务层数据源元数据采集、数据血缘追踪、影响分析Apache Atlas API
DataX引擎引擎层高性能数据同步引擎,支持批量数据读写Alibaba DataX
Kettle引擎引擎层复杂数据转换引擎,支持ETL流程编排Pentaho Kettle
SQL引擎引擎层支持SQL数据转换、存储过程调用Calcite + 原生JDBC

3. 业务流程设计

数据集成模块提供两种主要的任务创建模式:平台创建任务、外部任务导入。其中平台创建模式支持通过元数据采集自动触发任务创建。

3.1 业务流程总览

业务流程说明:

  • 新建任务:用户进入数据集成模块,选择创建新任务
  • 任务类型选择:支持两种模式:平台创建(向导式)和外部任务导入(Kettle资源库)
  • 平台创建流程:选择源数据源/表 → 选择目标数据源/表 → 选择同步模式 → 配置映射 → 设置并发 → 保存任务
  • 外部任务流程:创建资源库 → 设置变量 → 配置调度任务
  • 同步模式判断:全量同步(直接映射字段)或增量同步(设置增量字段+初始值)
  • 任务调度:支持定时调度、手动触发、依赖任务触发三种执行方式
  • 执行结果:记录执行日志,成功或失败都会更新元数据采集历史

3.2 任务创建入口 - 统一门户

模式说明面向用户
平台创建(向导模式)向导式配置 · 零代码ETL业务人员
外部导入(专业模式)Kettle资源库 · 专业ETL技术人员

>子流程:平台创建支持元数据采集自动触发(Metadata Driven Pipeline)

3.3 平台创建流程 - 五步向导式配置

步骤名称关键操作
1📡 选择数据源源数据源/表选择、连接测试验证、数据预览确认
2🎯 选择目标目标数据源/表选择、自动创建表结构、前置清理策略
3⚡ 同步模式全量/增量选择、增量字段配置、初始值设定
4🔗 字段映射自动字段匹配、自定义转换规则、数据类型映射
5⚙️ 高级配置并发通道数(1-32)、批量大小(100-10000)、容错率(0-100%)、速率限制

全量同步模式:

  1. 清空目标表或创建新表(可配置保留/清空策略)
  2. 批量读取源数据(默认1000条/批,可调)
  3. 应用字段映射和转换规则(支持函数转换)
  4. 批量写入目标表(支持事务控制)

增量同步模式:

  1. 读取上次同步位置(checkpoint持久化机制)
  2. 按增量字段筛选变更数据(支持多字段)
  3. 支持时间戳/自增ID/CDC多种增量识别模式
  4. 支持增量数据合并策略(追加/更新/合并)

高级配置选项:

  • 并发通道数:1-32通道并行(根据数据源调整)
  • 批量大小:100-10000条/批(影响性能与内存)
  • 容错率:0-100%错误容忍(脏数据处理策略)
  • 速率限制:支持QPS/TPS限速保护数据源

任务保存与调度配置:

  • ✓ 保存任务到仓库(支持版本管理)
  • ✓ 配置调度策略(Cron表达式/固定间隔/依赖触发)
  • ✓ 设置告警规则(邮件/企业微信/短信/Webhook)
  • ✓ 配置重试策略(失败重试次数/间隔)
  • ✓ 设置超时控制(任务执行超时时间)
  • ✓ 数据质量检查(完整性/一致性校验)
  • ✓ 并发控制(通道数/批量大小配置)
  • ✓ 容错处理(错误记录/跳过策略)
  • ✓ 发布上线(一键发布/灰度发布)

3.4 Kettle外部导入 - 企业级ETL集成

步骤名称关键操作
1🏦 资源库连接数据库/文件资源库、安全认证配置
2📂 浏览与导入树形目录浏览、选择ktr/kjb文件
3🔧 变量配置环境变量设置、参数动态替换
4✏️ 可视化编辑在线编辑任务、实时预览数据
5▶️ 执行Carte远程、集群部署

支持的资源库类型:

  • 数据库资源库:MySQL/Oracle/SQLServer/PostgreSQL
  • 文件资源库:本地文件系统/网络共享/S3对象存储
  • Pentaho Server:企业级资源库,支持版本控制与权限

核心功能特性:

  • 任务导入:自动解析ktr/kjb,提取数据源与转换逻辑
  • 变量管理:支持命名参数、环境变量、运行时参数
  • 版本控制:记录修改历史,支持版本对比与回滚

执行模式:

  • 本地执行:直接在DSP服务器上运行Kettle任务
  • Carte远程:通过Carte服务分布式执行,支持负载均衡
  • 集群模式:Master-Slave架构,支持任务分片并行

3.5 任务调度与执行监控 - 全生命周期管理

阶段组件说明
调度触发方式定时调度 / 手动触发 / 依赖触发Cron表达式 / 固定间隔 / 前置任务完成
任务调度器Quartz调度引擎DAG依赖解析、分布式调度协调
任务执行引擎DataX引擎 / Kettle引擎并发控制、资源隔离、熔断保护
执行结果处理成功 / 失败日志记录、告警通知、重试机制
监控告警中心邮件 / 企业微信 / 短信 / Webhook多级告警策略
日志记录与数据血缘执行日志 / 数据血缘 / 影响分析全链路记录、追踪、溯源

4. Kettle 深度集成设计

>企业级Kettle集成能力矩阵

能力说明
🗂️ 资源库管理支持文件库/数据库库连接,浏览目录结构,版本控制
📤 任务导入从资源库导入ktr/kjb文件,自动解析转换,提取配置
📝 可视化编辑在线编辑Kettle任务,实时预览数据流,步骤调试
▶️ 远程执行通过Carte服务远程执行,支持集群部署,负载均衡

4.1 资源库管理系统

资源库管理是Kettle集成的核心能力,支持连接外部Kettle资源库,实现任务的集中管理和版本控制。

功能说明
多资源库支持支持数据库资源库、文件资源库、企业级资源库(Pentaho Server)等多种类型
安全连接支持用户名/密码认证、SSL加密连接、连接池管理,保障资源库访问安全
目录浏览树形结构展示资源库中的任务和转换,支持文件夹创建、重命名、移动
任务导入一键导入资源库中的Kettle任务(kjb)和转换(ktr),自动解析依赖关系
双向同步支持从资源库导入到DSP,也支持将DSP编辑的任务导出到资源库
版本管理记录任务修改历史,支持版本对比、回滚到指定版本

资源库连接配置:

配置项说明示例值
资源库名称资源库在DSP中的显示名称生产环境Kettle库
资源库类型数据库资源库 / 文件资源库 / Pentaho Server数据库资源库
数据库连接资源库所在数据库的连接信息MySQL:3306/kettle_repo
认证方式资源库访问认证配置用户名/密码
描述资源库用途说明生产环境ETL任务集中管理

4.2 可视化任务编辑器

DSP提供基于Web的Kettle任务可视化编辑器,无需安装Kettle客户端即可在线编辑任务。

画布编辑:

  • 拖拽式组件添加(输入、输出、转换、脚本等)
  • 组件连线配置数据流
  • 支持多选、复制、粘贴、撤销/重做
  • 画布缩放、网格对齐、自动布局

属性配置:

  • 组件属性面板动态渲染
  • 数据库连接选择器
  • 字段映射可视化配置
  • 变量和参数管理

智能辅助:

  • 组件搜索和快速添加
  • 自动完成和语法高亮
  • 配置验证和错误提示
  • 模板库和最佳实践推荐

预览调试:

  • 单步执行和断点调试
  • 数据预览和抽样检查
  • 执行日志实时查看
  • 性能分析和优化建议

4.3 远程执行与集群部署

支持通过Carte服务进行远程任务执行,实现分布式ETL处理和负载均衡。

Carte服务架构:

  • Master节点:任务分发与调度
  • Slave节点:任务执行引擎
  • 负载均衡:智能任务分发
  • 故障转移:自动切换备用节点

安全与监控:

  • HTTPS加密通信
  • 访问令牌认证
  • 执行日志集中收集
  • 资源使用监控告警

5. DataX 引擎设计

DataX是阿里巴巴开源的异构数据源离线同步工具,DSP集成DataX作为高性能数据同步引擎。

5.1 核心架构

架构组件:

  • Reader 读取:MySQL Reader / Oracle Reader / HDFS Reader / …
  • Framework 核心:通道(Channel)- 数据缓冲 / 调度器(Scheduler)- 并发控制
  • Writer 写入:MySQL Writer / Oracle Writer / HDFS Writer / …

5.2 性能优化策略

优化维度策略
并发控制支持多通道并行读写、通道数可配置(1-32)、自动负载均衡、背压机制防止OOM
批量处理批量读取提升IO效率、批量写入减少网络往返、批量大小可配置、支持事务批量提交

6. 调度系统设计

6.1 调度触发方式

触发方式说明适用场景配置示例
Cron表达式基于Unix Cron的定时调度周期性数据同步0 0 2 * * ?(每天凌晨2点)
固定间隔按指定时间间隔触发准实时数据同步每5分钟执行一次
依赖触发前置任务完成后触发工作流编排任务A完成后执行任务B
事件触发监听特定事件触发事件驱动场景文件到达触发
手动触发用户手动执行临时数据同步点击执行按钮

6.2 DAG依赖编排

支持复杂的工作流编排,通过DAG(有向无环图)定义任务之间的依赖关系。

编排特性说明
串行执行任务按依赖顺序依次执行,前一个任务成功后才执行下一个
并行执行无依赖关系的任务并行执行,提升整体执行效率
分支合并支持条件分支和结果合并,实现复杂业务逻辑

7. 监控告警设计

7.1 监控指标体系

指标类型具体指标
性能指标读取/写入速率(条/秒)、吞吐量(MB/秒)、延迟时间、资源使用率
质量指标数据完整性、数据一致性、错误记录数、脏数据比例
时效指标任务执行时长、调度延迟、超时告警、SLA达成率

7.2 告警规则配置

告警类型触发条件告警级别通知方式
任务失败任务执行返回非零状态🔴 紧急邮件+短信+企业微信
执行超时执行时间超过阈值🟡 警告邮件+企业微信
数据异常错误率超过阈值🟡 警告邮件+企业微信
性能下降吞吐量低于基线🔵 提示邮件

8. API接口设计

8.1 任务管理API

方法路径说明
POST/api/integration/tasks创建数据集成任务
GET/api/integration/tasks/{taskId}获取任务详情
PUT/api/integration/tasks/{taskId}更新任务配置
DELETE/api/integration/tasks/{taskId}删除任务
POST/api/integration/tasks/{taskId}/execute手动执行任务

8.2 资源库管理API

方法路径说明
POST/api/integration/repositories创建Kettle资源库连接
GET/api/integration/repositories/{repoId}/browse浏览资源库目录
POST/api/integration/repositories/{repoId}/import从资源库导入任务

8.3 监控查询API

方法路径说明
GET/api/integration/tasks/{taskId}/logs获取任务执行日志
GET/api/integration/tasks/{taskId}/metrics获取任务执行指标
GET/api/integration/dashboard获取监控大盘数据

> © 2025 Solo DSP - 数据集成模块架构设计文档