第十章 通过 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 中,确保显示系统对象。
  • 单击“工具”>“选项”,然后在“视图”选项卡上选择设置。
  • 单击工具 > 安全 > 用户和组权限。然后选中表名称旁边的读取复选框。
02-06 12:40