什么是反向建模
反向建模是一种从已有数据库物理表自动映射生成数据模型的技术,旨在解决企业存量数据库资产快速纳入统一数据建模引擎管理的问题。其核心价值在于帮助企业无需逐条手动创建模型,即可将本地服务器中的大量物理表快速转换为工业数字模型驱动引擎(Industrial Digital Model Engine,简称iDME)的数据建模引擎(xDM Foundation,简称xDM-F)数据模型,大幅节省建模时间成本,加速数据资产的统一治理。
为什么需要反向建模
企业在数字化转型过程中,往往已在本地服务器积累了大量数据库和物理表。如需将这些存量数据纳入统一的数据建模引擎管理,传统方式需要逐条手动创建数据模型,不仅工作量大,且容易出错。
反向建模功能通过连接已有数据库,自动读取物理表结构并映射生成对应的数据模型,帮助企业快速完成存量数据资产的模型化迁移,避免重复劳动,加速业务系统的统一治理和数据标准化进程。
反向建模的优势是什么
- 自动化映射:支持从数据库物理表自动读取表结构信息,一键生成数据模型及属性,无需手动逐条创建。
- 批量处理能力:支持批量建模和批量修改建模信息,大幅提升大规模数据迁移场景下的处理效率。
- 灵活策略配置:支持预置反向建模策略,可自定义建模范围、建模规则及命名规范,满足不同业务场景的个性化需求。
- 可视化确认:生成建模信息后支持人工确认和调整,确保模型与业务需求精准匹配,降低建模偏差风险。
- 多数据库支持:支持MySQL和PostgreSQL两种数据库类型,覆盖常见数据库场景。
反向建模的使用场景
- 存量系统迁移:企业已有本地数据库和大量物理表,需要将其纳入xDM-F统一管理时,可通过反向建模快速完成物理表到数据模型的转换,避免重复建模工作。
- 多数据源整合:当企业存在多个数据库数据源且需要统一进行数据模型管理时,反向建模支持连接多个数据源并批量读取物理表,实现跨数据源模型的快速构建。
- 历史数据治理:针对历史系统中积累的大量物理表数据,反向建模可帮助快速梳理表结构并生成标准化数据模型,为后续的数据治理和分析奠定基础。
反向建模的工作原理
整体架构
从整体架构上看,反向建模主要由数据库管理和建模管理两部分构成。其中,数据库管理主要负责数据库的连接维护和表信息读取,建模管理主要负责模型生成、调整和结果输出。
数据库管理负责数据库的新增、编辑、删除和查看,并通过读取数据库表信息功能完成进入数据库建模状态的前置准备。
建模管理负责建模、批量建模、批量修改建模、查看物理表信息和查看模型,并通过策略配置完成从物理表到数据模型的生成与调整。
在整体运行过程中,数据库管理首先负责连接本地数据库并读取物理表信息,建模管理随后根据输入的物理表数据和反向建模策略完成模型的自动生成,用户则进一步承担建模信息的确认与调整。通过这种分工与衔接,各部分能够共同完成从物理表到数据模型的完整映射。
执行流程
- 预置反向建模策略
- 添加数据源
连接本地数据库,是读取数据和反向建模的前提。具体操作请参见创建数据源。
- 读取数据
xDM-F会根据您设置的反向建模策略进行读取,生成出待创建的建模信息。具体操作请参见读取数据库数据。
- 确认建模信息
xDM-F初步生成的建模信息可能会存在偏差,您需要根据业务需求进行建模信息的调整。例如,更改物理表中建模信息的实体类型、中英文名称、沿用表名称、父模型等基本信息。具体操作请参见修改建模信息。
- 生成最终模型
建模完成后,您可以查看生成的模型信息和状态。查看建模失败的错误信息,快速定位问题并及时处理。
建模成功的数据模型会被存放至“数据模型管理”中,您可以前往“数据模型管理”页面查看并进行后续的管理操作。具体操作请参见数据模型管理。
反向建模与正向建模的区别
反向建模与正向建模都属于xDM-F中的模型构建方式,都可用于生成数据实体和关系实体,并常用于支撑应用和业务数据的持久化需求。
二者在构建起点与自动化程度上存在本质区别:正向建模通过可视化界面手动定义属性与关系实现从零开始的精细化模型设计,而反向建模则通过读取已有数据库物理表结构实现存量模型的自动化批量生成。
这种差异主要来自数据来源与业务阶段上的不同,即正向建模适用于全新业务系统的设计阶段,而反向建模适用于已有系统的数据迁移与统一纳管阶段。此外,反向建模时会舍弃物理表的索引、主键、外键等字段约束,而正向建模可完整定义这些约束。
由此,正向建模更适合对模型规范、约束条件要求极高的全新业务设计场景。反向建模更适合需要快速接入存量数据库、降低重复劳动的迁移与集成场景。
| 对比维度 | 正向建模 | 反向建模 |
|---|---|---|
| 共同点 | 均用于在xDM-F中构建数据实体与关系实体。 | |
| 构建起点 | 从零开始,手动定义属性与关系。 | 基于已有的数据库物理表结构。 |
| 自动化程度 | 较低,依赖人工逐字段配置。 | 较高,系统自动读取并初步生成。 |
| 约束处理 | 支持完整定义主键、外键、索引等约束。 | 自动舍弃索引、主键、外键等底层约束。 |
| 适用阶段 | 全新业务系统的架构设计阶段。 | 存量系统的数据迁移与统一纳管阶段。 |
数据库物理表字段类型对照表
通过如下对照表,帮助您在反向建模过程中,精准实现数据库结构到xDM-F数据模型的转换。
| MySQL | PostgreSQL | xDM-F属性类型 |
|---|---|---|
| VARCHAR | VARCHAR | 文本 |
| LONGTEXT | LONGTEXT | 长文本 |
| INT | INT4 | 整型 |
| BIGINT | INT8 | 长整型 |
| DECIMAL | NUMERIC | 浮点型 |
| DECIMAL | NUMERIC | 浮点型(自定义精度) |
| VARCHAR(60)、VARCHAR(255)、BIGINT | VARCHAR(60)、VARCHAR(255)、INT8 | 参考对象 |
| - | - | 文件 |
| TINYINT | BOOL | 布尔值 |
| DATETIME | TIMESTAMP(6) | 日期 |
| ENUM | VARCHAR(255) | 枚举 |
| VARCHAR(255) | VARCHAR(255) | 人员 |
| JSON | JSON | 分类 |
| VARCHAR(3000) | VARCHAR(3000) | URL |
| JSON | JSON | JSON |
与反向建模相关的操作和特性
约束与限制
- 仅支持将数据库的物理表反向创建为数据实体和关系实体。
- 反向建模时,对应物理表的索引、主键、外键等字段约束将被舍弃。如果物理表的“字段”与“从父模型继承的属性”重名,该字段也将被舍弃。
- 待反向建模的数据库需允许公网访问。
- 同一个应用下,反向建模最多只能新增10个数据源。同时,每个数据源最多只能读取或更新1000个物理表的数据库数据。