数据传输
在不同连接或不同数据库引擎之间迁移表数据。
数据传输用于把表数据从一个连接复制到另一个连接。它适合开发、测试、迁移和数据整合场景,但不应该替代正式的数据同步链路。
适合的场景
- 把生产库的一部分数据复制到开发环境
- 在 MySQL、PostgreSQL、SQLite、SQL Server 等引擎之间迁移数据
- 将多个数据源整理到同一个分析库
- 为测试环境准备一份可复现的数据集
跨引擎传输会涉及类型映射、默认值、约束和自增字段差异。传输完成后请抽样检查数据,重要迁移建议先在测试环境演练。
使用流程
选择源连接
源连接是数据读取的位置。确认账号有读取目标表的权限。
选择目标连接
目标连接是数据写入的位置。确认账号有写入权限,并确认目标库环境无误。
选择表
可以传输全部表,也可以只选择需要的表。大表建议分批处理。
开始传输
DBX 会按表读取数据,并根据所选模式写入目标数据库。可选择是否创建目标表。
检查结果
传输完成后检查行数、错误列表和关键字段。
传输过程
DBX 会在传输过程中展示:
- 当前正在处理的表
- 已传输行数
- 总体进度
- 错误信息和对应表名
如果某张表失败,当前传输会停止并展示错误信息。修正表结构、权限或约束问题后,可以重新发起传输。
传输选项
| 选项 | 说明 |
|---|---|
| 创建目标表 | 目标库没有对应表时,尝试根据源表结构创建 |
| 追加 | 将数据插入目标表现有数据之后 |
| 覆盖 | 先清空目标表,再写入源数据 |
| Upsert | 在目标数据库路径支持时使用基于键的写入行为 |
| 批大小 | 控制每批写入的行数 |
数据库覆盖范围
基于 SQL 的数据传输支持 MySQL、PostgreSQL、SQLite、SQL Server、Oracle、ClickHouse、DuckDB、DM 和 GaussDB。跨引擎传输会经过 DBX 的类型映射层,传输后请检查行数和关键字段值。
传输前检查
| 检查项 | 原因 |
|---|---|
| 目标环境 | 避免误写生产库或错误环境 |
| 表结构 | 字段名、类型、主键和唯一约束会影响写入 |
| 数据量 | 大表可能需要更长时间,也可能触发超时 |
| 约束 | 外键、唯一约束、非空字段可能导致写入失败 |
| 敏感数据 | 从生产复制到低环境前,确认是否需要脱敏 |