將帶有嵌入式BTEQ命令的殼層腳本轉換為 Amazon Redshift RSQL AWS Schema Conversion Tool - AWS Schema Conversion Tool

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

將帶有嵌入式BTEQ命令的殼層腳本轉換為 Amazon Redshift RSQL AWS Schema Conversion Tool

您可以使用 AWS Schema Conversion Tool (AWS SCT) 轉換具有內嵌 Teradata 基本 Teradata 查詢 (BTEQ) 命令的殼層指令碼,以對具有內嵌 Amazon Redshift RSQL 命令的指令碼進行殼層處理。

AWS SCT 從殼層BTEQ指令碼擷取 Teradata 命令,並將其轉換為與 Amazon Redshift 相容的格式。將 Teradata 資料庫遷移到 Amazon Redshift 之後,您可以使用這些轉換後的指令碼來管理新的 Amazon Redshift 資料庫。

您也可以使用 AWS SCT 將帶有 Teradata BTEQ ETL 腳本的文件轉換為 Amazon Redshift RSQL。如需詳細資訊,請參閱使用將 Teradata BTEQ 腳本轉換為 Amazon Redshift RSQL AWS SCT

將內嵌 Teradata BTEQ 指令的殼層指令碼新增至您的 AWS SCT 專案

您可以將多個腳本添加到單個 AWS SCT 項目中。

將 shell 腳本添加到您的 AWS SCT 項目
  1. 在中建立新專案 AWS SCT 或開啟既有專案。如需詳細資訊,請參閱在中啟動和管理專案 AWS SCT

  2. 從功能表中選擇 [新增來源],然後選擇 [Teradata] 將來源資料庫新增至專案。如需詳細資訊,請參閱太级数据库

  3. 從功能表中選擇「新增目標」,然後將目標 Amazon Redshift 資料庫新增至您的 AWS SCT 專案。

    您可以使用虛擬的 Amazon Redshift 目標資料庫平台。如需詳細資訊,請參閱對應至中的虛擬目標 AWS Schema Conversion Tool

  4. 建立包含來源 Teradata 資料庫和 Amazon Redshift 目標的新對應規則。如需詳細資訊,請參閱對映中的新資料類型 AWS Schema Conversion Tool

  5. 在「檢視」功能表上,選擇「主視圖」。

  6. 在左側面板中,展開「指令碼」節點。

  7. 選擇命令介面,開啟內容 (按一下滑鼠右鍵) 功能表,然後選擇 [載入指令碼]

  8. 輸入內嵌 Teradata 命令的來源殼層BTEQ指令碼位置,然後選擇「選取資料夾」

    AWS SCT 會顯示「載入命令檔」視窗。

  9. 執行以下任意一項:

    • 如果您的 shell 指令碼不包含替代變數,請選擇 [無替代變數],然後選擇 [確定] 將指令碼新增至 AWS SCT 專案。

    • 如果您的 shell 腳本包含替代變量,請配置替代變量。如需詳細資訊,請參閱在 shell 腳本中配置替代變量

使用嵌入式 Teradata 命令在殼層BTEQ指令碼中設定替代變數 AWS SCT

您的 shell 腳本可以包含替代變量。例如,您可以使用具有替代變數的單一指令碼來管理不同環境中的資料庫。您可以使 AWS SCT 用在 shell 腳本中配置替代變量。

在使用 shell 腳本中的替代變量運行BTEQ命令之前,請確保為此 shell 腳本中的所有變量分配值。 AWS SCT 只有在指定替代變數值之後,才能解析和轉換替代變數。

若要在 shell 指令碼中設定替代變數
  1. 將您的源 shell 腳本添加到您的 AWS SCT 項目中。如需詳細資訊,請參閱將 shell 腳本添加到您的 AWS SCT 項目中

    當您新增指令碼時,請選擇「使用替代變數」。

  2. 在「定義變數格式」中,輸入符合指令集中所有替代變數的規則運算式。

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

    中的規則運算式 AWS SCT 符合 Java 規則運算式語法。有關更多信息,請參閱 Java 文檔中的 java.util.regex 類模式

  3. 選擇 「確定」 將指令碼載入 AWS SCT 專案,然後選擇 「確定」 以關閉「載入指令碼」視窗。

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

  5. 中,輸入替代變數的值。

使用嵌入式 Teradata BTEQ 命令轉換殼層指令碼 AWS SCT

接下來,瞭解如何將具有內嵌 Teradata BTEQ 命令的殼層指令碼轉換為使用嵌入式 Amazon Redshift 命令的指令碼殼層RSQL指令碼。 AWS SCT

若要轉換殼層指令碼
  1. 將您的 shell 腳本添加到您的 AWS SCT 項目中。如需詳細資訊,請參閱將 shell 腳本添加到您的 AWS SCT 項目中

  2. 設定替代變數。如需詳細資訊,請參閱在 shell 腳本中配置替代變量

  3. 在左側面板中,展開「指令碼」節點。

  4. 執行以下任意一項:

    • 若要從單一 Shell BTEQ 指令碼轉換命令,請展開 [命令面] 節點,選擇要轉換的指令碼,然後從內容 (按一下滑鼠右鍵) 功能表中選擇 [轉換指令碼]。

    • 若要隱藏多個指令碼,請務必選取要轉換的所有指令碼。然後選擇命令介面,開啟內容 (按一下滑鼠右鍵) 功能表,然後選擇 [轉換指令碼]

  5. 選擇確定

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

  6. 編輯轉換後的 Amazon Redshift RSQL 腳本或保存它們。如需詳細資訊,請參閱編輯和保存轉換後的 shell 腳本

使用嵌入式 Teradata BTEQ 命令管理命令介面指令碼 AWS SCT

您可以添加多個 shell 腳本或從 AWS SCT 項目中刪除一個 shell 腳本。

將新的 shell 腳本添加到您的 AWS SCT 項目
  1. 展開左側面板中的「腳本」節點。

  2. 選擇「」節點,然後開啟關聯式 (按一下滑鼠右鍵) 功能表。

  3. 選擇載入指令碼

  4. 輸入新增 Shell 指令碼和設定替代變數所需的資訊。如需詳細資訊,請參閱 將 shell 腳本添加到您的 AWS SCT 項目中在 shell 腳本中配置替代變量

若要從 AWS SCT 專案中移除殼層指令碼
  1. 展開左側面板中「指令碼」下的「令介面」節點。

  2. 選擇要移除的指令碼,然後開啟內容 (按一下滑鼠右鍵) 功能表。

  3. 選擇刪除命令檔

建立殼層指令碼轉換的評估報告 AWS SCT

shell 指令碼轉換評估報告提供有關轉換BTEQ命令和SQL陳述式的資訊。將您的來源指令碼轉換為與 Amazon Redshift RSQL 相容的格式。評估報告包含無法轉換之BTEQ命令和SQL陳述 AWS SCT 式的行動項目。

建立殼層指令碼轉換評估報告
  1. 展開左側面板中「指令碼」下的「令介面」節點。

  2. 選擇要轉換的指令碼,開啟內容 (按一下滑鼠右鍵) 功能表,然後選擇 [建立報表]。

  3. 檢視 [要] 索引標籤。摘要標籤會顯示殼層指令碼評估報告中的執行摘要資訊。它包括來源指令碼中所有BTEQ命令和SQL陳述式的轉換結果。

  4. (選擇性) 將 shell 指令碼轉換評估報告的本機副本儲存為PDF檔案或逗號分隔值 (CSV) 檔案:

    • 若要將 shell 指令碼轉換評估報告另存為PDF檔案,請選擇右上角的 [儲存PDF至]。

      此PDF檔案包含執行摘要、行動項目和指令碼轉換的建議。

    • 若要將 shell 指令碼轉換評估報告另存為CSV檔案,請選擇右上角的 [儲存CSV至]。

      該CSV檔案包含行動項目、建議的動作,以及轉換指令碼所需手動工作的估計複雜性。

  5. 選擇「事務處理」 標簽。此索引標籤包含需要手動轉換為 Amazon Redshift RSQL 的項目清單。當您從清單中選取行動項目時, AWS SCT 反白顯示套用行動項目的來源殼層指令碼中的項目。

編輯和保存轉換後的 shell 腳本 AWS SCT

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

儲存轉換後的指令碼
  1. 展開目標資料庫面板中「指令碼」下的「指令碼」節點。RSQL

  2. 選擇轉換後的指令碼,開啟內容 (按一下滑鼠右鍵) 功能表,然後選擇「儲存 Script」。

  3. 輸入要儲存轉換指令碼的資料夾路徑,然後選擇「儲存」。

    AWS SCT 將轉換後的腳本儲存到檔案中,並開啟此檔案。