

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

# 使用 將 Teradata BTEQ 指令碼轉換為 Amazon Redshift RSQL AWS SCT
<a name="CHAP-converting-bteq-rsql"></a>

您可以使用 AWS Schema Conversion Tool (AWS SCT) 將 Teradata Basic Teradata Query (BTEQ) 指令碼轉換為 Amazon Redshift RSQL。

下列架構圖顯示資料庫遷移專案，其中包括將擷取、轉換和載入 (ETL) 指令碼轉換為 Amazon Redshift RSQL。

![\[顯示 ETL 指令碼轉換為 RSQL 的圖表。\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/images/redshift-rsql-conversion.png)


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

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

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

**將 BTEQ 指令碼新增至您的 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.  選擇 **BTEQ 指令碼**，開啟內容 （按一下滑鼠右鍵） 選單，然後選擇**載入指令碼**。

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

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

1. 執行以下任意一項：

   1. 如果您的 Teradata BTEQ 指令碼不包含替代變數，請選擇**無替代變數**，然後選擇**確定**將指令碼新增至您的 AWS SCT 專案。

   1. 如果您的 Teradata BTEQ 指令碼包含替代變數，請設定替代變數。如需詳細資訊，請參閱[在 BTEQ 指令碼中設定替代變數](#CHAP-converting-bteq-rsql-variables)。

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

您的 Teradata BTEQ 指令碼可以包含替代變數。例如，您可以使用一個 BTEQ 指令碼搭配替代變數，在多個資料庫環境中執行相同的命令集。您可以使用 在 BTEQ 指令碼中 AWS SCT 設定替代變數。

使用替代變數執行 BTEQ 指令碼之前，請務必為所有變數指派值。若要這樣做，您可以使用其他工具或應用程式，例如 Bash 指令碼、UC4 (Automic) 等。只有在您指派替代變數的值之後， AWS SCT 才能解析和轉換替代變數。

**在 BTEQ 指令碼中設定替代變數**

1. 將 BTEQ 指令碼新增至您的 AWS SCT 專案。如需詳細資訊，請參閱[將 BTEQ 指令碼新增至您的 AWS SCT 專案](#CHAP-converting-bteq-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 BTEQ 指令碼轉換為 Amazon Redshift RSQL AWS SCT
<a name="CHAP-converting-bteq-rsql-convert"></a>

接下來，了解如何使用 將 BTEQ ETL 指令碼轉換為 Amazon Redshift RSQL AWS SCT。

**將 Teradata BTEQ 指令碼轉換為 Amazon Redshift RSQL**

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

1. 設定替代變數。如需詳細資訊，請參閱[在 BTEQ 指令碼中設定替代變數](#CHAP-converting-bteq-rsql-variables)。

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

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

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

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

## 使用 管理 BTEQ 指令碼 AWS SCT
<a name="CHAP-converting-bteq-rsql-manage"></a>

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

**將額外的 BTEQ 指令碼新增至您的 AWS SCT 專案**

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

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

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

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

**從 AWS SCT 專案中移除 BTEQ 指令碼**

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

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

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

## 使用 建立 BTEQ 指令碼轉換評估報告 AWS SCT
<a name="CHAP-converting-bteq-rsql-assessment"></a>

*BTEQ 指令碼轉換評估報告*提供有關將 BTEQ 命令和 SQL 陳述式從 BTEQ 指令碼轉換為與 Amazon Redshift RSQL 相容格式的資訊。評估報告包含 BTEQ 命令的動作項目，以及 AWS SCT 無法轉換的 SQL 陳述式。

**建立 BTEQ 指令碼轉換評估報告**

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

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

1. 在**建立報告**下選擇**轉換為 RSQL**。

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

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

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

     CSV 檔案包含動作項目、建議的動作，以及轉換指令碼所需的預估手動工作複雜度。

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

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

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

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

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

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

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

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