# 数睿通数据中台 **Repository Path**: zrxjava/srt-data-center ## Basic Information - **Project Name**: 数睿通数据中台 - **Description**: 数睿通数据中台是采用 Vue3,Ts,Spring Cloud Alibaba、SpringSecurity、Spring Cloud Gateway、SpringBoot、Nacos、Redis、Mybatis-Plus,Tidb,Flink,Hadoop 等最新技术,开发的全新数睿通数据中台,解决数据孤岛问题,实现数据统一口径标准,自定义数据开发任务,帮助企业,政府等解决数据问题! - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 521 - **Forks**: 226 - **Created**: 2023-01-26 - **Last Updated**: 2026-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: 数据中台, 大数据, flink, hadoop ## README ## 项目说明 srt-cloud 是采用 Vue3,Ts,Spring Cloud Alibaba、SpringSecurity、Spring Cloud Gateway、SpringBoot、Nacos、Redis、Mybatis-Plus,Tidb,Doris,Flink,Hadoop 等最新技术,开发的数睿通2.0数据中台,包含数据集成,数据开发,数据治理,数据资产,数据服务,数据集市等模块,解决数据孤岛问题,实现数据统一口径标准,自定义数据开发任务,帮助企业,政府等解决数据问题!(源码只开源了 **数据集成** 部分,并且对数据库支持有限,完整源码,部署文档(支持 docker 一键部署)等获取方式拉到底见文末) ## 功能模块说明 ### 数据集成 - **数据库管理**:统一管理关系型数据库、分析型数据库和大数据数据源,支持连接测试、库表查询、元数据查看、表搜索和分页预览。当前支持 MySQL、Oracle、SQL Server、PostgreSQL、Greenplum、MariaDB、DB2、达梦、KingbaseES、GBase 8a、Hive、SQLite、Sybase、Doris、MongoDB、ClickHouse、TDengine、StarRocks 等数据源。 - **API 管理**:管理 API 类型数据源,维护认证信息、请求参数和连接配置。 - **文件管理**:管理用户上传的文件数据。 - **数据接入**:支持 DBSwitch、SeaTunnel 和 API 接入,将业务数据同步至中台贴源层。 - **数据填报**:支持自定义填报表单、字段配置、数据录入与查询。 - **贴源数据**:查看接入到 ODS 层的数据表、数据内容和同步记录。 ### 可视化 ETL - **可视化编排**:通过拖拽节点和连接画布构建数据加工流程,支持数据读取、转换、合并、清洗、过滤、加解密、脱敏和写入。 - **事件驱动执行引擎**:节点间使用边级数据通道传输数据,本地 DAG 按事件推进;支持背压、停止广播、共享超时调度和异常传递,降低复杂流程中的轮询与线程消耗。 - **数据合并**:支持 UNION、JOIN、APPEND。UNION 按字段名对齐;JOIN 支持链式、星型和树型关联、组合关联键以及内连接、左连接、右连接,并通过 H2 临时表落盘缓解大数据量 JOIN 的内存压力。 - **条件与脚本节点**:支持“如果 / 否则如果 / 否则”条件分支,以及 SQL、Shell、Python 脚本节点;停止或超时时会同步终止外部进程。 - **流程参数**:支持文本、整数、小数和布尔参数,每次运行保存参数快照,并在节点启动前解析流程参数、系统时间和变量表达式。 - **字段契约与发布校验**:根据画布入边推导节点依赖和输入输出字段,展示连线字段数量与明细;发布前检查依赖、字段映射、字段缺失和已知类型不兼容。 - **节点插件机制**:普通输入、转换、输出和脚本节点可通过独立插件 jar 扩展;插件可声明 `configSchema` 由前端动态生成配置表单,也可注册字段推导器。条件分支和多输入合并等涉及平台连线规则的节点,需要通过源码方式开发。 - **运行与调度**:支持本地执行;配置并启用 DolphinScheduler 后,可使用流程级调度,发布、取消发布、删除和启动实例可与 DolphinScheduler 工作流联动。 - **流程日志**:查看流程、节点和运行日志,支持停止运行中的流程。 ### 可视化 BI - **大屏管理**:支持大屏创建、编辑、预览、克隆、发布和链接分享。 - **AI 生成大屏**:支持通过自然语言生成可编辑的大屏草稿,也可以上传设计参考图,由多模态模型识别布局、组件和视觉风格;支持替换当前画布或基于现有大屏继续调整。 - **大屏数据配置**:支持静态数据、动态请求、公共接口和中台数据;中台数据可选择项目、数据表、字段并预览数据。 - **AI 数据处理**:可以根据接口响应、目标组件示例和用户要求生成数据过滤与转换逻辑,辅助适配柱状图、折线图、饼图、散点图、雷达图、表格和指标卡等组件。 ### 数据开发 - **数据表**:按数仓分层查看表结构和数据,支持 SQL 控制台;项目中台库可以选择 StarRocks,支撑实时 OLAP、宽表分析和 BI 查询。 - **数据生产**:支持 SQL、DDL、Flink SQL 等作业开发、校验、调试、执行和发布。 - **数据指标** - **指标管理**:通过分类树管理基础指标和复合指标,维护数据来源、聚合方式、过滤条件、维度、数据类型和单位;支持 AI 生成指标配置草稿,确认后保存。 - **指标模型**:将多个指标按照统一维度生成分析宽表,支持表关联、复合指标依赖、覆盖、追加、更新和拉链表等刷新方式。 - **执行与调度**:支持手动执行和周期调度,可查看执行 SQL、日志、耗时、记录数和错误信息。 - **AI 建模**:根据候选指标和自然语言要求生成指标模型草稿,所有结果回显后由用户确认。 - **调度中心**:管理数据开发作业的流程编排、发布和执行记录。 - **运维中心**:查看和管理作业实例、运行状态和日志。 - **资源中心**:管理 Flink 集群、Hadoop 集群和 Flink 任务 jar。 - **配置中心**:管理 Flink SQL 执行配置。 ### 数据任务链 - **任务链管理**:按步骤串联 DBSwitch、SeaTunnel、API 接入、ETL 和数据开发调度任务,支持新增、编辑、删除、排序、启停、发布、取消发布和手动执行。 - **执行记录**:按名称、触发类型、运行状态和时间范围查询任务链实例;支持停止运行、查看总日志、步骤状态和节点日志。 ### 数据服务 - **API 目录**:通过参数、SQL 和 JSON 工作台配置动态生成 API,支持在线测试、上线下线和配置版本控制。 - **API 权限**:对私有 API 进行用户或应用授权。 - **API 日志**:按时间、状态和接口查询调用日志,辅助定位服务问题。 ### 数据治理 - **元数据管理**:提供元模型、元数据采集、周期任务、采集记录和元数据查看。 - **数据血缘**:根据数据接入、ETL 和数据开发关系构建血缘图,追溯数据来源与流向。 - **数据标准**:维护数据标准、标准清洗配置和执行日志。 - **数据质量**:维护质量规则、检测日志和错误主题数据。 - **主数据管理**:支持主数据建模、发布、维护以及接口、消息和数据表派发。 - **数据标签**:管理标签类型、实体和类目,并支持标签即席查询与导出。 - **数据推送**:配置数据推送实现并查看任务状态与日志。 - **数据预警**:维护预警指标、监测脚本、预警通知和实证数据。 ### 数据资产与数据集市 - **数据资产**:支持资源目录、数据库和 API 资源挂载,以及资产统计总览。 - **数据集市**:提供资源目录、API 目录、我的应用、我的申请和服务审批,形成数据资源申请与授权闭环。 ### 数据安全 - **安全等级**:内置公开、内部、机密、绝密四种等级,并支持自定义。 - **脱敏规则**:支持掩码、替换、加密和哈希等脱敏方式。 - **数据权限**:对表和字段配置访问权限,并应用于贴源数据、填报查询、数据开发、标签即席查询和数据服务返回结果。 - **审计与日志**:记录登录日志、操作审计日志和接口调用日志。 ### 平台管理 - **数据项目管理**:以项目作为数据隔离和协作边界,关联用户与中台数据仓库;系统库支持 MySQL、PostgreSQL、达梦等数据库,中台库可按项目选择数据源。 - **数仓分层**:展示和维护项目数仓分层结构。 - **组织权限**:提供用户、机构、岗位、角色、菜单和机构级数据权限管理。 - **基础管理**:提供数据字典、附件、定时任务和短信平台管理。 ### AI 能力 - 支持 Ollama 本地模型,以及 OpenAI 或其他 OpenAI 兼容接口。 - AI 能力已用于指标创建、指标模型创建、BI 大屏生成、参考图理解和 BI 数据转换等场景。 - AI 生成结果以配置草稿或可编辑结构回显,用户确认后再保存,不直接绕过业务校验。 ## 系统数仓架构 系统数仓可以在全局项目管理中配置不同租户的数据仓库,在数据集成集成到ods层之后, 可以通过数据生产进行数据开发,数据整体流向图如下: ###### ![数睿通数仓架构图](images/数睿通数仓架构图.png) 关于数仓为什么要分层:分层可以有助于数据的管理,同时每次取数只需要获取统计分析过的成品就可以,不需要从源头数据反复计算,避免了计算资源的浪费,通常源头数据量较大,并且中间的处理逻辑较为复杂,所以采用建模分层的方式解决,通常表的前缀都用层级来定义。 ## 系统核心技术栈 前台: - vue3 - vite - typeScript - element-plus - pinia - 。。。 后台: - Spring Cloud Alibaba - SpringSecurity - Spring Cloud Gateway - SpringBoot - Nacos - Redis - Mybatis-Plus - mysql8.0 - tidb - doris - flink - flink cdc - flink sql - neo4j - 。。。 ## 系统运行方式 ### 下载Nacos 需要从GitHub下载Nacos,下载地址:https://github.com/alibaba/nacos/releases 下载2.1.1版本,gitee开源版使用的是Nacos 2.1.1,如果版本号对应不上,后面项目启动会出错。 ### nacos数据库 注意:Nacos 目前只支持MySQL数据库,请安装MySQL8.0版本,以免出现其他错误。 新建数据库nacos_config,并运行【conf/nacos-mysql.sql】文件,初始化数据库即可。 ### 修改Nacos的配置文件 需要在【conf/application.properties】文件末尾,新增如下配置: ```bash # 填自己的ip地址,本地填127.0.0.1就行 nacos.inetutils.ip-address=127.0.0.1 spring.datasource.platform=mysql db.num=1 #填自己的数据库连接和密码 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=root ``` ### 启动Nacos ```bash Windows: startup.cmd -m standalone Linux: sh startup.sh -m standalone # 集群启动可关注公众号 螺旋编程极客 查看 ``` 访问Nacos管理界面(http://localhost:8848/nacos) ,初始用户名nacos,密码nacos,登录之后,如下所示: ![image-20221030203128590](images/nacos.png) ### 创建系统数据库 创建 `srt_cloud` 数据库,数据库编码为`utf8mb4` 执行`db/srt_cloud.sql`文件,初始化数据库脚本 创建 `srt_data_warehouse`数据库(数仓使用,应该搭建tidb(官网有教程),测试可以直接使用mysql数据库) ### 导入Nacos配置文件 导入Nacos配置文件,配置文件在项目里,文件名为:【deploy/nacos_config.zip】,如下所示: ![](images/nacos-config.png) 导入配置文件后,还需要在Nacos里,修改datasource.yaml,如:Redis、MySQL信息等。 ### 启动后端 把系统导入 idea,导入完 maven 依赖之后,依次启动: #### 启动 srt-cloud-gateway 运行 GatewayApplication.java #### 启动 srt-cloud-system 运行 SystemApplication.java #### 启动 srt-cloud-data-integrate 运行 DataIntegrateApplication.java #### 启动 srt-cloud-data-development(开源版本无) 运行 DataDevelopmentApplication.java #### 启动 srt-cloud-data-service(开源版本无) 运行 DataServiceApplication.java #### 启动 srt-cloud-data-governance(开源版本无) 运行 DataGovernanceApplication.java #### 启动 srt-cloud-data-assets(开源版本无) 运行 DataAssetsApplication.java #### 启动 srt-cloud-quartz 运行 QuartzApplication.java #### 启动 srt-cloud-message 运行 MessageApplication.java #### 启动 srt-cloud-monitor(开源版本无) 运行 MonitorAdminApplication.java #### 启动 srt-cloud-bi(开源版本无) 运行 DataBiApplication.java ### 启动前端(开源版本无前端源码,已打包放入了 gateway 模块下的 static 目录下) 安装版本号为`16.15.0`的`nodejs`,如果已经安装了,请先卸载,推荐使用 nvm 安装 node.js,方便切换不同版本 1. 需要先把本地安装的`nodejs`卸载,然后再下载nvm,地址: https://github.com/coreybutler/nvm-windows/releases 2. 一般情况,找到最新版本,然后下载`nvm-setup.exe`文件就可以了,下载后,我们双击安装即可。 3. 我们使用`PowerShell`打开命令行,这里需要注意下,要使用`管理员`身份打开`PowerShell` 4. 命令`nvm version` ,可以查看版本号 5. 命令`nvm ls available`查看`nodejs`可用的版本 6. 命令`nvm install 16.15.0`,可以安装版本号为`16.15.0`的`nodejs` 7. 命令`nvm list`,可以查看已安装的版本号 8. 命令`nvm use 16.15.0`,可以切换到版本号为`16.15.0`的`nodejs`,现在就可以通过命令`node -v`查看当前的`nodejs`版本号 9. 命令`nvm uninstall 16.15.0`,可以卸载版本号为`16.15.0`的`nodejs` 用 vscode 或 hbuildx 打开 srt-cloud-web 安装依赖: ```bash npm install ``` 运行项目: ```bash npm run dev ``` 打包项目 ```bash npm run build ``` ## 系统运行展示 ![image-20221030205835569](images/login.png) ![](images/首页.png) ![image-20221030210227005](images/数据库管理.png) ![image-20221030210420292](images/修改数据库.png) ![image-20221030210549858](images/查看库表.png) ![image-20221030210702083](images/数据接入.png) ![image-20221030210802981](images/接入查看.png) ![image-20221030210913467](images/接入编辑.png) ![image-20221030211158654](images/执行记录.png) ![image-20221030211424876](images/同步结果.png) ![数据生产-sql](images/数据生产-sql.png) ![数据生产-flinksql校验](images/数据生产-flinksql校验.png) ![数据生产-msyql-cdc](images/数据生产-mysql-cdc.png) ![数据生产-调度](images/数据生产-调度.png) ![数据生产-执行](images/数据生产-执行.png) ![运维中心](images/运维中心.png) ![API目录](images/api目录.png) ![API目录](images/api修改.png) ![API目录](images/api测试.png) ![API目录](images/api权限.png) ![API授权](images/api权限.png) ![API授权](images/查看授权.png) ![API授权](images/修改授权.png) ![元模型](images/元模型.png) ![元数据采集](images/元数据采集.png) ![元数据采集记录](images/元数据采集记录.png) ![采集日志](images/采集日志.png) ![元数据管理](images/元数据管理.png) ![](images/数据标准.png) ![](images/规则配置.png) ![](images/质量任务.png) ![image-20230627092621758](images/数仓类型.png) ![](images/数仓切换.png) ![资产目录](images/资产目录.png) ![资产详情](images/资产详情.png) ![开放范围](images/开放范围.png) ![资源挂载](images/资源挂载.png) ![挂载数据库表](images/挂载数据库表.png) ![挂载API](images/挂载API.png) ![数据库表](images/数据库表.png) ![资源查阅](images/资源查阅.png) ![主数据管理](images/主数据管理.png) ![主数据派发](images/主数据派发.png) ![主数据派发详情](images/主数据派发详情.png) ![数据表](images/数据表.png) ![数据表-sql控制台](images/数据表-sql控制台.png) ![应用墙](images/应用墙.png) ![监控明细](images/监控明细.png) ![监控日志](images/监控日志.png) ![ETL工具箱](images/ETL工具箱.png) ![ETL流程](images/ETL流程.png) ![BI大屏列表](images/BI大屏列表.png) ![BI大屏设计器](images/BI大屏设计器.png) ![BI大屏设计器-AI](images/BI大屏设计器-AI.png) ![etl运行](images/etl运行.jpg) ![资产总览](images/资产总览.jpg) ![api管理1](images/api管理1.png) ![api管理2](images/api管理2.png) ![api接入](images/api接入.png) ![安全等级](images/安全等级.png) ![脱敏规则](images/脱敏规则.png) ![权限配置](images/权限配置.png) ![权限信息](images/权限信息.png) ![权限信息](images/血缘搜索.png) ![权限信息](images/血缘图.png) ![权限信息](images/关系详情.png) ![权限信息](images/节点详情.png) ![ai助手1](images/ai助手1.png) ![ai助手2](images/ai助手2.png) ![ai助手3](images/ai助手3.png) ![任务链管理](images/任务链管理.png) ![任务链执行记录](images/任务链执行记录.png) ## 鸣谢声明 该项目使用借鉴了以下优秀开源项目的源码进行改造集成,特此鸣谢声明。 **整体架构** [maku-admin](https://gitee.com/makunet/maku-admin) **数据开发** [dinky](https://github.com/DataLinkDC/dinky) **数据集成** [dbswitch](https://gitee.com/inrgihc/dbswitch) **BI 可视化** [go-view](https://gitee.com/dromara/go-view) ## 帮助支持 源码只开源了 **数据集成** 部分,并且对数据库支持有限,前端界面目前是打包后放在了 gateway 模块的 static 目录下,直接访问 localhost:8082 即可查看运行效果,其他部分没有开源。 系统已申请软著,著作权归天津数睿通科技有限公司所用,严禁二次公开售卖,否则视为侵权,将依法追究法律责任,完整源码获取,商用授权请关注公众号 **螺旋编程极客** 添加作者。 系统处于不断更新迭代之中,感谢您的支持与关注。 ![公众号](images/公众号.jpg)