

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 選取規則與動作
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections"></a>

使用資料表映射，您可以透過選取規則及動作來指定您希望使用的資料表、檢視或結構描述。針對使用選取規則類型的資料表映射規則，可套用下列值。

**警告**  
請勿在這些規則中包含任何敏感資料。


| 參數 | 可能的值 | Description | 
| --- | --- | --- | 
| rule-type | selection | 選取規則。在指定資料表映射時，至少定義一個選擇規則。 | 
| rule-id | 數值。 | 識別規則的唯一數值。如果您使用主控台建立規則，主控台會為您建立此值。 | 
| rule-name | 英數值。 | 識別規則的唯一名稱。如果您使用主控台建立規則，主控台會為您建立此值。 | 
| rule-action | include, exclude, explicit | 用於包含或排除規則所選取的一或多個物件的值。如果指定 explicit，您只能選取並包含一個物件，而該物件對應到明確指定的資料表和結構描述。 | 
| object-locator | 具有下列參數的物件：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.html) DMS 選擇規則區分大小寫。不過，選取結果也取決於來源端點資料庫組態。如果來源端點設定為不區分大小寫，則物件定位器值的大小寫並不重要。確保在不區分大小寫的端點上的 DMS 選擇規則中使用正確的物件識別符。  | 每個要套用規則的結構描述和資料表或檢視的名稱。您也可以指定規則是否僅包含資料表、僅包含檢視，或同時包含資料表和檢視。如果 `rule-action` 是 `include` 或 `exclude`，您可以使用 "%" 百分比符號做為萬用字元，以代表每個 `schema-name` 或 `table-name` 參數的所有值或部分值。如需其他可使用的萬用字元資訊，請參閱：[資料表映射中的萬用字元](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Wildcards.md)。因此，您可以符合這些項目：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.html)<br />如果 `rule-action` 是 `explicit`，您只能指定單一資料表或檢視及其結構描述的確切名稱 (不含萬用字元)。<br />檢視支援的來源包括：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.html) AWS DMS 永遠不會將來源檢視載入目標檢視。來源檢視會載入目標上與來源的檢視同名的對等資料表。 <br />包含集合的資料庫支援的來源包括：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.html) | 
| load-order | 正整數。最大值為 2,147,483,647。 | 載入資料表和檢視的優先順序。較高值的資料表或檢視會優先載入。 | 
| filters |  物件的陣列。 | 一或多個用於篩選來源的物件。請指定物件參數來篩選來源中的單一欄。請指定多個物件來篩選多欄。如需詳細資訊，請參閱[使用來源篩選條件](CHAP_Tasks.CustomizingTasks.Filters.md)。 | 

**Example 遷移結構描述中的所有資料表**  
以下範例會從名為 `Test` 的結構描述，將您來源中的所有資料表遷移到目標端點。  

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

**Example 遷移結構描述中的部分資料表**  
以下範例會從名為 `Test` 的結構描述，將您來源中除了開頭為 `DMS` 之外的所有資料表遷移到目標端點。  

```
{
    "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"
        }
    ]
}
```

**Example 遷移單一結構描述中指定的單一資料表**  
以下範例從來源中的 `NewCust` 結構描述將 `Customer` 資料表遷移到目標端點。  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "NewCust",
                "table-name": "Customer"
            },
            "rule-action": "explicit"
        }
    ]
}
```
您可以指定多個選擇規則，在多個資料表和結構描述上明確地選取。

**Example 以設定的順序遷移資料表**  
資料表和檢視會根據其負載順序值進行遷移，而較高值會在遷移序列中接收優先順序。下列範例會遷移兩個資料表，優先順序值`loadfirst`為 2，`loadsecond`優先順序值為 1，遷移任務會先處理`loadfirst`資料表，再繼續處理`loadsecond`資料表。此優先順序機制可確保在遷移過程中遵守資料庫物件之間的相依性。  

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

**注意**  
`load-order` 適用於資料表初始化。如果 `MaxFullLoadSubTasks` 大於 1，則連續資料表的載入不會等待先前的資料表載入完成。

**Example 遷移結構描述中的部分檢視**  
以下範例會從名為 `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"
        }
    ]
}
```

**Example 遷移結構描述中的所有資料表和檢視**  
以下範例會從名為 `report` 的結構描述，將您來源中的所有資料表和檢視遷移至目標中的對等資料表。  

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