了解 SQL Server 到 PostgreSQL 的轉換設定 - AWS 資料庫遷移服務

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

了解 SQL Server 到 PostgreSQL 的轉換設定

DMS 結構描述轉換中的 SQL Server 到 PostgreSQL 轉換設定包括下列項目:

  • 若要使用生成式 AI 轉換適用的資料庫物件,請啟用生成式 AI 設定。使用生成式 AI 成功轉換的物件將使用動作項目 7744 明確識別,該項目陳述:「此轉換使用根據資料中的模式產生預測的機器學習模型。」 如需詳細資訊,請參閱使用生成式 AI 轉換資料庫物件

  • 在 SQL Server 中,您可以在不同的資料表中使用相同的索引名稱。但是在 PostgreSQL 中,您在結構描述中使用的所有索引名稱都必須是唯一名稱。若要確保 DMS 結構描述轉換為您的所有索引產生唯一名稱,請選取針對索引產生唯一的名稱

  • PostgreSQL 10 和更舊版本不支援程序。如果您不熟悉在 PostgreSQL 中使用程序, AWS DMS 可以將 SQL Server 程序轉換為 PostgreSQL 函數。若要這樣做,請選取將程序轉換為函數

  • 您的來源 SQL Server 資料庫可以將 EXEC 的輸出儲存在資料表中。DMS 結構描述轉換會建立暫存資料表和其他程序來模擬此功能。若要使用此模擬,請選取建立其他常式來處理開放資料集

  • 您可以定義轉換後程式碼中要用於結構描述名稱的範本。針對結構描述名稱,選擇以下其中一個選項:

    • DB – 使用 SQL 伺服器資料庫名稱作為 PostgreSQL 中的結構描述名稱。

    • SCHEMA – 使用 SQL 伺服器結構描述名稱作為 PostgreSQL 中的結構描述名稱。

    • DB_SCHEMA – 使用 SQL 伺服器資料庫和結構描述名稱的組合,作為 PostgreSQL 中的結構描述名稱。

  • 您可以在來源運算元的名稱中保留字母大小寫。若要避免將運算元名稱轉換為小寫,請選取避免轉換為小寫以進行區分大小寫的操作。只有在來源資料庫中啟用區分大小寫功能時,此選項才適用。

  • 您可以保留來源資料庫中的參數名稱。DMS 結構描述轉換可以在轉換後程式碼的參數名稱中加上雙引號。若要這樣做,請選取保留原始參數名稱

  • 您可以保留來源資料庫的一段常式參數。DMS 結構描述轉換會建立網域,並使用網域來指定一段常式參數。若要這樣做,請選取保留參數長度

  • 若要將不支援的內建物件轉換為 stub 物件,請啟用將不支援的內建物件轉換為 stub 物件設定:

    • 啟用時,DMS SC 會將不支援的內建物件取代為目標資料庫中對應的 stub 物件。此功能會轉換通常由遷移問題 7811 或 7904 封閉的程式碼區段。它會根據程序PROCEDUREVIEW檢視或資料表的來源內建物件類型建立 stub 物件。

      將來源資料庫物件與呼叫不支援的物件進行轉換會導致呼叫 stub 物件和遷移問題 7822。

      您可以透過在個別結構描述選項中啟用建立 stub 物件,選擇在個別結構描述中建立 stub 物件。選取時,stub 物件會在目標資料庫中名為 的特殊結構描述aws_sqlserver_stub中建立。如果未選取,則會在與呼叫物件相同的結構描述中建立它們。

    • Stub 常式是根據原始內建的完整名稱來命名。對於 stub 檢視,命名慣例包含系統結構描述名稱 system_schema_name$builtin_view_name

      在重新轉換期間,DMS SC 會檢查目標資料庫中現有的 stub 常式。如果具有相同名稱和輸入參數的常式已存在,則不會覆寫它。

      轉換後,視需要檢閱和實作 stub 常式的自訂程式碼。

  • CITEXT DMS 結構描述轉換中所有字串資料類型設定的資料類型包括下列項目:

    • 若要在從 SQL Server 轉換為 PostgreSQL 時使用不區分大小寫的字串操作的CITEXT資料類型,請為所有字串資料類型設定啟用使用 CITEXT。此選項有助於在從不區分大小寫的 SQL Server 遷移到區分大小寫的 PostgreSQL 環境時維持一致的行為。

    • 啟用時,DMS SC 會將來源 SQL Server 資料庫的所有相關字串資料類型轉換為 PostgreSQL CITEXT中的 。這消除了在條件中對明確 LOWER () 函數呼叫的需求,並自動將條件式操作中的字串表達式轉換為 CITEXT

    • 若要判斷您的 SQL Server 執行個體是否區分大小寫,請執行下列查詢:

      SELECT SERVERPROPERTY('COLLATION');

      包含 'CI' 的結果表示不區分大小寫,而 'CS' 表示區分大小寫。

    • 在伺服器、資料庫或資料欄層級使用明確區分大小寫的定序設定的情況下,CITEXT轉換可能不適用。

      若要使用此功能,請確定CITEXT已安裝模組且可在您的目標 PostgreSQL 資料庫中使用。

    • 使用CITEXT資料類型轉換時,請考慮下列最佳實務:

      • 從不區分大小寫的 SQL Server 遷移時啟用此功能,以在 PostgreSQL 中維持一致的行為。

      • 檢閱您的應用程式程式碼,以確保它不依賴區分大小寫的字串操作。

      • 在遷移後徹底測試您的應用程式,以確認不區分大小寫的行為如預期般維護。