数据导入与导出
关系型数据库中,批量导入存量数据(如商品信息、老系统的用户账户)以及批量导出业务数据作为备份,是系统上线和运维的高频核心操作。Zion 提供了高吞吐、支持自动关系映射与多媒体绑定的导入导出系统。
🚀
Zion 的导入处理器专为大数据批量读写设计,最大支持导入 1000 万行级 的海量记录,在后端并发状态下,单分钟物理导入吞吐量可达 10 万行。
1. 批量导入业务数据
批量将外部数据写入系统,需要严格遵循数据准备、文件映射、冲突判定三个步骤:
准备数据文件
您需要准备好标准的电子表格文件:
- 表格格式规范:
- 支持
.xlsx格式的 Excel 文件,或使用 UTF-8 编码的.csv文本文件。 - 结构要求:表格第一行必须是列名(表头)。
- 空白处理:空白单元格绝对不能填入多余的不可见空格或特殊占位符。
- 表格内必须至少包含 1 行实际业务记录。表格单元格中不支持 Excel 自带的复杂公式计算。
- 支持
- 多媒体文件(图片/视频/附件)绑定准备:
如果您需要批量导入用户的“头像”、“商品封面”、“PDF 附件”,需要额外准备一个配套的 ZIP 压缩包:
- 在本地创建三个命名的文件夹(文件夹名称必须小写,且不能带前缀):
image、video、file。 - 将多媒体文件按类型分发到对应的文件夹中。
- 表格映射路径写法:在您的 Excel 或 CSV 表格对应列中,值必须写成
“文件夹名/文件名”的相对路径,如image/cover.png,file/manual.pdf。 - 打包压缩:直接框选这三个文件夹并执行 ZIP 压缩,请勿将它们装入另一层父文件夹后再压缩。支持在文件夹内部建子目录(对应表格内写成
image/sub/cover.png)。
- 在本地创建三个命名的文件夹(文件夹名称必须小写,且不能带前缀):

上传并选择导入类型
- 进入项目“数据管理”工作区,点击左下角的 “导入数据”。
- 上传您的 Excel/CSV 表格,并按需同时上传多媒体 ZIP 文件。
- 选择导入的模式:
- 添加:新数据直接作为新行插入到数据库中。
- 修改:根据数据的主键
id属性,去覆盖和修改现有的数据库历史记录。

配置实体与字段映射
- 表映射:
- 上传的 CSV 或 Excel 不同的 Sheet 可以映射到不同的数据库表上。注:系统表不支持通过普通导入流程操作。
- 字段映射:
- 一对一建立表格表头与数据表字段的匹配。对于无需导入的无用列,可在右侧选择“忽略”。
- 多媒体字段映射:如果映射的是
图片/视频/文件字段,系统会自动在导入时从 ZIP 包中提取对应的物理文件并上传存储至云存储。 - 经纬度字段:若导入地址经纬度,需要先选择坐标系类型(如 WGS84、国测局、百度等),并分别将表格中的经度列、纬度列分别与之进行配对映射。

核心难点:关联表 ID 映射配置
在关系型数据库中,A 表与 B 表通过外键 id 进行物理绑定(例如:“博客”表中的“作者”字段,存放的是“账户”表的 account_id,而不是名字)。
- 导入挑战:外部 Excel 导入时,博客表格上通常写的是作者名字(如
Arche),而非 32 位 UUID 的account_id。 - 解决方案:在映射时选择“关联表映射”,配置“用 Excel 中的【作者姓名】一列去【帐户表】中匹配唯一的【用户名】字段”。
- 严谨性红线:为防止匹配时出现歧义(例如:“账户表”中存在两个名字都叫
Arche的重名用户,系统将无法判定该绑定哪一个),用于在关联表中执行匹配的字段,必须提前配置好唯一性约束。

配置唯一约束与冲突判定
当导入模式为“添加”且数据表中包含唯一约束时,若导入的表格数据与数据库中已有记录发生冲突(如手机号重复),您必须指定冲突解决策略:
- 跳过:忽略当前冲突的这行重复记录,保障其他没有冲突的数据继续入库。适用于允许少量脏数据被忽略的业务初始化。
- 修改(覆盖):以本次导入的新数据,直接覆盖更新数据库中原有的冲突数据,完成覆盖更新。
- 中止:一旦遇到任意一条数据冲突,立刻中断整个导入事务,并抛出错误日志。

触发器白名单选择
如果您的表在创建、更新数据时挂载了后台“数据库触发器”,可在导入时,通过配置勾选是否在导入期间跑该触发逻辑。
数据安全预览与提审入库
- 预览数据:系统会展现前 10 行预览信息,供您做最后一次人工核对。
- 事务性(Transaction)保障:点击导入后系统自动执行,只要在导入过程中有任意一行因为严重格式错误导致写入失败,本次导入的整批数据均会执行回滚,不会在数据库中留下任何碎片数据。
2. 批量导入系统帐户
“帐户表”属于系统的底层安全基石,涉及到用户登录凭证。导入帐户属于独立的数据流,仅支持“追加添加”,不支持“更新覆盖”。
选择登录方式并准备文件
- 帐户创建与您当前项目的登录方式(用户名密码、手机号、或邮箱)强相关。
- 确保您在 “设置” → “登录设置” 中已经至少启用了一种登录方式。
- 准备表格,表格第一行表头中必须提供“密码”列,以及“手机号”、“用户名”或“邮箱”中至少一列作为登录账号匹配主键。
执行导入映射
在数据库左下角点击 “导入帐户”,上传表格。
- 安全性提示:Zion 不会将用户的明文密码直接保存在明文的帐户表中,而是会在写入时将其安全转译并加密存储至系统内部凭证表(此表不对外暴露)。
设定冲突策略并导入
- 遇到重复的手机号或邮箱,设置选择“跳过”或“终止”。点击导入,系统将自动批量注册并生成系统帐户。
3. 正式导出业务数据
将内部数据格式化导出,是业务数据备份、对账的主要方式。
选择要导出的数据范围
- 点击“数据管理后台”左下角的 “导出数据”。
- 在下拉树中,可以自由勾选普通实体表、系统默认表或您创建的只读自定义视图。
- 配置过滤器:可通过设置过滤和排序规则,精确剔除冗余数据,仅导出特定时间段内的订单。
配置格式与多媒体选项
- 导出格式:支持导出为 Excel(
.xlsx)或.csv。- 导出多表时的差异:若同时勾选导出多张关联表,Excel 会将其合并输出到单个文件的不同工作簿(Sheet)中;而 CSV 会将其分别输出并自动打包到一个 zip 中。
- 多媒体文件同步导出:如果勾选“导出多媒体文件”,系统除了导出表格外,还会将表中存储的图片、视频文件从云端下载,自动分类打包进
IMAGE、VIDEO和FILE文件夹中随压缩包一并导出。

下载导出文件
- 点击导出,完成后,历史数据将在记录中保留 7 天,您可随时在历史面板中点击下载。
4. 导入常见异常与日志排查
如果导入失败,您可以在 “历史” 中下载对应的错误日志文件。日志行号与您的表格物理行号完美对齐,方便定位:
| 错误代码 / 提示 | 具体失败原因 | 推荐解决建议 |
|---|---|---|
NO_MATCHING_MEDIA | 在上传的多媒体 ZIP 包中,未能在对应指定的路径下找到该图片、视频或附件。 | 1. 检查多媒体 ZIP 压缩包根目录,是否直接包含 image 等小写文件夹,没有包含父级文件夹。2. 检查表格中的路径名字与压缩包里的文件名(含大小写)是否完全对齐。 |
unique_constraint_violation | 表格中存在重复信息,或与已有数据库记录冲突,违反了唯一约束(Unique)。 | 1. 剔除表格中的重复数据。 2. 选择更符合业务需求的冲突处理策略(如选择“跳过”或“修改”)。 |
MISMATCHED_DATA_TYPE | 字段的数据类型不匹配(例如将含有汉字的字符串填入了整数列中)。 | 清洗表格中对应行和列的内容,使数据格式和数据库声明的类型完全保持一致。 |
INTERNAL_ERROR | 底层解析错误,通常由于表格编码冲突,或上传的 ZIP 使用了非标准 UTF-8 编码。 | 1. 确保将表格另存为标准的 Excel (.xlsx) 或 UTF-8 编码的 CSV。 2. 重新打包多媒体文件,推荐使用 Bandizip 等规范工具进行 ZIP 压缩。 |
Last updated on