数据集成模块 - 架构设计文档 | 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 - 数据集成模块架构设计文档

Logo

一站式 AI 云服务平台

更多推荐