

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

# 使用 將 MultiLoad 指令碼轉換為 Amazon Redshift RSQL AWS Schema Conversion Tool
<a name="CHAP-converting-multiload-rsql"></a>

您可以使用 AWS SCT 將 Teradata MultiLoad 任務指令碼轉換為 Amazon Redshift RSQL。

*Teradata MultiLoad 任務指令碼*是一組命令，用於批次維護 Teradata 資料庫。Teradata MultiLoad 匯入任務會在最多五個不同的資料表和檢視上執行許多不同的插入、更新和刪除操作。Teradata MultiLoad 刪除任務可以從單一資料表移除大量資料列。

AWS SCT 會將 Teradata MultiLoad 命令和 SQL 陳述式轉換為與 Amazon Redshift RSQL 相容的格式。將 Teradata 資料庫遷移至 Amazon Redshift 之後，請使用這些轉換後的指令碼來管理 Amazon Redshift 資料庫中的資料。

**Topics**
+ [將 MultiLoad 任務指令碼新增至您的 AWS SCT 專案](#CHAP-converting-multiload-rsql-create)
+ [使用 在 Teradata MultiLoad 任務指令碼中設定替代變數 AWS SCT](#CHAP-converting-multiload-rsql-variables)
+ [使用 轉換 Teradata MultiLoad 任務指令碼 AWS SCT](#CHAP-converting-multiload-rsql-convert)
+ [使用 管理 Teradata MultiLoad 任務指令碼 AWS SCT](#CHAP-converting-multiload-rsql-manage)
+ [使用 建立 Teradata MultiLoad 任務指令碼轉換的評估報告 AWS SCT](#CHAP-converting-multiload-rsql-assessment)
+ [使用 編輯和儲存轉換後的 Teradata MultiLoad 任務指令碼 AWS SCT](#CHAP-converting-multiload-rsql-save)

## 將 MultiLoad 任務指令碼新增至您的 AWS SCT 專案
<a name="CHAP-converting-multiload-rsql-create"></a>

您可以將多個指令碼新增至單一 AWS SCT 專案。

**將 MultiLoad 任務指令碼新增至您的 AWS SCT 專案**

1. 在 中建立新專案 AWS SCT 或開啟現有的專案。如需詳細資訊，請參閱[在 中啟動和管理專案 AWS SCT](CHAP_UserInterface.Project.md)。

1. 從功能表中選擇**新增來源**，然後選擇 **Teradata** 將來源資料庫新增至專案。如需詳細資訊，請參閱[Teradata 資料庫](CHAP_Source.Teradata.md)。

1. 從選單中選擇**新增目標**，並將目標 Amazon Redshift 資料庫新增至您的 AWS SCT 專案。

   您可以使用虛擬 Amazon Redshift 目標資料庫平台。如需詳細資訊，請參閱[映射至 中的虛擬目標 AWS Schema Conversion Tool](CHAP_Mapping.VirtualTargets.md)。

1. 建立新的映射規則，其中包含您的來源 Teradata 資料庫和 Amazon Redshift 目標。如需詳細資訊，請參閱[在 中映射新資料類型 AWS Schema Conversion Tool](CHAP_Mapping.New.md)。

1. 在**檢視**功能表上，選擇**主檢視**。

1. 在左側面板中，展開 **Scripts** 節點。

1.  選擇 **MultiLoad**，開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**載入指令碼**。

1.  輸入來源 Teradata MultiLoad 任務指令碼的位置，然後選擇**選取資料夾**。

   AWS SCT 會顯示**載入指令碼**視窗。

1. 執行以下任意一項：
   + 如果您的 Teradata MultiLoad 任務指令碼不包含替代變數，請選擇**無替代變數**，然後選擇**確定**將指令碼新增至您的 AWS SCT 專案。
   + 如果您的 Teradata MultiLoad 任務指令碼包含替代變數，請設定替代變數。如需詳細資訊，請參閱[在 MultiLoad 任務指令碼中設定替代變數](#CHAP-converting-multiload-rsql-variables)。

## 使用 在 Teradata MultiLoad 任務指令碼中設定替代變數 AWS SCT
<a name="CHAP-converting-multiload-rsql-variables"></a>

您的 Teradata MultiLoad 任務指令碼可能包含替代變數。例如，您可以使用具有替代變數的單一指令碼，將資料載入不同的資料庫。

使用替換變數執行 MultiLoad 任務指令碼之前，請務必為所有變數指派值。若要這樣做，您可以使用其他工具或應用程式，例如 Bash 指令碼、UC4 (Automic) 等。

AWS SCT 只有在您指派替代變數的值之後，才能解析和轉換替代變數。開始轉換來源 Teradata MultiLoad 任務指令碼之前，請確定已為所有替代變數指派值。您可以使用 在 Teradata 指令碼中 AWS SCT 設定替代變數。

**在 MultiLoad 任務指令碼中設定替代變數**

1. 當您將來源 Teradata MultiLoad 任務指令碼新增至 AWS SCT 專案時，請選擇**使用替代變數**。如需新增這些指令碼的詳細資訊，請參閱 [將 MultiLoad 任務指令碼新增至您的 AWS SCT 專案](#CHAP-converting-multiload-rsql-create)。

1. 針對**定義變數格式**，輸入符合指令碼中所有替代變數的規則運算式。

   例如，如果您的替代變數名稱開頭`${`為 ，結尾為 `}`，請使用`\$\{\w+\}`規則表達式。若要比對以美元符號或百分比符號開頭的替代變數，請使用`\$\w+|\%\w+`規則表達式。

   中的規則表達式 AWS SCT 符合 Java 規則表達式語法。如需詳細資訊，請參閱 Java 文件中的 [java.util.regex 類別模式](https://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)。

1. 選擇**確定**將指令碼載入 AWS SCT 專案，然後選擇**確定**關閉**載入指令碼**視窗。

1. 選擇**變數以檢視所有探索到的**替代變數及其值。

1. 針對**值**，輸入替代變數的值。

## 使用 轉換 Teradata MultiLoad 任務指令碼 AWS SCT
<a name="CHAP-converting-multiload-rsql-convert"></a>

接下來，了解如何使用 將 Teradata MultiLoad 任務轉換為 Amazon Redshift RSQL AWS SCT。

**將 Teradata MultiLoad 任務指令碼轉換為 Amazon Redshift RSQL**

1. 將 MultiLoad 任務指令碼新增至您的 AWS SCT 專案。如需詳細資訊，請參閱[將 MultiLoad 任務指令碼新增至您的 AWS SCT 專案](#CHAP-converting-multiload-rsql-create)。

1. 設定替代變數並輸入其值。如需詳細資訊，請參閱[在 MultiLoad 任務指令碼中設定替代變數](#CHAP-converting-multiload-rsql-variables)。

1. 在左側面板中，展開 **Scripts** 節點。

1. 執行以下任意一項：
   + 若要轉換單一 MultiLoad 任務指令碼，請展開 **MultiLoad** 節點，選擇要轉換的指令碼，然後從內容選單中選擇**轉換指令碼** （按一下滑鼠右鍵）。
   + 若要隱藏多個指令碼，請務必選取要轉換的所有指令碼。選擇 **MultiLoad**，開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**轉換指令碼**。

1. 執行以下任意一項：
   + 如果您在 Amazon S3 上存放來源資料檔案，請選擇**來源資料檔案位置**的 **S3 物件路徑**。

     針對來源資料檔案的資訊清單檔案，輸入 **Amazon S3 儲存貯體資料夾**和 Amazon S3 儲存貯體。 **Amazon S3 ** 
   + 如果您未在 Amazon S3 上存放來源資料檔案，請選擇**來源資料檔案位置**的**主機地址**。

     針對來源資料檔案的資訊清單檔案，輸入**主機的 URL 或 IP 地址**、**主機使用者登入名稱**和 Amazon S3 儲存貯體。 **Amazon S3 ** 

1. 選擇**確定**。

   AWS SCT 會將所有選取的 Teradata MultiLoad 任務指令碼轉換為與 Amazon Redshift RSQL 相容的格式。在目標資料庫面板的指令碼節點中尋找轉換後的**指令碼**。

1. 編輯轉換後的 Amazon Redshift RSQL 指令碼或儲存指令碼。如需詳細資訊，請參閱[編輯和儲存轉換後的 MultiLoad 任務指令碼](#CHAP-converting-multiload-rsql-save)。

## 使用 管理 Teradata MultiLoad 任務指令碼 AWS SCT
<a name="CHAP-converting-multiload-rsql-manage"></a>

您可以新增多個 Teradata MultiLoad 任務指令碼，或從 AWS SCT 專案中移除 MultiLoad 任務指令碼。

**將新的 MultiLoad 任務指令碼新增至您的 AWS SCT 專案**

1. 展開左側面板中的**指令碼**節點。

1. 選擇 **MultiLoad** 節點並開啟內容 （按一下滑鼠右鍵） 選單。

1. 選擇**載入指令碼**。

1. 輸入新增 MultiLoad 任務指令碼和設定替代變數所需的資訊。如需詳細資訊，請參閱[將 MultiLoad 任務指令碼新增至您的 AWS SCT 專案](#CHAP-converting-multiload-rsql-create)及[在 MultiLoad 任務指令碼中設定替代變數](#CHAP-converting-multiload-rsql-variables)。

**從 AWS SCT 專案中移除 MultiLoad 任務指令碼**

1. 在左側面板的**指令碼**下展開 **MultiLoad** 節點。

1. 選擇要移除的指令碼，然後開啟內容 （按一下滑鼠右鍵） 選單。

1. 選擇**刪除指令碼**。

## 使用 建立 Teradata MultiLoad 任務指令碼轉換的評估報告 AWS SCT
<a name="CHAP-converting-multiload-rsql-assessment"></a>

*MultiLoad 任務指令碼轉換評估報告*提供有關轉換 MultiLoad 命令和 SQL 陳述式的資訊。轉換是從來源指令碼到 Amazon Redshift RSQL 命令和 Amazon Redshift 的 SQL 陳述式。評估報告包含 MultiLoad 命令的動作項目，以及 AWS SCT 無法轉換的 SQL 陳述式。

**為 Teradata MultiLoad 任務建立指令碼轉換評估報告**

1. 在左側面板的**指令碼**下展開 **MultiLoad** 節點。

1. 選擇要建立評估報告的指令碼，開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**建立報告**。

1. 檢視**摘要**索引標籤。**摘要**索引標籤會顯示 MultiLoad 任務指令碼評估報告中的執行摘要資訊。它包含來自來源指令碼的所有 MultiLoad 命令和 SQL 陳述式的轉換結果。

1. （選用） 將 MultiLoad 任務指令碼轉換評估報告的本機副本儲存為 PDF 檔案或逗號分隔值 (CSV) 檔案：
   + 若要將 MultiLoad 任務指令碼轉換評估報告儲存為 PDF 檔案，請選擇右上角的**儲存為 PDF**。

      PDF 檔案包含執行摘要、動作項目和指令碼轉換的建議。
   + 若要將 MultiLoad 任務指令碼轉換評估報告儲存為 CSV 檔案，請選擇右上角的**儲存為 CSV**。

     AWS SCT 會建立兩個 CSV 檔案。這些檔案包含轉換指令碼所需的執行摘要、動作項目、建議動作，以及預估的手動工作複雜度。

1. 選擇**動作項目**索引標籤。此標籤包含需要手動轉換為 Amazon Redshift RSQL 的項目清單。當您從清單中選取動作項目時， 會 AWS SCT 反白顯示動作項目套用的來源 MultiLoad 任務指令碼中的項目。

## 使用 編輯和儲存轉換後的 Teradata MultiLoad 任務指令碼 AWS SCT
<a name="CHAP-converting-multiload-rsql-save"></a>

您可以在 AWS SCT 專案的下方面板中編輯轉換後的指令碼。 會將已編輯的指令碼 AWS SCT 儲存為專案的一部分。

**儲存轉換後的指令碼**

1. 在目標資料庫面板的指令碼下展開 **RSQL** **指令碼**節點。

1. 選擇轉換後的指令碼，開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**儲存指令碼**。

1. 輸入資料夾的路徑以儲存轉換後的指令碼，然後選擇**儲存**。

   AWS SCT 會將轉換後的指令碼儲存至檔案，並開啟此檔案。