

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

# Oracle 到 Amazon Redshift 轉換設定
<a name="schema-conversion-oracle-redshift"></a>

當來源為 Oracle 且目標為 Amazon Redshift 時，會套用下列設定。您可以使用 AWS 管理主控台 或 [ModifyConversionConfiguration](https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyConversionConfiguration.html) API 操作來設定這些設定。

本主題涵蓋 Oracle 至 Amazon Redshift 轉換路徑的特定設定。除了這些設定之外，DMS 結構描述轉換還提供適用於所有來源和目標對的設定，例如轉換後 SQL 中動作項目註解的嚴重性等級，以及使用生成式 AI 轉換的選項。如需這些設定，請參閱 [常見的轉換設定](schema-conversion-settings.md#schema-conversion-settings-common)。

每個設定都會在括號中顯示 API 和 AWS CLI 參數名稱後面的 AWS 管理主控台 標籤。使用 API 或 CLI AWS 設定設定時，請使用 參數名稱。這些設定會依顯示在 中的相同順序列出 AWS 管理主控台。

Oracle 到 Amazon Redshift 的轉換路徑可使用下列設定：

**目標的資料表數目上限** (`RedshiftTablesNumber`)  
指定 DMS 結構描述轉換可套用至目標 Amazon Redshift 叢集的資料表數目上限。Amazon Redshift 具有配額，可限制不同叢集節點類型的資料表數量。  
下表說明此設定的有效值。      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/schema-conversion-oracle-redshift.html)
DMS 結構描述轉換會轉換所有來源資料表，即使資料表數量超過 Amazon Redshift 叢集配額也一樣。DMS 結構描述轉換會將轉換後的程式碼存放在您的專案中，但不套用到目標資料庫。如果您在套用轉換後的程式碼時達到 Amazon Redshift 叢集配額，DMS 結構描述轉換會顯示警告訊息。  
如需有關 Amazon Redshift 資料表配額的資訊，請參閱 [Amazon Redshift 中的配額和限制](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)。  
**類型：**字串 (`Auto` \| `9900` \| `100000`)  
**預設**：`Auto`

**使用 UNION ALL 檢視** (`ConvertingSettings`)  
指定 DMS 結構描述轉換是否使用 UNION ALL 檢視來模擬 Amazon Redshift 上的資料表分割。  
Amazon Redshift 不支援資料表分割。為了模擬資料表分割並讓查詢執行速度更快，DMS 結構描述轉換可以將來源資料表的每個分割區遷移到 Amazon Redshift 中的個別資料表。然後，DMS 結構描述轉換會使用 UNION ALL 建立包含來自所有目標資料表資料的檢視。  
此設定支援下列值：  
+ `true` — DMS 結構描述轉換會為每個分割區和 UNION ALL 檢視建立個別的資料表。啟用時，**目標資料表設定的數量上限**會變成可用。
+ `false` — DMS 結構描述轉換不使用 UNION ALL 檢視。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**目標資料表數目上限** (`PartitionNumberLimit`)  
指定 DMS 結構描述轉換可為單一來源資料表的分割區建立的目標資料表數目上限。此設定僅在 `ConvertingSettings`為 時可用`true`。  
根據來源資料表分割的類型，分割區的數量可能會超過 Amazon Redshift 叢集配額。若要避免達到此配額，請輸入 DMS 結構描述轉換可為單一來源資料表建立的目標資料表數目上限。  
預設值為 368 個資料表。這表示一年中 366 天的分割區，加上 NO RANGE 和 UNKNOWN 分割區的兩個資料表。  
**類型**：整數  
**預設**：`368`

**使用壓縮編碼** (`UseCompressionEncodingZstd`)  
指定 DMS 結構描述轉換是否使用預設 Amazon Redshift 演算法自動將壓縮編碼指派給資料欄。  
此設定支援下列值：  
+ `true` — DMS 結構描述轉換會將壓縮編碼套用至資料表資料欄。
+ `false` — DMS 結構描述轉換不會套用壓縮編碼。
如需壓縮編碼的相關資訊，請參閱《*Amazon Redshift 資料庫開發人員指南*》中的[壓縮編碼](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html)。  
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**對 KEY 資料欄使用壓縮編碼** (`UseCompressionEncodingZstdForKeyFields`)  
指定 DMS 結構描述轉換是否將壓縮編碼指派給定義為排序和分佈索引鍵的資料欄。Amazon Redshift 預設不會將壓縮套用至這些資料欄。您只能在 `UseCompressionEncodingZstd`為 時使用此設定`true`。  
此設定支援下列值：  
+ `true` — DMS 結構描述轉換會將壓縮編碼套用至 KEY 資料欄。
+ `false` — DMS 結構描述轉換不會將壓縮套用至 KEY 資料欄。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**模擬主要金鑰和唯一金鑰的行為 **(`AutomatePrimaryKeyUniqueConstraint`)  
指定 DMS 結構描述轉換是否模擬目標 Amazon Redshift 叢集上主要和唯一金鑰限制的行為。Amazon Redshift 不會強制執行唯一和主要金鑰限制條件，並僅用於提供資訊。如果您在原始程式碼中使用這些限制條件，請選取此選項以在轉換後的程式碼中模擬其行為。  
此設定支援下列值：  
+ `true` — DMS 結構描述轉換模擬目標上的主要和唯一金鑰限制行為。
+ `false` — DMS 結構描述轉換不會模擬金鑰限制行為。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**請勿將延伸套件函數用於日期時間格式元素** (`DatetimeFormatsEqual`)  
指定 DMS 結構描述轉換是否轉換日期時間格式函數 （例如 `TO_CHAR`、 和 `TO_NUMBER`)`TO_DATE`，而不使用延伸套件函數。相較於 Amazon Redshift 中的日期時間格式字串，Oracle 中的日期時間格式模型包含更多元素。當您的原始程式碼只包含 Amazon Redshift 支援的日期時間格式元素時，您不需要轉換程式碼中的延伸套件函數。  
此設定支援下列值：  
+ `true` — DMS 結構描述轉換會將格式化函數轉換為原生 Amazon Redshift 函數，而不使用延伸套件函數。轉換後的程式碼執行速度更快。
+ `false` — DMS 結構描述轉換使用延伸套件函數來模擬轉換程式碼中不支援的格式元素。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**請勿將延伸套件函數用於數值格式元素** (`NumberFormatsEqual`)  
指定 DMS 結構描述轉換是否轉換數值格式函數，而不使用延伸套件函數。相較於 Amazon Redshift 中的數值格式字串，Oracle 中的數值格式模型包含更多元素。當您的原始程式碼僅包含 Amazon Redshift 支援的數值格式元素時，您不需要轉換程式碼中的延伸套件函數。  
此設定支援下列值：  
+ `true` — DMS 結構描述轉換會將數值格式函數轉換為原生 Amazon Redshift 函數，而不使用延伸套件函數。轉換後的程式碼執行速度更快。
+ `false` — DMS 結構描述轉換使用延伸套件函數來模擬轉換程式碼中不支援的格式元素。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`

**使用 NVL 函數模擬 Oracle LEAD 和 LAG 函數的行為** (`LeadLagFunctionsEqual`)  
根據預設，DMS 結構描述轉換會為每個 `LEAD`和 `LAG`函數引發動作項目。當您的原始程式碼不使用這些函數中偏移的預設值時，DMS 結構描述轉換可以使用`NVL`函數模擬其用量。  
此設定支援下列值：  
+ `true` — DMS 結構描述轉換會使用 模擬這些函數`NVL`。轉換後的程式碼執行速度更快。
+ `false` — DMS 結構描述轉換會在每次使用 `LEAD`和 `LAG`函數時引發動作項目。
**類型：**布林值 (`true` \| `false`)  
**預設**：`false`