数据生成与备份恢复
按列规则构造可验证的测试数据,并在变更前创建可核验、可恢复的数据库快照。
适用场景
数据生成器适合为开发、联调、演示和性能预检准备仿真数据;备份与恢复适合在导入、迁移、批量更新或结构调整前保留整库或选定表的快照。两者组合使用时,应先保留基线,再生成数据,最后用查询核对写入结果。
- 测试数据铺设:为姓名、邮箱、手机号、数值、日期、枚举、UUID、序列等列指定规则,避免手工拼装大量 INSERT。
- 约束验证:用不同规模和空值比例的数据检查非空、唯一、主外键及业务校验逻辑;数据生成器不会替你证明业务约束完整。
- 高风险操作前快照:在批量导入、数据迁移、清洗、回填或 DDL 变更前,备份受影响范围并记录恢复目标。
- 故障处置演练:在隔离环境验证备份文件能被识别、对象范围符合预期、恢复后的行数与关键数据一致。
入口路径
从顶部菜单进入「工具中心」,在「数据工具」分类选择「数据生成器」或「备份与恢复」。多数数据工具会先要求选择数据源;进入面板后再次核对连接、数据库、Schema 和目标表,尤其不要仅凭相似的连接名称判断环境。
前置条件
- 目标数据源已经建立连接,当前账号具备所需对象的读取权限;生成或恢复时还需相应的写入、建表或 DDL 权限。
- 已识别表上的主键、唯一索引、非空列、默认值、检查约束和外键依赖,并明确哪些列由数据库自动生成。
- 已确定测试数据规模、允许的空值比例、唯一值容量及数据分布;不要把“生成成功”当作“数据适合测试”的充分条件。
- 执行恢复前已确认备份来源、创建时间、对象范围、目标环境与可接受的覆盖影响,并在隔离环境完成一次恢复验证。
- 如使用「AI 推断规则」,须先在设置中自行配置可用的 Provider 与模型。AI 建议可能误判字段语义、敏感性或约束,必须逐列人工复核后才能写入。
编号步骤
- 确认环境与基线。在工作台查询目标表当前行数、主键范围、空值数量及关键业务聚合值,保存结果;涉及现有数据时,先在「备份与恢复」中选择整库或受影响表创建备份。
- 配置生成规则。打开「数据生成器」,选择目标表;逐列设置姓名、邮箱、手机号、整数、小数、日期、枚举、UUID、序列等规则。数据库自增列通常应交由数据库处理,外键列应从真实可引用范围取值。
- 校验行数、空值与唯一性。先用小行数验证规则。非空列不得配置空值;允许为空的列应按测试目标设置合理比例;唯一列的候选空间必须大于生成行数,并考虑表内已有值,避免碰撞。
- 复核 AI 推断。如使用 AI 推断规则,检查每列的字段语义、格式、范围、枚举集合、唯一策略和敏感数据风险。AI 输出只作为配置草案,不应未经人工审阅直接写入。
- 小批量写入并确认。先生成一小批数据,观察是否出现非空、唯一、外键、长度或类型错误;在确认目标连接和规则无误后,再按计划行数执行批量生成。
- 查询验证生成结果。回到 SQL 工作台,核对新增行数、空值分布、去重计数、最小值/最大值、日期范围和枚举分布;抽查数据是否符合业务含义,而不只是满足数据库类型。
- 恢复前做独立验证。需要恢复时,先确认备份记录对应的库表范围和创建时间,下载留存备份,并优先恢复到隔离环境。核对对象、DDL、行数和关键查询后,才对正式目标执行恢复;恢复期间避免并发写入造成二次偏差。
- 恢复后对账。重新运行基线查询,对比表数量、行数、约束、关键聚合与抽样记录;记录无法恢复或需要人工补偿的变更,确认业务验证通过后再开放后续写入。
参数说明
以下项目不是“填得越大越好”。规则之间会相互影响,例如生成行数会消耗唯一值空间,空值比例又必须服从非空约束。
| 参数 / 范围 | 配置要点 | 检查方式与风险 |
|---|---|---|
| 目标连接与表 | 按连接、数据库、Schema、表四级确认;优先使用隔离的开发或测试环境。 | 写入前再次核对对象全名。选错环境可能直接污染现有数据。 |
| 生成行数 | 先小批量,再逐步放大;规模应覆盖功能测试需求,并考虑存储、索引和事务开销。 | 生成前后分别执行 COUNT;大批量写入应留意执行耗时和失败反馈。 |
| 列生成规则 | 按字段语义选择姓名、邮箱、手机号、整数、小数、日期、字典枚举、UUID 或序列。 | 抽样检查格式、长度、上下界和业务合理性;类型兼容不代表语义正确。 |
| 空值比例 | 仅用于允许 NULL 且测试确有需要的列;非空列设为不生成 NULL。 | 使用 COUNT(*) - COUNT(column) 核对空值数量;配置不当会触发约束失败或形成失真数据。 |
| 唯一值策略 | 唯一列优先使用 UUID、足够长的序列或大容量组合;预留已有数据占用的值域。 | 比较 COUNT(column) 与 COUNT(DISTINCT column),并检查唯一约束报错。 |
| 日期与数值范围 | 覆盖正常值、边界值和必要的异常输入,但不得越过数据库类型范围。 | 查询 MIN / MAX 与分桶分布,防止全部数据集中在狭窄区间。 |
| AI 推断规则 | 需自行配置 Provider 与模型;仅将建议作为起点,逐列确认后再使用。 | 重点复核缩写字段、枚举、外键、唯一列和敏感字段;不得假设 AI 理解业务约束。 |
| 备份范围 | 可选择整库或指定表;备份包含 DDL 与数据 INSERT,并以 GZIP 压缩存储。 | 检查备份记录、对象范围与文件可获取性。选表备份可能不包含完整依赖链。 |
| 恢复目标 | 明确恢复到原库还是其他环境,并确认目标对象的现状与覆盖影响。 | 先在隔离环境恢复并对账;禁止仅凭任务显示完成就认定业务数据正确。 |
预期结果
数据生成完成后,目标表新增行数应与成功写入数量一致,非空列无 NULL,唯一列无重复,日期、数值与枚举分布符合测试设计;如果只满足行数而分布失真,应调整规则后重新生成。备份完成后应能在备份记录中确认范围并下载;恢复完成后,DDL、表行数、关键聚合和抽样业务记录应与验证基线一致。
常见问题
生成时出现唯一约束冲突,如何处理?
先停止扩大生成规模,检查唯一列的规则和值域。将短随机值改为 UUID 或足够长的序列,并把表内已有值计入容量;清理本次失败留下的数据前,先按批次标识或明确条件确认影响范围,不要执行无条件删除。
AI 推断的规则可以直接使用吗?
不可以。先自行配置可用的 Provider 和模型,再逐列检查 AI 推荐。字段名可能含缩写或历史语义,AI 也无法自动掌握组织内部的枚举、脱敏、唯一性和外键要求。建议先生成少量数据,用查询和业务接口共同复核。
为什么恢复前还要恢复到隔离环境?
隔离验证可以提前发现备份范围不全、依赖对象缺失、DDL 不兼容、文件损坏或目标环境差异。验证时至少核对对象清单、行数、约束、关键聚合和抽样记录,再决定是否恢复正式目标。
选定表备份能否完整恢复一个业务模块?
不一定。选表备份可能遗漏关联表、视图、函数、外键依赖或应用侧状态。按依赖清单扩大备份范围,或在需要完整数据库状态时选择整库备份,并在隔离环境验证恢复顺序。
能否用这里的备份替代企业级灾备?
不能。该功能适合变更前快照、下载留存和误操作后的恢复辅助,不提供企业灾备所要求的持续性保证。生产系统仍应采用经组织批准的全量与增量策略、异地副本、加密与访问控制、保留策略、监控告警,以及定期恢复和灾难演练。
MagicDB Studio