# 数睿通数据中台 **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**: 449 - **Forks**: 200 - **Created**: 2023-01-26 - **Last Updated**: 2025-06-18 ## 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数据中台,包含数据集成,数据开发,数据治理,数据资产,数据服务,数据集市等模块,解决数据孤岛问题,实现数据统一口径标准,自定义数据开发任务,帮助企业,政府等解决数据问题!(源码只开源了 **数据集成** 部分,并且对数据库支持有限,完整源码获取方式拉到底见文末) ## 功能模块说明 - 数据集成 - 数据库管理 — 管理用户添加的数据源,支持 MYSQL/ORACLE/SQLSERVER/POSTGRESQL/GREENPLUM/MARIADB/DB2/DM/OSCAR/KINGBASE8/OSCAR/GBASE8A/HIVE/SQLITE3/SYBASE/DORIS/MONGODB/HIVE/CLICKHOUSE ,支持库表查询,测试连接等 - 文件管理 — 管理用户上传的文件数据 - api管理 — 管理api类型的数据源 - 数据接入 - dbswtich 接入— 底层使用 dbswtich 进行数据接入 - seatunnel 接入 — 底层使用 seatunnel 进行数据接入 - api接入—接入api类型的数据源 - 数据填报 - 填报表 — 自定义填报表单和字段 - 录入查询 — 填报数据和查询 - 贴源数据 — 查看接入到ods层的数据表和数据,可查看每张表的同步记录 - 可视化 ETL - 工具箱 — 查看常用的 ETL 工具箱组件 - 生产流程 — 以拖拉拽组件的方式构建流程,组件支持有限,后续不断开放组件(80%) - 可视化 BI - 大屏配置 — 查看大屏列表,支持可视化大屏编辑,克隆,复制链接等操作 - 数据开发 - 数据表 — 查看数仓分层数据,查看表信息,支持 sql 控制台 - 数据生产 — 对数据进行作业代码化编辑,自行 DDL 建模,运行,调试等 - 调度中心 - 调度管理 — 对生产作业进行流程编辑,可视化调度 - 调度记录 — 查看调度结果,日志等 - 运维中心 — 对作业执行运维管理 - 资源中心 - Flink 集群实例 — 管理 FLink 资源 - Hadoop 集群配置 — 管理 Hadoop 资源 - Jar 包管理 - 管理用户上传的 Flink 任务 Jar 包 - 配置中心 — 管理 FlinkSql 执行配置 - 数据服务 - API 目录 — 用户自定义 API 目录,动态生成 API,对外提供服务 - API 权限 — 对私有 API 进行授权操作 - API 日志 — 查看 API 调用日志 - 数据治理 - 元数据 - 元模型 — 描述元数据的元数据,主要定义了元数据的属性,通常元模型都是系统内置的,如表元模型,字段元模型等 - 元数据采集 — 根据定义的元模型对元数据进行采集,通常是每一种元模型有自己内置的采集逻辑,可以设置采集周期等 - 元数据管理 — 对采集的元数据进行查看和管理 - 数据血缘 — 通过数据接入,数据生产流程之间的关系自动构建数据血缘关系图,追溯数据流向 - 数据标准 - 标准管理 — 管理数据标准 - 标准清洗 — 配置清洗方式 - 标准日志 — 清洗产生的日志 - 数据质量 - 质量规则 — 质量规则维护 - 检测日志 —检测日志查看 - 错误主题库 — 错误结果查看和修正 - 主数据管理 - 主数据模型 — 主数据建模,发布,维护 - 主数据派发 — 建立派发任务,派发主数据到下游系统接口,消息对接,数据表 - 数据标签 - 标签类型 — 自定义标签类型 - 标签实体 —自定义标签对象实体,标签的数据载体 - 标签类目 — 管理标签类目,创建标签 - 即席查询 — 根据标签即席查询 - 数据推送 - 推送配置 — 自定义数据推送配置,设置推送任务的 SDK 代码类路径 - 推送任务 — 查看推送任务执行情况和日志 - 数据资产 - 资源管理 — 自定义资源目录,在每个目录下自定义资源,挂在数据库,api等 - 资产总览 — 对中台资源做一个总的统计概览 - 数据集市 - 资源目录 — 中台资源目录以及目录下资源的查看,可对资源进行申请操作 - API 目录 — 中台 API 目录以及目录下 API 的查看,可对 API 进行申请 - 我的申请 — 可以查看自己的申请记录,审批结果 - 服务审批 — 管理员对其他角色的申请做出审批,若审批通过,申请人便可以收到审批通过的消息,使用自己申请的服务资源 - 全局管理 - 数据项目管理 — 中台项目(租户)的管理,每个项目下可以关联用户,用户只能查看自己关联的项目下的数据,选择自己的数据仓库,所有的模块数据都会有所属项目 - 数仓分层展示 — 对中台数仓的分成做展示说明 - 应用管理 - 消息管理 - 短信平台 — 集成短信平台,支持阿里,腾讯等常用的短信平台 - 短信日志 — 调用短信所产生的日志 - 日志管理 - 登录日志 — 系统登录产生的日志 - 系统管理 - 用户管理 — 对系统用户进行管理 - 菜单管理 — 对系统菜单进行管理,用于实现动态菜单 - 定时任务 — 可自定义定时任务,调度执行 - 数据字典 — 系统的字典数据 - 机构管理 — 机构数据,若各模块中的数据有所属机构概念,可用于数据权限管理 - 岗位管理 — 岗位的管理 - 角色管理 — 角色管理,可以为每个角色自定义菜单查看权限以及机构级的数据权限 - 附件管理 — 系统附件管理,可以上传下载 ## 系统数仓架构 系统数仓可以在全局项目管理中配置不同租户的数据仓库,在数据集成集成到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版本,因为本项目使用的是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) ![](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) ![etl运行](images/etl运行.jpg) ![资产总览](images/资产总览.jpg) ![api管理1](images/api管理1.png) ![api管理2](images/api管理2.png) ![api接入](images/api接入.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)