选择规则和操作 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

选择规则和操作

通过使用表映射,可通过选择规则和操作来指定要使用的表、视图和架构。对于使用选择规则类型的表映射规则,您可应用以下值。

参数 可能的值 描述
rule-type selection 一个选择规则。在指定表映射时定义至少一个选择规则。
rule-id 一个数字值。 一个用于标识规则的唯一数字值。
rule-name 一个字母数字值。 一个用于标识规则的唯一名称。
rule-action include, exclude, explicit 一个值,包括或排除规则所选定的对象。如果指定 explicit,则可以选择并仅包含一个对应于显式指定的表和架构的对象。
object-locator

一个带以下参数的对象:

  • schema-name— 架构的名称。对于 MongoDB 和 Amazon DocumentDB 终端节点,这是保存一组集合的数据库的名称。

  • table-name— 表、视图或集合的名称。

  • (可选)table-typetable | view | all,以指示table-name仅指表、视图或者同时引用表和视图。默认为 table

    Amazon DMS 仅在完全加载任务中加载视图。如果您只有完全加载任务和更改数据捕获 (CDC) 任务,请至少配置一个仅完全加载任务来加载您的视图。

规则应用于的每个架构和表或视图的名称。您还可以指定某个规则只包含表、只包含视图还是同时包含表和视图。如果 rule-actionincludeexclude,您可以使用“%”百分比符号作为 schema-nametable-name 参数的值的全部或部分的通配符。因此,您可以匹配这些项目:

  • 单个架构中的单个表、视图或集合

  • 部分或全部架构中的单个表、视图或集合

  • 单个架构中的部分或全部表和视图或单个数据库中的集合

  • 部分或全部架构中的部分或全部表和视图或部分或全部数据库中的集合

如果 rule-actionexplicit,则只能指定单个表或视图及其架构的确切名称(不带通配符)。

支持的视图的源包括:

  • Oracle

  • Microsoft SQL Server

  • PostgreSQL

  • IBM Db2 LUW

  • SAP Adaptive Server Enterprise (ASE)

  • MySQL

  • AURORA

  • Aurora Aurora 无服务器

  • MariaDB

注意

Amazon DMS 从不将源视图加载到目标视图。源视图加载到目标上等同的表,具有与源上视图的相同名称。

包含集合的数据库的支持源包括:

  • MongoDB

  • Amazon DocumentDB

load-order 一个正整数。最大值为 2147483647。 加载表和视图的优先级。首先加载具有较高值的表和视图。
filters 对象数组。 一个或多个用于筛选源的对象。您指定要在源中的单个列上筛选的对象参数。您指定要在多个列上筛选的多个对象。有关更多信息,请参阅使用源筛选器

例 迁移架构中的所有表

以下示例将所有表从源中名为 Test 的架构中迁移到目标终端节点。

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" } ] }

例 迁移架构中的一些表

以下示例将所有表(以 DMS 开头的表除外)从源中名为 Test 的架构中迁移到目标终端节点。

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "DMS%" }, "rule-action": "exclude" } ] }

例 在单个架构中迁移指定的单个表

以下示例将源中 NewCust 架构中的 Customer 表迁移到目标终端节点。

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "NewCust", "table-name": "Customer" }, "rule-action": "explicit" } ] }
注意

您可以通过指定多个选择规则在多个表和架构上显式选择。

例 按设定顺序迁移表

以下示例迁移两个表。表 loadfirst(优先级为 2)在表 loadsecond 之前迁移。

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "loadfirst" }, "rule-action": "include", "load-order": "2" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "loadsecond" }, "rule-action": "include", "load-order": "1" } ] }

例 迁移架构中的部分视图

以下示例将部分视图从源中名为 Test 的架构迁移到目标中等同的表。

{ "rules": [ { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "Test", "table-name": "view_DMS%", "table-type": "view" }, "rule-action": "include" } ] }

例 迁移架构中的所有表和视图

以下示例将所有表和视图从源中名为 report 的架构迁移到目标中等同的表。

{ "rules": [ { "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "report", "table-name": "%", "table-type": "all" }, "rule-action": "include" } ] }