# Cc_ETL **Repository Path**: xzjsccz/Cc_ETL ## Basic Information - **Project Name**: Cc_ETL - **Description**: Cc-ETL 是一款基于 XXL-Job 深度改造的可视化定时任务调度平台,专为数据集成和任务编排而设计。平台通过可视化拖拽界面实现复杂任务流程的编排,支持多种任务类型,并深度集成 DataX 实现高效的数据同步能力。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: release - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 117 - **Forks**: 52 - **Created**: 2024-11-02 - **Last Updated**: 2026-09-26 ## Categories & Tags **Categories**: task-schedule **Tags**: xxl-job, SpringBoot, Java ## README # Cc-ETL
基于 XXL-Job 的可视化任务调度与数据集成平台
拖拽式任务编排 · DataX 数据同步 · JavaFX 桌面管理端
Cc-ETL 在 [XXL-Job](https://github.com/xuxueli/xxl-job) 基础上深度改造,提供**可视化定时任务调度**与**多数据源集成**能力:通过拖拽画布编排任务依赖,支持 11 种运行模式,并集成 [DataX](https://github.com/alibaba/DataX) 实现数据库间全量/增量同步,适合企业 ETL、运维自动化与数据中台等场景。 > 适合「不想上 Airflow + DolphinScheduler + Kettle 全套,但又需要可视化 DAG、定时调度、多数据源同步」的团队。 **项目当前处于测试阶段,部分功能仍在开发与优化中,欢迎下载学习使用。** | 链接 | 地址 | |------|------| | GitHub | https://github.com/xiaozhaoCcz/CC_ETL | | Gitee | https://gitee.com/xzjsccz/Cc_ETL | | 在线文档 | http://175.178.249.190/blog/post/298 | | 演示视频 | [Bilibili 在线观看](https://www.bilibili.com/video/BV1TBCkBzEex/) | --- ## 目录 - [一、核心功能](#一核心功能) - [二、典型使用场景](#二典型使用场景) - [三、系统架构](#三系统架构) - [四、项目展示](#四项目展示) - [五、快速开始](#五快速开始) - [六、模块说明](#六模块说明) - [七、技术栈](#七技术栈) - [八、文档与常见问题](#八文档与常见问题) - [九、发展规划](#九发展规划) - [十、贡献与支持](#十贡献与支持) --- ## 一、核心功能 ### 1. 可视化任务编排 | 能力 | 说明 | |------|------| | **拖拽画布** | 节点连线、拓扑排序自动解决执行顺序,支持串行/并行、循环依赖检测 | | **条件分支** | 支持 IF 条件节点,按表达式路由下游分支 | | **局部调试** | 通过节点状态(开始/终止/忽略/阻塞)裁剪执行范围,无需单独开发调试入口 | | **参数传递** | 任务间通过 `#{任务名}.属性` 语法引用上游执行结果 | | **实时反馈** | 执行状态、日志流式展示,小地图导航,多面板布局 | | **编排执行器** | 独立 Compose 执行器按依赖顺序触发下游任务,与 Admin 调度无缝配合 | 适用于:多步骤流水线、有依赖的批处理、ETL 多阶段流程。 ### 2. 任务调度 - 兼容 **XXL-Job**:Cron 表达式、动态增删改任务、多种路由与阻塞策略 - **失败策略**:失败重试、告警、忽略等可配置 - **超时与重试**:单任务超时时间、重试次数独立配置 - **告警通知**:邮件、Webhook,可对接钉钉/飞书/企业微信 适用于:定时报表、定时同步、定时巡检、补数重跑等。 ### 3. 数据集成(DataX) - **多数据源**:MySQL、Oracle、PostgreSQL 等,可扩展 - **同步方式**:全量、增量、条件过滤,通过 JSON 配置即可 - **与编排结合**:可将「数据同步」作为编排中的一环,前后接清洗、转换或推送 > ⚠️ PC 端 DataX 配置与执行界面正在持续更新中。 适用于:库到库同步、数仓 ODS 层接入、跨库数据迁移。 ### 4. 多任务类型(11 种运行模式) | 类型 | 说明 | 典型用途 | |------|------|----------| | **Bean** | Spring Bean 方法调用 | 业务逻辑、内部服务调用 | | **API** | HTTP 请求 | 调用第三方接口、内部微服务 | | **SQL** | 执行 SQL 脚本 | 数据清洗、统计、归档 | | **DataX** | DataX 同步任务 | 数据库/表同步 | | **GLUE(Java)** | 在线 Java 脚本 | 自定义逻辑、快速验证 | | **GLUE(Shell)** | Shell 脚本 | 运维脚本、文件处理 | | **GLUE(Python/PHP/Nodejs/PowerShell/C#)** | 多语言脚本 | 一次性任务、多语言扩展 | 适用于:混合编排(例如先 API 拉数 → SQL 清洗 → DataX 入仓 → Shell 发通知)。 ### 5. 监控与运维 - **执行记录**:每次触发的开始/结束时间、状态、耗时 - **日志查看**:控制台日志、执行日志持久化与检索 - **Dashboard**:任务运行概览与健康状态 - **告警**:邮件、Webhook 通知,便于对接钉钉/飞书等 适用于:任务失败排查、性能分析、值班告警。 ### 6. 权限管控 - **角色与权限**:按角色划分任务、执行器、数据源等资源的访问与操作权限 - **操作审计**:关键操作可追溯,便于企业合规与安全管控 - **任务审批**:支持任务变更审批流程(开发中) 适用于:多团队共用平台、生产环境隔离、敏感任务与数据源管控。 ### 7. 版本管理 - **配置版本**:任务、编排、数据源等配置支持版本记录与回溯 - **变更追溯**:可查看历史版本、对比差异、按需回滚,降低误改风险 适用于:任务配置变更审计、上线前回滚、多环境配置管理。 ### 8. PC 端(JavaFX) - **离线使用**:不依赖浏览器,树形视图、画布、小地图、日志面板一体化 - **高级配置**:路由策略、阻塞处理、失败策略、超时、重试等与 Admin 一致 - **交互体验**:撤销/重做、快捷键、面板可展开/收起/弹出独立窗口 - **质量保障**:功能经 489 个测试用例覆盖,详见 [GUI 功能测试文档](doc/测试文档/GUI功能测试文档.md) --- ## 二、典型使用场景 ### 场景一:数据仓库 ETL 流程 ``` 业务库 ──DataX──▶ ODS ──SQL/Bean──▶ DWD/DWS ──API/Shell──▶ 报表/推送 ``` - 使用 **DataX** 将业务库(MySQL/Oracle 等)全量或增量同步到 ODS 层 - 使用 **SQL** 或 **Bean** 任务做清洗、维度关联、指标计算 - 使用 **编排** 将「同步 → 清洗 → 加载」串成一条流水线,按依赖顺序执行 - 可选:最后接 **API** 或 **Shell** 推送报表或触发下游系统 **价值**:可视化配置、减少手写脚本,便于交接与审计。 ### 场景二:业务报表与数据推送 **流程**:`定时统计/汇总 → 生成报表或文件 → 邮件/Webhook 推送` - 使用 **SQL** 或 **Bean** 做日/周/月统计 - 使用 **Shell** 生成 Excel/CSV 或调用报表服务 - 使用 **API** 或 **邮件/Webhook** 将结果推送给业务或领导 **价值**:定时自动化,减少人工取数、发邮件。 ### 场景三:系统运维自动化 **流程**:`日志清理/备份 → 健康检查 → 异常告警` - 使用 **Shell** 做日志切割、归档、备份脚本 - 使用 **API** 或 **Bean** 调用健康检查接口,判断服务状态 - 配置 **失败告警**、**邮件/Webhook**,异常时及时通知 **价值**:例行维护自动化,故障早发现、早处理。 ### 场景四:第三方 API 数据集成 **流程**:`定时调用第三方 API → 解析落库 → 与内部数据联动` - 使用 **API** 任务定时拉取第三方数据(RESTful/SOAP 等) - 使用 **Bean** 或 **SQL** 解析、清洗并写入本地库 - 需要时可与 **DataX**、**SQL** 等组合,参与数仓或报表链路 **价值**:统一在平台内管理外部数据接入,可编排、可监控。 ### 场景五:学习与二次开发 - **任务调度**:学习分布式调度、Cron、任务依赖与拓扑编排 - **数据集成**:学习 DataX、多数据源 ETL 设计 - **桌面应用**:JavaFX 界面、多模块 Spring Boot 架构,可作为企业级桌面端参考 更多扩展方向见 [功能扩展规划](doc/Cc-ETL功能扩展规划.md)。 --- ## 三、系统架构 ``` ┌─────────────┐ REST / WebSocket ┌──────────────┐ │ cc-job-gui │ ◀──────────────────────▶ │ cc-job-admin │ ◀── Cron 调度 │ (JavaFX) │ │ 调度中心 │ └─────────────┘ └──────┬───────┘ │ ┌──────────────────────┼──────────────────────┐ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │ cc-job-executor │ │executor-compose │ │ MySQL │ │ 单任务执行器 │ │ 编排执行器 │ │ 配置持久化 │ │ Bean/API/SQL/ │ │ 拓扑排序+依赖 │ └─────────────┘ │ Shell/DataX/GLUE│ │ 触发下游任务 │ └─────────────────┘ └─────────────────┘ ``` **数据流**:PC 端配置 → 持久化到 MySQL → Admin 调度 → Executor 执行 → 状态与日志回传展示 | 组件 | 职责 | |------|------| | **Admin** | 任务与执行器注册、Cron 调度触发、监控、REST API | | **Executor** | 执行 Bean/API/SQL/Shell/DataX/GLUE 等单任务,回调状态与日志 | | **Executor-Compose** | 任务组编排执行,拓扑排序、条件分支、参数上下文传递 | | **GUI** | JavaFX 桌面端,任务设计、画布编排、日志与监控 | | **cc-job-xo** | 数据实体、Mapper 与持久层,Admin 与 GUI 共用 | | **cc-job-core** | XXL-Job 调度与执行核心,Glue 引擎、Handler 框架 | --- ## 四、项目展示 ### 界面预览 #### PC 端主界面