# SDP **Repository Path**: eagling/smart-data-platform ## Basic Information - **Project Name**: SDP - **Description**: 智数平台 (SmartData Platform) 是一个简化的 Palantir Foundry 风格的数据平台 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 3 - **Created**: 2026-03-06 - **Last Updated**: 2026-04-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智数平台 (SmartData Platform) 一个简化版 Palantir Foundry 风格的数据平台,采用四层横向架构实现从数据接入到智能应用的全链路数据价值转化。 ![Architecture](https://img.shields.io/badge/Architecture-4--Layer-blue) ![Backend](https://img.shields.io/badge/Backend-Spring%20Boot%203.2-green) ![Frontend](https://img.shields.io/badge/Frontend-Vue%203-4FC08D) ![License](https://img.shields.io/badge/License-MIT-yellow) ## 系统架构 平台采用**四层横向架构**,数据从左到右流动: ``` ┌─────────────┐ ┌─────────────────────────┐ ┌─────────────┐ ┌─────────────┐ │ 数据接入层 │ → │ 数据存储层 │ → │ 数据服务层 │ → │ 智能应用层 │ │ Ingestion │ │ Storage │ │ Service │ │Intelligence │ └─────────────┘ └─────────────────────────┘ └─────────────┘ └─────────────┘ │ ┌───────────────────┼───────────────────┐ ↓ ↓ ↓ ┌─────────┐ ┌─────────────┐ ┌───────────┐ │ OLAP │ │ Object │ │ RDF │ │ 列式存储 │ │ Storage │ │ 图数据库 │ │ │ │ 对象存储 │ │ │ │ 分析查询 │ │ (索引+图谱) │ │ 语义查询 │ └─────────┘ └─────────────┘ └───────────┘ ``` | 层级 | 核心职责 | 关键组件 | |------|----------|----------| | **数据接入层** | 多源数据采集、ETL清洗、资产沉淀 | Dataset Pool、CSV导入、数据源连接 | | **数据存储层** | 三模存储引擎、数据漏斗调度 | OLAP列式存储、**对象存储**、RDF图数据库 | | **数据服务层** | 本体元数据与数据融合、统一查询 | Ontology Schema、SQL/NL2SQL查询 | | **智能应用层** | 业务场景智能化、数据价值变现 | 智能推荐、异常检测、预测分析 | ## 核心功能 ### 1. 本体管理 (Ontology Management) - **域管理 (Domain)**: 多域隔离,支持电商、金融等不同业务域 - **对象类型 (ObjectType)**: 定义业务实体及其属性、关系 - **关系类型 (LinkType)**: 定义实体间关联(一对一、一对多、多对多) - **业务规则 (Rule)**: 定义验证规则、约束规则、业务逻辑 - **业务动作 (Action)**: 定义可执行的业务操作及其前置条件、执行效果 ### 2. 数据集管理 (Dataset Management) - **独立数据池**: 数据集作为独立资产,自带Schema定义 - **多源接入**: 支持文件、数据库、API、流式数据源 - **CSV智能导入**: 自动识别列类型、生成ObjectType和Dataset - **数据预览**: 支持大数据集的分页预览和统计分析 ### 3. 数据漏斗 (Data Funnel) - **多目标同步**: 一个数据集可同时同步到OLAP、**Object Storage**和RDF - **同步模式**: 支持全量、增量、混合三种同步模式 - **存储目标**: - **OLAP**: 宽表格式,面向分析查询 - **Object Storage**: 对象格式(索引+图谱),面向业务操作和关系查询 - **RDF**: 三元组格式,面向语义查询 - **定时调度**: 基于Cron表达式的定时同步 - **同步历史**: 详细的同步任务历史和状态追踪 ### 4. 三模存储引擎 平台采用**三模存储架构**,通过数据漏斗将数据集同步到不同的存储引擎: #### OLAP 列式存储 - **存储引擎**: MySQL Columnar / StarRocks / Doris - **适用场景**: 大规模数据分析、聚合查询、BI报表 - **核心能力**: 高压缩比、快速聚合、标准SQL支持 #### 对象存储 (Object Storage) - **架构**: 混合架构(OLAP + RDF + 独立索引) - **适用场景**: 对象查询、关系遍历、语义搜索、业务操作 - **核心能力**: - **ObjectIndex**: 独立MySQL存储索引字段和元数据 - **ObjectState**: OLAP存储完整对象状态和版本 - **ObjectRelation**: RDF存储对象关系图谱 - **数据同步**: 通过 DataFunnel 同步,支持全量/增量/混合模式 #### RDF 图数据库 - **存储引擎**: Apache Jena TDB2 / GStore - **适用场景**: 知识图谱、关联分析、语义查询 - **核心能力**: 三元组存储、SPARQL查询、语义推理 ### 5. 统一查询服务 - **SQL查询**: 标准SQL接口,支持复杂Join和子查询 - **虚拟查询引擎**: 跨源统一查询,自动路由到最优存储 - **查询优化**: 基于代价的查询优化和缓存加速 ### 6. 对象存储服务 - **对象索引**: 全局对象索引和状态管理 - **关系同步**: 对象关系自动同步到RDF图谱 - **查询路由**: 智能路由到OLAP或RDF存储 ## 技术栈 ### 后端 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.2.0 | 核心框架 | | Spring Data JPA | 6.4.0 | ORM框架 | | MySQL | 8.0+ | 主数据库 | | Apache Jena | 4.10.0 | RDF图数据库 | | Lombok | 1.18.30 | 代码简化 | | Maven | 3.8+ | 构建工具 | ### 前端 | 技术 | 版本 | 说明 | |------|------|------| | Vue | 3.4.0 | 前端框架 | | TypeScript | 5.3.0 | 类型系统 | | Vite | 5.0.0 | 构建工具 | | Element Plus | 2.5.0 | UI组件库 | | Pinia | 2.1.0 | 状态管理 | | D3.js | 7.9.0 | 数据可视化 | ## 快速开始 ### 环境要求 - JDK 17+ - Node.js 18+ - MySQL 8.0+ - Maven 3.8+ ### 1. 克隆项目 ```bash git clone cd smart-data-platform ``` ### 2. 数据库初始化 ```bash # 创建MySQL数据库 mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS ontology CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" ``` ### 3. 启动后端 ```bash cd foundry-platform-springboot/backend # 编译 mvn clean compile # 运行 (默认使用MySQL) mvn spring-boot:run # 或使用SQLite (开发模式) mvn spring-boot:run -Dspring-boot.run.profiles=sqlite ``` 后端服务默认运行在 http://localhost:8080 ### 4. 启动前端 ```bash cd foundry-platform-vue3 # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端服务默认运行在 http://localhost:5173 ### 5. 访问系统 打开浏览器访问: http://localhost:5173 ## 示例数据 系统内置电商域示例数据,包含: - **5个客户** (Customer) - **90个产品** (Product) - **300个订单** (Order) 可通过以下API快速初始化: ```bash # 初始化电商域数据 curl -X POST http://localhost:8080/api/init/ecommerce # 查看数据集状态 curl http://localhost:8080/api/datasets-v2 # 刷新记录数 curl -X POST http://localhost:8080/api/datasets-v2/refresh-all-counts ``` ## 项目结构 ``` smart-data-platform/ ├── foundry-platform-springboot/ # Spring Boot 后端 │ └── backend/ │ ├── src/main/java/com/foundry/platform/ │ │ ├── controller/ # REST API 控制器 │ │ ├── service/ # 业务逻辑层 │ │ ├── entity/ # JPA 实体类 │ │ ├── repository/ # 数据访问层 │ │ ├── olap/ # OLAP存储引擎 │ │ ├── rdf/ # RDF图数据库 │ │ └── objectstorage/ # 对象存储服务 │ └── pom.xml │ ├── foundry-platform-vue3/ # Vue3 前端 │ ├── src/ │ │ ├── views/ # 页面视图 │ │ ├── components/ # 组件 │ │ ├── stores/ # Pinia状态管理 │ │ ├── api/ # API客户端 │ │ └── router/ # 路由配置 │ └── package.json │ ├── sample-data/ # 示例数据文件 ├── AGENTS.md # AI Agent技术文档 ├── DEPLOY.md # 部署文档 └── readme.md # 项目说明 ``` ## 核心概念 ### 数据流 ``` 数据源 → Dataset → DataFunnel → 存储引擎 → 查询服务 → 应用 ``` 1. **数据源**: CSV文件、数据库、API等外部数据源 2. **Dataset**: 平台内的独立数据资产,自带Schema 3. **DataFunnel**: 数据同步通道,负责将数据从Dataset同步到存储引擎 4. **存储引擎**: - **OLAP**: 面向分析的列式存储 - **Object Storage**: 面向对象查询的混合存储(索引+图谱) - **RDF**: 面向语义查询的图数据库 5. **查询服务**: 统一的查询接口,屏蔽底层存储差异 6. **应用层**: 基于查询服务构建的智能应用 ### 元数据层次 ``` OntologyDomain (域) ├── ObjectType (对象类型) │ ├── Property (属性定义) │ ├── LinkType (关系定义) │ ├── OntologyRule (业务规则) │ └── ActionType (动作类型) ├── Dataset (数据集) [独立] │ └── DatasetField (字段定义) └── DataFunnel (数据漏斗) ├── targetType: OLAP | RDF | OBJECT_STORAGE └── targetConfig: 存储引擎特定配置 ``` ### 对象存储数据模型 ``` ObjectIndex (对象索引) ├── objectTypeId: 对象类型ID ├── pkValue: 主键值 ├── titleKey: 显示标题 ├── datasetRef: 数据源引用 (dataset:table:record) ├── indexFields: 索引字段 (JSON) └── lastSyncAt: 最后同步时间 ObjectState (对象状态) [可选,FULL_CACHE模式] ├── 存储: OLAP表 (ot_{objectTypeId}) ├── properties: 完整对象属性 ├── version: 版本号 └── userEditedProperties: 用户编辑标记 ObjectRelation (对象关系) ├── 存储: RDF三元组 ├── Subject: urn:foundry:{objectType}:{id} ├── Predicate: http://foundry.platform/link/{linkType} └── Object: 关联对象URI ``` ## API 文档 启动后端后访问 Swagger UI: http://localhost:8080/swagger-ui.html 主要API模块: - `/api/ontology/**` - 本体管理 - `/api/datasets-v2/**` - 数据集管理 - `/api/funnels/**` - 数据漏斗 - `/api/olap/**` - OLAP操作 - `/api/rdf/**` - RDF图谱操作 - `/api/actions/**` - 业务动作 - `/api/datasources/**` - 数据源管理 ## 配置说明 ### 后端配置 (application.yml) ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/ontology?useSSL=false username: root password: your-password jpa: hibernate: ddl-auto: update # OLAP配置 olap: store: type: mysql # mysql | starrocks | doris # RDF配置 rdf: store: type: jena # jena | gstore path: ./rdf-data ``` ### 前端配置 (.env.development) ``` VITE_API_BASE_URL=http://localhost:8080 ``` ## 开发指南 ### 添加新的 ObjectType 1. 在本体管理页面创建 ObjectType 和 Properties 2. 创建 Dataset 并定义字段 3. 配置 DataFunnel 同步到 OLAP/RDF 4. 定义 LinkType 建立实体关系 5. 定义 ActionType 添加业务动作 ### 扩展 OLAP 存储 支持添加新的 OLAP 存储引擎: 1. 实现 `OLAPStore` 接口 2. 继承 `AbstractOLAPStore` 基类 3. 在 `OLAPStoreAutoConfiguration` 中注册 ### 扩展 RDF 存储 支持添加新的 RDF 存储引擎: 1. 实现 `RDFStore` 接口 2. 在 `RDFConfig` 中配置新的存储类型 ## 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 许可证 [MIT](LICENSE) ## 相关文档 - [AI Agent 技术文档](AGENTS.md) - 面向AI Agent的详细技术文档 - [部署指南](DEPLOY.md) - 生产环境部署说明