選取規則與動作 - AWS Database Migration Service

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

選取規則與動作

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

參數 可能的值 描述
rule-type selection 選取規則。在指定資料表映射時,至少定義一個選擇規則。
rule-id 數值。 識別規則的唯一數值。如果您使用主控台建立規則,則主控台會為您建立此值。
rule-name 英數值。 識別規則的唯一名稱。如果您使用主控台建立規則,則主控台會為您建立此值。
rule-action include, exclude, explicit 用於包含或排除規則所選取的一或多個物件的值。如果指定 explicit,您只能選取並包含一個物件,而該物件對應到明確指定的資料表和結構描述。
object-locator 具有下列參數的物件:
  • schema-name – 結構描述的名稱。

  • table-name – 資料表的名稱。

  • (選用) table-typetable | view | all ,指出是否 table-name 僅參考資料表、檢視,或同時參考資料表和檢視。預設值為 table

    AWS DMS 只會在完整載入工作中載入視圖。如果您只有完整載入和變更資料擷取 (CDC) 工作,請至少設定一 full-load-only 項工作以載入檢視。

    並非所有目標端點都接受視圖做為複寫來源,即使在滿載情況下也是如此 (例如 Amazon OpenSearch 服務)。檢查目標端點的限制。

每個要套用規則的結構描述和資料表或檢視的名稱。您也可以指定規則是否僅包含資料表、僅包含檢視,或同時包含資料表和檢視。如果 rule-actionincludeexclude,您可以使用 "%" 百分比符號做為萬用字元,以代表每個 schema-nametable-name 參數的所有值或部分值。如需其他可使用的萬用字元資訊,請參閱:資料表映射中的萬用字元。因此,您可以符合這些項目:

  • 單一結構描述中的單一資料表、檢視或集合

  • 部分或所有結構描述中的單一資料表、檢視或集合

  • 單一結構描述中的部分或所有資料表和檢視,或是單一資料庫中的集合

  • 部分或所有結構描述中的部分或所有資料表和檢視,或部分或所有資料庫中的集合

如果 rule-actionexplicit,您只能指定單一資料表或檢視及其結構描述的確切名稱 (不含萬用字元)。

檢視支援的來源包括:

  • Oracle

  • Microsoft SQL Server

  • PostgreSQL

  • IBM Db2 LUW

  • 作業系統

  • SAP Adaptive Server Enterprise (ASE)

  • MySQL

  • AURORA

  • AURORA Serverless

  • MariaDB

注意

AWS DMS 永遠不會將源視圖加載到目標視圖。來源檢視會載入目標上與來源的檢視同名的對等資料表。

包含集合的資料庫支援的來源包括:

  • MongoDB

  • Amazon DocumentDB

load-order 正整數。最大值為 2,147,483,647。 載入資料表和檢視的優先順序。較高值的資料表或檢視會優先載入。
filters 物件的陣列。 一或多個用於篩選來源的物件。請指定物件參數來篩選來源中的單一欄。請指定多個物件來篩選多欄。如需詳細資訊,請參閱 使用來源篩選條件
範例 遷移結構描述中的所有資料表

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

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" } ] }
範例 遷移結構描述中的部分資料表

以下範例會從名為 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" } ] }
範例 遷移單一結構描述中指定的單一資料表

以下範例從來源中的 NewCust 結構描述將 Customer 資料表遷移到目標端點。

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

您可以指定多個選擇規則,在多個資料表和結構描述上明確地選取。

範例 以設定的順序遷移資料表

以下範例會遷移兩個資料表。表loadfirst(優先級為 1)在表之前初始化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,則連續資料表的載入不會等待先前的資料表載入完成。

範例 遷移結構描述中的部分檢視

以下範例會從名為 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" } ] }