

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

# 實作階段
<a name="implement"></a>

遵循大型 Bang 或分階段方法的遷移需要新的開發和測試。 AWS Schema Conversion Tool (AWS SCT) 可以自動從 SSIS 套件產生 AWS Glue 任務。這可大幅減少遷移時間和工作量。或者，您可以使用 AWS Glue Studio 進行以圖形介面為基礎的開發，或建置可在 AWS Glue 或 Amazon EMR 上執行的 Spark 程式庫。

下列各節提供使用 AWS SCT AWS Glue和 Amazon EMR 的實用指標。

## AWS SCT
<a name="sct"></a>

下列畫面圖顯示由 轉換 AWS Glue 的任務指令碼 AWS SCT。

![AWS Glue 任務指令碼轉換者 AWS SCT](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/migration-ssis-etl/images/ssis-sct-example.png)


AWS SCT 可以將 SSIS 套件大量轉換為 AWS Glue 任務。您可以編輯指令碼來更新現有的邏輯，或根據您的新設計新增新的邏輯。我們建議您遵循 AWS SCT 轉換指令碼中的命名慣例來自訂指令碼。

如需詳細資訊，請參閱 AWS SCT 文件中的將 [SSIS 轉換為 AWS Glue 使用 AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP-converting-aws-glue-ssis.html) 。

## AWS Glue
<a name="glue"></a>

AWS Glue Studio 提供類似於 SSIS 的圖形界面和開發體驗，如下畫面所示。

![AWS Glue Studio UI](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/migration-ssis-etl/images/glue-studio.png)


如果您不想使用圖形界面，您也可以使用 AWS Glue 主控台中所需的 Python 程式庫來執行自訂指令碼。如需詳細資訊，請參閱 AWS Glue 文件中的[提供您自己的自訂指令碼](https://docs.aws.amazon.com/glue/latest/dg/console-custom-created.html)。

AWS Glue 提供一組用於處理資料的內建轉換。這些類似於 SSIS 資料流程轉換。當您使用下列方式遷移 SSIS ETL 任務時，請遵循這些最佳實務 AWS Glue：
+ 準備從 AWS Glue 轉換到同等 SSIS 轉換的映射。
+ 如果您的轉換無法映射到 AWS Glue 轉換，請使用 Python 或 Scala 自訂指令碼來建置轉換。
+ 對於自訂記錄 （例如資料列讀取、資料列寫入或記錄錯誤），除了 [Amazon CloudWatch](https://docs.aws.amazon.com/glue/latest/dg/logging-and-monitoring.html) 之外，還請使用自訂指令碼。
+ 新增[開發端點](https://docs.aws.amazon.com/glue/latest/dg/add-dev-endpoint.html)以在本機開發和偵錯自訂指令碼。

## Amazon EMR
<a name="emr"></a>

您可以執行自訂指令碼 （以 Python 或 Scala 撰寫） 或在 EMR 叢集中編譯的 Python 程式庫，如下所示 AWS Glue。遵循下列最佳實務：
+ 從記憶體最佳化執行個體類型開始，同時使用 Spark 架構建立 EMR 叢集。(SSIS 使用記憶體緩衝區。)
+ 建置等同於每個 SSIS 任務或轉換的一般 Python 方法。例如，在下圖中，採用兩個資料影格作為輸入的方法會產生第三個資料影格，其具有來自兩個資料影格的相符記錄作為輸出。這可做為[合併聯結](https://learn.microsoft.com/en-us/sql/integration-services/data-flow/transformations/merge-join-transformation)轉換。

![SSIS 任務的範例 Python 合併函數](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/migration-ssis-etl/images/ssis-merge-function.png)


## 測試
<a name="test"></a>

需要測試架構來驗證資料的完整性和正確性。此架構應涵蓋所有現有的案例，以及您遷移任務時所做的任何改善 AWS。
+ 完整性驗證：
  + 所有任務都會遷移至其目標狀態。
  + 所有功能都會在每個任務中遷移。
  + 所有類型的日誌都可使用，包括任務執行詳細資訊、錯誤訊息、錯誤的記錄和資料列計數。
+ 正確性驗證：
  + 資料的品質在現有和新的環境中是一致的。
  + 所有資料表的所有資料欄都相符，或資料表已改善 AWS。
  + 所有稽核和記錄資訊都相符。

您也應該驗證遷移任務的效能是否符合現有任務的效能。