

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

# 使用 連線至 SQL Server Data Warehouse AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServerDW"></a>

您可以使用 AWS SCT 將結構描述、程式碼物件和應用程式程式碼從 Microsoft SQL Server DW 轉換為 Amazon Redshift 或 Amazon Redshift，並結合 AWS Glue 使用。

## 做為來源的 Microsoft SQL Server Data Warehouse 權限
<a name="CHAP_Source.SQLServerDW.Permissions"></a>

使用 Microsoft SQL Server 資料倉儲做為來源時，需要下列權限：
+ VIEW DEFINITION 
+ VIEW DATABASE STATE 
+ SELECT ON SCHEMA :: *<schema\$1name>* 

在上述範例中，將 *<source\$1schema>* 預留位置取代為 source\$1schema 的名稱。

對您要轉換其結構描述的每個資料庫重複授予。

此外，授予以下項目，並在主資料庫上執行授予：
+ VIEW SERVER STATE 

## SQL Server Data Warehouse 做為來源的限制
<a name="CHAP_Source.SQLServerDW.Limitations"></a>

目前不支援使用 Microsoft SQL Server Parallel Data Warehouse (PDW) 做為來源。

## 以來源身分連線至 SQL Server Data Warehouse
<a name="CHAP_Source.SQLServerDW.Connecting"></a>

使用下列程序，透過 連線至 SQL Server Data Warehouse 來源資料庫 AWS Schema Conversion Tool。

**連線至 SQL Server Data Warehouse 來源資料庫**

1. 在 中 AWS Schema Conversion Tool，選擇**新增來源**。

1. 選擇 **Microsoft SQL Server**，然後選擇**下一步**。

   新增**來源**對話方塊隨即出現。

1. 針對**連線名稱**，輸入資料庫的名稱。 會在左側面板的樹狀目錄中 AWS SCT 顯示此名稱。

1. 使用來自 的資料庫登入資料 AWS Secrets Manager 或手動輸入：
   + 若要從 Secrets Manager 使用資料庫登入資料，請使用下列指示：

     1. 針對**AWS 秘密**，選擇秘密的名稱。

     1. 選擇**填入**，從 Secrets Manager 自動填入資料庫連線對話方塊中的所有值。

     如需從 Secrets Manager 使用資料庫登入資料的資訊，請參閱 [在 AWS Secrets Manager 中設定 AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)。
   + 若要手動輸入 Microsoft SQL Server 來源資料倉儲連線資訊，請使用下列指示：  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServerDW.html)

1. 選擇**測試連線**以驗證 AWS SCT 可以連接到您的來源資料庫。

1. 選擇**連線**以連線至來源資料庫。

## SQL Server Data Warehouse 到 Amazon Redshift 轉換設定
<a name="CHAP_Source.SQLServerDW.ConversionSettings"></a>

若要將 SQL Server Data Warehouse 編輯為 Amazon Redshift 轉換設定，請選擇**設定** AWS SCT，然後選擇**轉換設定**。從上方清單中選擇 **Microsoft SQL Server**，然後選擇 **Microsoft SQL Server – Amazon Redshift**。 AWS SCT 會顯示 SQL Server Data Warehouse 到 Amazon Redshift 轉換的所有可用設定。

中的 SQL Server Data Warehouse 到 Amazon Redshift 轉換設定 AWS SCT 包含下列項目的選項：
+ 限制轉換程式碼中具有動作項目的註解數量。

  針對**所選嚴重性及更高之動作項目在轉換後的程式碼中新增註解**，請選擇動作項目的嚴重性。 會在轉換後的程式碼中 AWS SCT 新增所選嚴重性及更高之動作項目的註解。

  例如，若要將已轉換程式碼中的註解數量降到最低，請選擇**僅限錯誤**。若要在已轉換的程式碼中包含所有動作項目的註解，請選擇**所有訊息**。
+ 設定 AWS SCT 可套用至目標 Amazon Redshift 叢集的資料表數量上限。

  針對**目標 Amazon Redshift 叢集的資料表數目上限**，選擇 AWS SCT 可套用至 Amazon Redshift 叢集的資料表數目。

  Amazon Redshift 的配額會限制不同叢集節點類型的使用資料表。如果您選擇**自動**， 會根據節點類型 AWS SCT ，決定要套用至目標 Amazon Redshift 叢集的資料表數目。或者，手動選擇 值。如需詳細資訊，請參閱《Amazon Redshift 管理指南》**中的 [Amazon Redshift 中的配額和限制](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)。

  AWS SCT 會轉換您的所有來源資料表，即使這超過 Amazon Redshift 叢集可以存放的數量。 會將轉換後的程式碼 AWS SCT 存放在您的專案中，而不會將其套用至目標資料庫。如果您在套用轉換後的程式碼時達到資料表的 Amazon Redshift 叢集配額，則 AWS SCT 會顯示警告訊息。此外， 會將資料表 AWS SCT 套用至目標 Amazon Redshift 叢集，直到資料表數量達到限制為止。
+ 將來源資料表的分割區遷移至 Amazon Redshift 中的個別資料表。若要這樣做，請選取**使用 UNION ALL 檢視**， AWS SCT 然後輸入可為單一來源資料表建立的目標資料表數目上限。

  Amazon Redshift 不支援資料表分割。若要模擬此行為並讓查詢執行速度更快， AWS SCT 可以將來源資料表的每個分割區遷移到 Amazon Redshift 中的個別資料表。然後， AWS SCT 建立包含所有這些資料表資料的檢視。

  AWS SCT 會自動決定來源資料表中的分割區數目。視來源資料表分割的類型而定，此數字可能會超過可套用至 Amazon Redshift 叢集之資料表的配額。若要避免達到此配額，請輸入 AWS SCT 可為單一來源資料表的分割區建立的目標資料表數目上限。預設選項是 368 個資料表，代表一年中 366 天的分割區，以及 `NO RANGE`和 `UNKNOWN`分割區的兩個資料表。
+ 將壓縮套用至 Amazon Redshift 資料表資料欄。若要這樣做，請選取**使用壓縮編碼**。

  AWS SCT 使用預設 Amazon Redshift 演算法自動將壓縮編碼指派給資料欄。如需詳細資訊，請參閱《*Amazon Redshift 資料庫開發人員指南*》中的[壓縮編碼](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html)。

  根據預設，Amazon Redshift 不會將壓縮套用至定義為排序和分佈索引鍵的資料欄。您可以變更此行為，並將壓縮套用至這些資料欄。若要這樣做，請選取**使用 KEY 資料欄的壓縮編碼**。只有在選取**使用壓縮編碼**選項時，才能選取此選項。

## SQL Server Data Warehouse 到 Amazon Redshift 轉換最佳化設定
<a name="CHAP_Source.SQLServerDW.ConversionOptimizationSettings"></a>

若要編輯 SQL Server Data Warehouse 至 Amazon Redshift 轉換最佳化設定，請選擇 中的**設定** AWS SCT，然後選擇**轉換設定**。從上方清單中選擇 **Microsoft SQL Server**，然後選擇 **Microsoft SQL Server – Amazon Redshift**。在左側窗格中，選擇**最佳化策略**。 AWS SCT 顯示 SQL Server Data Warehouse 到 Amazon Redshift 轉換的轉換最佳化設定。

中的 SQL Server 資料倉儲至 Amazon Redshift 轉換最佳化設定 AWS SCT 包含下列項目的選項：
+ 使用自動資料表最佳化。若要這樣做，請選取**使用 Amazon Redshift 自動資料表調校**。

  自動資料表最佳化是 Amazon Redshift 中的自我調校程序，可自動最佳化資料表的設計。如需詳細資訊，請參閱《*Amazon Redshift 資料庫開發人員指南*》中的[使用自動資料表最佳化](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html)。

  若要僅依賴自動資料表最佳化，請針對**初始金鑰選擇策略**選擇**無**。
+ 使用策略選擇排序和分佈索引鍵。

  您可以使用 Amazon Redshift 中繼資料、統計資訊或這兩個選項來選擇排序和分佈索引鍵。針對**最佳化****策略索引標籤上的初始金鑰選擇**策略，選擇下列其中一個選項：
  + 使用中繼資料，忽略統計資訊
  + 忽略中繼資料，使用統計資訊
  + 使用中繼資料和統計資訊

  視您選擇的選項而定，您可以選擇最佳化策略。然後，為每個策略輸入值 (0–100)。這些值會定義每個策略的權重。使用這些權重值， AWS SCT 定義每個規則如何影響分佈和排序索引鍵的選擇。預設值是以 AWS 遷移最佳實務為基礎。

  您可以為**尋找小型資料表策略定義小型資料表**的大小。針對**最小資料表資料列計數**和**最大資料表資料列計數**，輸入資料表中的最小和最大資料列數，將其定義為小型資料表。 會將`ALL`分佈樣式 AWS SCT 套用至小型資料表。在這種情況下，整個資料表的副本會分發到每個節點。
+ 設定策略詳細資訊。

  除了定義每個最佳化策略的權重之外，您還可以設定最佳化設定。若要這麼做，請選擇**轉換最佳化**。
  + 針對**排序索引鍵資料欄限制**，輸入排序索引鍵中的資料欄數上限。
  + 對於**偏斜閾值**，輸入資料欄偏斜值的百分比 (0–100)。 AWS SCT 排除分佈索引鍵候選項目清單中的偏斜值大於閾值的資料欄。 將資料欄偏斜值 AWS SCT 定義為最常見值與記錄總數的百分比比率。
  + 對於**查詢歷史記錄表中的前 N 個查詢**，輸入要分析之最常用查詢的數目 (1–100)。
  + 對於**選取統計資料使用者**，選擇您要分析查詢統計資料的資料庫使用者。

  此外，在**最佳化策略**索引標籤上，您可以定義尋找小型資料表策略的**小型資料表**大小。針對**最小資料表資料列計數**和**最大資料表資料列計數**，輸入資料表中的最小和最大資料列數，將其視為小型資料表。 會將`ALL`分佈樣式 AWS SCT 套用至小型資料表。在這種情況下，整個資料表的副本會分發到每個節點。