十月 29, 2023
摘要:DBeaver 中的数据迁移,提供了在不同数据库之间或同一数据库内的表之间传输数据的功能。本教程将引导您完成使用 DBeaver 执行数据迁移的步骤。
目录
步骤 1 定义数据源
要启动数据迁移,您需要选择数据源。请按照以下步骤操作:
- 导航至数据库导航器。
- 选择一个或多个要导出的表。
- 右键单击打开上下文菜单。
- 从选项中选择导出数据。
提示:您可以从自定义 SQL 查询导出数据。执行查询,然后从结果上下文菜单中选择导出数据。
步骤 2 定义数据传输目标类型
选择数据源后,下一步是指定数据传输目的地的类型。选择数据库作为数据传输目标类型,然后按下一步。
步骤 3 表映射
选择数据库作为传输目标类型后,下一步涉及映射数据。此过程包括指定选项、选择目标容器以及设置其他配置。配置数据映射设置,并按下一步继续下一步。
可用选项
按键:
图标 | 选项 | 描述 |
---|---|---|
浏览 | 允许选择目标容器。 | |
配置 | 打开附加设置。有关详细信息,请参阅配置部分。 | |
预览数据 | 显示要传输的数据的预览。 | |
向上 | 将选定的映射移至更靠近队列头部的位置。 | |
向下 | 将选定的映射移至更靠近队列尾部的位置。 | |
映射规则 | 选择传输数据时如何转换新表和列名。有关详细信息,请参阅映射规则部分。 | |
自动赋值 | 根据来源自动填充目标列。 | |
选择… | 指定数据将传输到的目标容器。 |
字段:
选项 | 描述 |
---|---|
目标容器 | 定义数据传输的数据库或模式。有关更多详细信息,请参阅目标容器部分。 |
来源 | 显示所选表及其列的名称。 |
目标 | 显示目的表的名称。 |
映射 | 列出数据传输的可用操作。有关更多详细信息,请参阅映射部分。 |
转换 | 允许在数据传输期间转换列值。有关更多详细信息,请参阅转换部分。 |
目标容器和目标表
指定目标容器
按 选择… 按钮选择将要传输数据的容器。
定义目标表
您可以通过多种方式指定数据传输的目标表:
- 手动输入:单击目标列中的单元格,然后手动输入要传输数据的表的名称。
- 下拉列表:使用目标列旁边的下拉列表,在以下选项中进行选择:
- 预先存在的表名称。
- 跳过:跳过该表的数据传输。
- 浏览:打开 选择目标表 窗口
- 浏览按钮:或者,按浏览按钮,从目标容器中的现有表中选择一个表。
映射
要更改映射类型,请单击表映射对话框的映射列中的单元格,然后选择所需的映射类型。
动作 | 描述 |
---|---|
创建 | 将源数据传输到目标容器中新创建的表或列。 |
跳过 | 不传输源数据。 |
已存在的 | 将源数据传输到目标容器中的现有表。 |
重新创建 | 重新创建表,这意味着现有表的可用数据、键、索引和其他可能的实体都会丢失。 |
提示:如果单元格标有 ,则表示目标表中不存在名称匹配的列,否则将自动填充名称。
转换列值
您可能还想在传输过程中转换某些列的值。为此,请通过单击转换列中的相应单元格来定义列转换器。您可以选择以下三个选项之一:
选项 | 描述 |
---|---|
设置为 NULL | 相应列中的所有值均设置为null 。 |
常量 | 将列值设置为常量值。 |
表达式 | 使用JEXL 表达式计算列的值。 |
配置
单击配置按钮打开配置元数据结构窗口。此窗口允许您探索分布在以下选项卡中的其他设置:
列映射
通过导航到列映射,您可以探索源列和目标列之间的详细映射。
元素 | 描述 |
---|---|
来源列 | 包含所选来源表中存在的列的名称。 |
来源类型 | 列出分配给所选来源表中的列的数据类型。 |
目标列 | 包含目标表中的列名称,来源列中的数据将传输到该目标表中。 |
目标类型 | 列出将分配给目标表中的列的数据类型。 |
映射 | 包含数据传输时应用于数据的动作列表。 |
转换 | 显示传输期间一个列中数据的转换方式。 |
重要:源数据库支持的数据类型在目标数据库中可能不受支持,反之亦然。要设置目标列的数据类型,请单击目标类型列中的单元格,然后从下拉列表中进行选择。
表属性
通过选择表属性选项卡,您可以修改目标表的属性,例如:
属性 | 描述 |
---|---|
表空间 | 指定目标表的表空间。 |
分区方式 | 设置目标表的分区方式。 |
备注 | 允许您向目标表添加备注。 |
注意:这些设置的可用性可能会有所不同,具体取决于您使用的数据库和版本。
目标 DDL
通过选择目标 DDL 选项卡,您可以查看数据传输期间将执行的 SQL 脚本。
如果您要将数据导出到新表,或者重新创建现有表,该选项卡将显示必要的 SQL 语句。如果不是,DDL 选项卡将保持为空。
映射规则
单击映射规则按钮将打开一个窗口,其中提供了用于自定义数据传输期间如何转换新表和列名称的选项。
在该窗口中,可以进行以下设置:
选项 | 描述 |
---|---|
名称大小写 | 设置表名和列名的字母大小写。选项包括默认、大写和小写。 |
替换空格 | 确定如何处理表名和列名中的空格。选项有:不替换、替换为下划线和删除、转换为驼峰命名法。 |
最大数据类型长度 | 设置数据类型的最大长度。 |
保存当前更改到全局设置 | 如果选中,则将当前映射规则保存到全局设置。否则,它们将保存在数据源设置级别。 |
全局设置 | 打开名称映射规则的全局设置窗口。或者转至窗口 -> 首选项 -> 连接 -> 数据传输,打开全局设置。 |
除了使用全局设置按钮之外,您还可以通过导航到窗口 -> 首选项 -> 连接 -> 数据传输,来访问这些设置。
重要:修改映射规则设置后,系统将提示您确认更改。修改映射规则可能会导致已更改的名称丢失。
键盘快捷键
支持以下键盘快捷键,以便在表映射选项卡的映射表区域中轻松导航:
快捷键 | 动作 |
---|---|
向上 | 向上移动一行。 |
向下 | 向下移动一行。 |
右边 | 展开来源表列的列表。 |
左边 | 折叠来源表列的列表。 |
空格 | 自动分配目标。 |
删除 | 设置要跳过的映射类型。 |
步骤 4 提取设置
设置表映射后,下一步是定义如何从数据源中提取数据。提取设置选项卡提供了各种选项来优化此过程。配置这些设置以满足您的特定数据传输要求,然后按下一步。
选项 | 描述 |
---|---|
最大线程数 | 定义用于数据传输的线程数。 |
提取类型 | 对于较小的数据负载,选择单一查询。使用按分段进行较大的数据迁移。选择此选项后,您还可以设置段大小值。 |
打开新连接 | 如果选中,则会建立新连接,以确保数据传输不会影响其他数据库操作。 |
选择行数 | 启用进度条显示数据迁移状态。 |
抓取大小 | 指示每次服务器往返获取的行数,它会影响提取性能。 |
步骤 5 数据加载设置
配置提取设置后,您需要指定如何将数据加载到目标数据库中。数据加载设置选项卡提供了一系列选项来控制这部分过程。根据您的需要调整设置,然后按下一步。
数据加载设置选项卡,定义如何将提取的数据推送到目标。可以使用以下选项。
选项 | 描述 |
---|---|
传输自动生成的列 | 填充或跳过标有“自动生成”状态的列。一些数据库接受此类列中的值,而另一些数据库则会抛出语法错误。 |
加载前截断目标表 | 仅当您希望从目标表中清除所有数据时,才选择此复选框。使用此选项时要非常小心! |
在传输期间禁用引用完整性检查 | 禁用目标表中的约束。此设置通过暂时禁用约束来防止数据库错误。但请注意,并非所有数据库都支持此功能。 |
替换方法 | 请阅读我们的数据导入和替换教程,了解有关替换方法选项的更多信息。 |
打开新连接 | 使用此选项可以加快数据传输速度。如果选定此选项,将打开一个新连接,并且数据传输不会干扰对目标数据库的其他调用。 |
使用事务 | 此选项允许您加快数据传输速度,并通过设置插入后提交参数来定义每个事务的行数。 |
行插入后提交 | 在插入一定数量的行后执行提交。此设置指定,在将指定数量的行插入表后应执行提交操作。 |
使用多行值插入 | 使用具有扩展值数的多行插入,以获得更高的性能。数据库特定设置。 |
在插入期间跳过绑定值 | 此选项可以跳过绑定值并直接设置它们,来显著提高某些驱动程序的性能,但它会带来 SQL 注入的安全风险。如果您不确定导入的文件内容,不建议这样做。 |
禁用批量操作 | 如果您想要禁用批量导入,请选中此复选框。导入将逐行进行。启用此功能将显示所有导入错误,但会使导入过程变慢。 |
忽略重复行错误 | 在导入过程中,如果数据库遇到目标表中导入行的键值重复,此类错误将被忽略,导入操作将继续进行而不会失败。 |
使用批量加载 | 绕过事务设置,并使用数据库提供的本机工具加载整个数据集。 |
完成后打开表编辑器 | 如果选择,则数据传输完成后将打开表编辑器。 |
显示完成消息 | 如果选择,传输完成后将显示一条通知消息。 |
通过电子邮件发送结果 | 完成后通过电子邮件发送数据传输结果。 |
步骤 6 确认
启动数据传输之前的最后一步是确认选项卡。此选项卡提供了前面步骤中设置的所有配置的摘要。它作为最后一次检查,以确保所有设置都正确。
下面是总结了配置选项的表:
选项 | 描述 |
---|---|
来源容器 | 显示要从中提取数据的来源容器。 |
来源 | 显示容器内的特定来源。 |
目标容器 | 显示数据将推送到的目标容器。 |
目标 | 显示容器内的特定目标。 |
来源设置 | 总结从来源提取数据相关的设置。 |
目标设置 | 总结与加载到目标中的数据相关的设置。 |
这些设置是最终设置,现阶段已无法更改。如果所有配置均正确,请单击完成开始数据传输。
提示:您可以保存这些配置以供将来使用,并通过选择保存任务,创建与数据传输操作相关的任务。此选项将您的设置合并到一个可重用任务中。
单击继续后,数据传输过程将启动。
步骤 7 导出完成通知
如果没有错误,您将看到一个通知窗口,指示导出任务已成功完成。您可以在导出过程中继续使用数据库,因为它会在后台执行。