使用將 Teradata BTEQ 腳本轉換為 Amazon Redshift RSQL AWS SCT - AWS Schema Conversion Tool

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

使用將 Teradata BTEQ 腳本轉換為 Amazon Redshift RSQL AWS SCT

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

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

顯示ETL指令碼轉換為的圖表RSQL。

將BTEQ腳本添加到您的 AWS SCT 項目

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

若要將指BTEQ令碼新增至 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. 選擇BTEQ指令碼,開啟內容 (按一下滑鼠右鍵) 功能表,然後選擇「載入指令碼」。

  8. 輸入 Teradata BTEQ 指令碼的原始程式碼位置,然後選擇「選取資料夾」

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

  9. 執行以下任意一項:

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

    2. 如果您的 Teradata BTEQ 指令碼包含替代變數,請設定替代變數。如需詳細資訊,請參閱在BTEQ指令碼中設定替代變數

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

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

在使用替代變數執行指BTEQ令碼之前,請務必為所有變數指派值。為此,您可以使用其他工具或應用程序,例如 Bash 腳本,UC4(Automic)等。 AWS SCT 只有在指定替代變數值之後,才能解析和轉換替代變數。

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

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

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

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

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

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

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

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

使用將 Teradata BTEQ 腳本轉換為 Amazon Redshift RSQL AWS SCT

接下來,找到如何將BTEQETL腳本轉換為 Amazon Redshift RSQL 使用 AWS SCT.

若要將 Teradata BTEQ 指令碼轉換為 Amazon Redshift RSQL
  1. 將您的BTEQ腳本添加到 AWS SCT 項目中。如需詳細資訊,請參閱將BTEQ腳本添加到您的 AWS SCT 項目

  2. 設定替代變數。如需詳細資訊,請參閱在BTEQ指令碼中設定替代變數

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

  4. 執行以下任意一項:

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

    • 若要隱藏多個指令碼,請務必選取要轉換的所有指令碼。然後選擇BTEQ腳本,打開上下文(右鍵單擊)菜單,然後選擇轉換為RSQL轉換腳本

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

  5. 編輯轉換後的 Amazon Redshift RSQL 腳本,或保存它們。如需詳細資訊,請參閱編輯並儲存轉換後的BTEQ指令碼

管理BTEQ指令碼 AWS SCT

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

若要將其他BTEQ指令碼新增至您的 AWS SCT 專案
  1. 展開左側面板中的「腳本」節點。

  2. 選擇指BTEQ令集節點,然後開啟內容 (按一下滑鼠右鍵) 功能表。

  3. 選擇載入指令碼

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

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

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

  3. 選擇刪除命令檔

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

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

若要建立BTEQ指令集轉換評估報告
  1. 展開左側面板中「BTEQ指令碼」下的「指令碼」節點。

  2. 選擇要轉換的腳本,然後打開上下文(右鍵單擊)菜單。

  3. 選擇轉換為RSQL創建報告

  4. 檢視 [要] 索引標籤。摘要標籤會顯示指BTEQ令集評估報告中的執行摘要資訊。它包括BTEQ腳本中所有BTEQ命令和SQL語句的轉換結果。

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

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

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

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

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

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

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

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

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

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

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

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