第十章 通过 ODBC 连接 SQL 网关 - 使用数据迁移向导
管理门户提供了一个向导,可以使用该向导从外部表或视图迁移数据。
当您从外部源中的表或视图迁移数据时,系统会生成一个持久类来存储该表或视图的数据,然后复制数据。该向导假定该类应与其来源的表或视图具有相同的名称;同样,属性名称与表或视图中的相同。类生成后,它与外部数据源没有任何连接。
- 如果尚未创建与外部数据库的
SQL
网关连接,请在开始之前执行此操作(请参阅“为外部源创建SQL
网关连接”)。 - 从管理门户中选择“系统资源管理器”,然后选择“
SQL
”。使用页面顶部的Switch
选项选择一个命名空间;这将显示可用命名空间的列表。
在页面顶部,单击“向导”下拉列表,然后选择“数据迁移”。 - 在向导的第一页上,选择表或视图,如下所示:
- 选择目标命名空间 — 选择数据将复制到的
IRIS
命名空间。 - 架构过滤器 - 指定包含表或视图的架构(类包)名称。可以指定带有通配符的名称以返回多个架构,或指定
%
以返回所有架构。例如,C%
将返回命名空间中以字母C
开头的所有模式。建议使用此过滤器,因为它将缩短可供选择的模式的返回列表,从而提高加载速度。 - 表过滤器 — 指定表或视图名称。可以指定带有通配符的名称以返回多个表和/或视图,或指定 % 以返回所有表/视图。
- 表类型 — 选择表、视图、系统表或全部。默认为表。
- 选择
SQL
网关连接 — 选择要使用的SQL
网关连接。
- 选择目标命名空间 — 选择数据将复制到的
- 点击下一步。
- 在下一页上,可以选择为每个类别指定以下信息:
- 新架构 - 指定包含一个或多个类的包。请务必遵循
ObjectScript
标识符的规则,包括长度限制(请参阅定义和使用类中的命名约定部分)。
- 新架构 - 指定包含一个或多个类的包。请务必遵循
提示:要更改所有类的包名称,请在此列顶部键入一个值,然后单击“全部更改”。
- 复制定义 - 选中此复选框可根据外部源中的表定义生成此类。如果已经生成了该类,则可以清除此复选框。
- 复制数据 - 选中此复选框可从外部源复制此类的数据。当复制数据时,向导将覆盖 `IRIS` 类中的任何现有数据。
- 点击下一步。该向导显示以下可选设置:
- 禁用验证 — 如果选中,则将使用
INSERT
命令的限制参数中指定的%NOCHECK
导入数据。 - 禁用导入进程的日志记录 - 如果选中,则执行数据迁移的进程(不是系统范围内)的日志记录将被禁用。这可以使迁移速度更快,但代价是,如果迁移因系统故障而中断,迁移的数据可能会处于不确定状态。无论成功与否,日志记录都会在运行结束时重新启用。
- 延迟索引 — 如果选中,则在插入数据后构建索引。在将数据插入表中之前,向导会调用类的
%SortBegin()
方法。这会导致索引条目被写入临时位置以进行排序。当向导在插入所有行后调用%SortEnd()
方法时,它们将被写入实际索引位置。如果表中定义了唯一索引并且您希望迁移捕获任何唯一约束违规,请不要使用延迟索引。如果使用延迟索引,则不会捕获唯一约束违规。 - 禁用触发器 - 如果选中,则将使用
INSERT
命令的限制参数中指定的%NOTRIGGER
导入数据。 - 导入前从表中删除现有数据 — 如果选中,现有数据将被删除,而不是与新数据合并。
- 禁用验证 — 如果选中,则将使用
- 单击“完成”。该向导将打开一个新窗口并显示“后台作业”页面以及指向后台任务页面的链接。单击“关闭”立即开始导入,或单击给定的链接查看后台任务页面。无论哪种情况,向导都会将导入作为后台任务启动。
- 在“数据迁移向导”窗口中,单击“完成”返回管理门户主页。
注意: %SQL.Migration.Import
包含数据迁移向导的包装器。有关详细信息,请参阅类库文档。
Microsoft Access 和外键约束
当将数据迁移向导与 Microsoft Access
一起使用时,该向导会尝试复制在 Access
表上定义的任何外键约束。为此,它会查询 Access
中的 MSysRelationships
表。默认情况下,该表是隐藏的并且不提供读取访问权限。如果向导无法访问 MSysRelationships
,它会将数据表定义迁移到 SQL
,而无需任何外键约束。
如果希望实用程序将外键约束与表定义一起迁移,请将 Microsoft Access
设置为为 MSysRelationships
提供读取访问权限,如下所示:
- 在
Microsoft Access
中,确保显示系统对象。 - 单击“工具”>“选项”,然后在“视图”选项卡上选择设置。
- 单击工具 > 安全 > 用户和组权限。然后选中表名称旁边的读取复选框。