# bigprime-dip
**Repository Path**: blockwolf/bigprime-dip
## Basic Information
- **Project Name**: bigprime-dip
- **Description**: Bigprime-DIP是 Bigprime-DGP数智平台中的一个核心子系统,专注于数据源管理、数据集成与数据开发。BigPrime-DGP平台是以数据驱动为核心优势的大数据平台,借助先进的插件化架构和灵活的配置,能够快速响应各种复杂的数据业务需求,集成了数据仓库,数据集成,服务编排,数据治理,工作流引擎等技术,结合大数据计算分析,帮助企业实现数据驱动的价值创造,让大数据结出更多“智慧果”。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 27
- **Created**: 2025-03-04
- **Last Updated**: 2025-03-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## Data Integration Platform 介绍
Data Integration Platform 是 Bigprime DGP 大数据治理平台中的一个核心子平台,专注于数据源管理和数据集成。该平台致力于通过高效的数据整合与管理,帮助企业实现数据驱动的价值创造。借助先进的插件化架构和灵活的自定义配置,Data Integration Platform 能够快速响应各种复杂的数据集成需求,为企业的数据治理之路提供坚实的技术支撑。
## 目标及特点
- **多源支持:** 支持对接多种数据库,包括但不限于MySQL、PostgreSQL、Oracle、MongoDB等,通过统一的管理界面进行连接和配置。
- **即席查询:** 提供即席查询功能,用户无需预先定义查询,即可实时对数据进行探索和分析。
- **SPI插件思想:** 采用SPI(Service Provider Interface)插件思想,允许用户快速扩展新的数据源类型,无需修改核心代码,极大提升了系统的可扩展性。
- **Addax与Seatunnel集成:** 内置对Addax和Seatunnel的支持,用户可以通过自定义配置,实现不同数据源之间的数据集成任务。
- **自定义配置:** 支持高度自定义的数据集成配置,用户可以根据具体需求,灵活调整数据同步的策略、速率和方式。
- **灵活扩展:** 基于插件化架构,用户可以根据需要扩展新的数据集成工具或方法,满足不断变化的数据集成需求。
## 设计理念
**插件式开发**
- Data Integration Platform 采用了插件式开发的设计理念,将数据源管理和数据集成功能模块化,每个模块都可以作为独立的插件进行开发和扩展。这种设计方式不仅提高了系统的可维护性,还使得用户可以轻松定制和扩展系统功能,满足特定的业务需求。
**数据集成灵活性**
- 在数据集成方面,平台支持对Addax和Seatunnel的自定义配置,用户可以通过简单的配置调整,实现复杂的数据同步任务。
**扩展性强**
- 通过SPI插件思想,平台能够轻松扩展新的数据源和数据集成工具,无需修改核心代码,即可实现功能的扩展和升级。这种设计方式使得平台能够持续适应不断变化的数据环境和技术趋势。
## 架构设计

## 技术选型
**后端技术**
- **Spring Boot:** 用于快速构建独立的、生产级别的Spring应用程序,提供了丰富的内置功能,简化了配置和开发过程。
- **Spring Cloud:** 提供了微服务架构的完整解决方案,包括服务发现、配置管理、负载均衡等,提高了系统的可靠性和可扩展性。
- **Nacos:** 作为服务发现和配置中心,为微服务架构提供了动态的服务管理和配置更新能力。
- **easy-query:** 简化了数据库查询操作,提供了便捷的查询构建和执行功能,支持强类型对象关系查询和强类型SQL语法查询的ORM,拥有对象模型筛选、隐式子查询、隐式join、显式子查询、显式join。
- **Hutool:** 一个Java工具类库,提供了丰富的常用工具类,简化了开发过程中的重复代码。
- **Maven:** 作为项目构建工具,提供了依赖管理和构建自动化的功能,提高了开发效率。
**前端技术**
- **Vue3:** 作为前端框架,提供了更高效的响应式机制和更好的性能表现,支持组件化开发,提高了代码的可复用性和可维护性。
- **Opentiny:** 一个轻量级的前端UI框架,提供了丰富的组件和样式,简化了UI开发过程。
- **Pinia:** 作为Vue的状态管理库,提供了简洁易用的API,提高了状态管理的效率和可维护性。
- **vue-router:** 用于前端路由管理,支持页面跳转和组件懒加载,提高了用户体验。
- **TypeScript:** 作为JavaScript的超集,提供了静态类型检查和强大的类型系统,提高了代码的可读性和健壮性。
- **Vite:** 作为前端构建工具,提供了极快的构建速度和友好的开发体验,支持热模块替换和按需加载。
## 产品效果图













## 支持的数据库列表
## 快速开始
### 启动项目
**启动后端**
- **初始化数据库**
- 创建数据库
- 创建 `bigprime` 数据库(可自定义名称),数据库编码为`utf8mb4`
- 执行 `/resources/sql/bigprime.sql` 初始化数据库
- **启动Nacos服务并导入Nacos配置,Nacos配置信息在`/resources/nacos_config.zip`**
- **启动网关服务:** 运行 `GatewayApplication.java`
- **启动Web服务:** 运行 `BigPrimeWebApplication.java`
**启动前端**
- **bigprime-ui项目默认会初始化执行环境**
- 默认安装版本**node版本v21.6.2**,**npm版本10.5.0**,在bigprime-ui项目pom.xml中可进行修改
- **启动前端服务:**
```shell
npm run dev
```
### 功能介绍
- Bigprime DGP是一款强大的数据治理平台,它集成了数据仓库、数据湖、数据挖掘、标签、指标、AI算法、物联、身份认证、消息推送、工作流等先进技术,旨在通过API将这些技术支撑平台的能力输出给前端业务,包括BI业务,为这些业务提供更快速的开发、开拓创新及高质量发展的动力引擎。

### 数据源管理
- 数据源管理模块是Bigprime DGP的基石,它支持关系型数据库和非关系型数据库,为数据治理提供丰富的数据源选择。该模块还具备即席查询功能,能够迅速响应用户的数据查询需求。此外,通过插件开发,Bigprime DGP能够支持快速扩展数据源,满足不同场景下的数据接入需求。

#### 数据源维护
- **新增数据源**
支持MySQL、PostgreSQL、ClickHouse、Doris、Dameng、Hive、MongoDB、Oracle、Redis、SqlServer、Kafka、Zookeeper等数据库,保存会检测连接是否正常,也可点击测试连接按钮自行检测。

- **编辑数据源**
编辑数据源支持修改数据库连接信息、数据源描述等。

- **删除数据源**
删除数据源,默认逻辑删除。

- **心跳检测**
系统默认30分钟定时检测数据库连接是否正常,如果异常,则自动断开连接,修改状态为失败,用户也可点击以下按钮进行手动检测。

#### 数据源查询
- **SQL查询**
SQL语句即席查询,点击选中数据库名,即可进入SQL查询页面,支持SQL语法查询。

- **可视化查询**
可视化即席查询,点击选中表名,即可进入可视化查询页面,可根据字段条件进行查询。

### 数据集成
- 数据集成模块支持Seatunnel和Addax等开源数据集成工具,并允许用户自定义集成配置。这意味着用户可以根据自己的需求,快速、灵活地配置数据集成任务,实现不同数据源之间的数据同步和传输。此外,Bigprime DGP还支持用户自定义插件集成配置,进一步扩展了数据集成的功能。

#### 集成配置
- **seatunnel 配置**
- **env 配置支持配置全局参数,如:rest_api、job.name、event_url、job.mode、parallelism等。**


- **source 配置支持自定义,如Jdbc、FakeSource等,对应的自定义配置项支持动态参数,如:url、username、password、table_path、query等。**

- **transform 配置支持自定义,如Filter、Replace等,对应的自定义配置项支持动态参数,如:replace_field、replacement。**

- **sink 配置支持自定义,如Jdbc、Console等,对应的自定义配置项支持动态参数,如:url、username、password、table、result_table_name等。**

- **addax 配置**
- **setting 配置,支持配置全局参数,如:job.name、byte、record、addax_home、event_url等。**

- **reader 配置,支持自定义插件,如rdbmsreader、streamreader、excelreader等,对应的自定义配置项支持动态参数,如:jdbcUrl、username、password、column、fetchSize等。**

- **writer 配置,支持自定义插件,如rdbmswriter、txtfilewriter,对应的自定义配置项支持动态参数,如:jdbcUrl、column、preSql、postSql等。**

#### 任务定义
- **创建任务**,如:seatunnel、addax。

- **任务配置**
- **seatunnel 任务配置**

- **addax 任务配置**

- **任务相关操作**

#### 任务实例
- **任务实例列表**

- **任务实例配置详情**

- **任务实例日志详情**

### 数据仓库
- 数据仓库模块提供了数仓分层、建模、即席查询和SQL执行等功能,为用户提供了高效、灵活的数据存储和处理环境。通过数仓分层,用户可以清晰地划分数据层级,提高数据管理的效率和安全性。同时,即席查询和SQL执行功能使得用户能够随时访问和处理数据,满足实时分析的需求。

### 数据治理
- 数据治理模块是Bigprime DGP的核心功能之一,它包括以下子模块。
#### 元数据管理
- 提供元数据同步、检索和维护等功能,帮助用户全面管理数据元信息,提高数据质量和可用性。

#### 主数据管理
- 支持主数据建模、同步、下发、血缘追溯和数据维护等功能,确保主数据的准确性和一致性。

#### 数据标准管理
- 提供标准的创建、发布和变更日志等功能,帮助用户建立和维护数据标准体系。

#### 数据质量管理
- 包括质量配置、报告和定时检测任务等功能,帮助用户监控和提高数据质量。

#### 数据血缘
- 提供数据血缘追踪功能,帮助用户了解数据的来源和流向,提高数据透明度和可追溯性。

#### 数据安全管理
- 支持敏感级别设置、数据脱敏、加密和数据安全规范等功能,确保数据的安全性和合规性。

#### 数据服务
- 提供API配置功能,允许用户对资产进行安全脱敏和加密设置,并记录调用记录,提高数据服务的灵活性和安全性。

#### 数据生命周期管理
- 包括总览、近线归档、离线归档和销毁归档等功能,帮助用户有效管理数据的生命周期,降低存储成本。

#### 数据资产管理
- 提供资产总览、检索、维护、数据库资产即席查询、附件资产下载等功能,并支持安全权限控制和加密,确保数据资产的安全和可控。

### 数据开发
- 数据开发模块提供了任务总览、Flink配置、Flink SQL可视化开发和Flink执行实例等功能,支持多版本Flink的接入和使用。这使得用户能够轻松地进行数据开发和处理任务,提高数据处理的效率和准确性。

### 调度管理
- 调度管理模块包括调度器管理、默认Quartz调度、调度任务配置和调度任务实例等功能。它支持多种任务类型,如数据库执行、SQL执行、JAR上传、Python文件和API接口调用等,并允许用户自定义开发调度任务。这使得用户能够灵活地进行任务调度和管理,提高数据处理的自动化和智能化水平。

### 系统管理
- 系统管理模块是Bigprime DGP的基础配置和管理中心,主要包括组织、角色、人员、菜单和基础配置(如文件存储)等功能。通过系统管理模块,用户可以轻松地进行用户管理和权限分配,确保平台的安全性和稳定性。同时,基础配置功能使得用户能够灵活配置平台的存储和文件管理等参数,满足不同的业务需求。

#### 组织管理
- **支持创建、编辑、删除组织,支持配置组织角色。**

#### 角色管理
- **支持创建、编辑、删除角色,支持配置角色菜单权限。**

#### 用户管理
- **支持创建、编辑、删除用户,支持配置用户角色。**

#### 菜单管理
- **支持创建、编辑、删除菜单,支持配置菜单权限。**

## 欢迎交流
- **欢迎您加入社区交流分享**
- **微信交流群**
- **QQ交流群:**
