SQL Server から PostgreSQL への変換設定を理解する - AWS データベース移行サービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SQL Server から PostgreSQL への変換設定を理解する

DMS Schema Conversion の SQL Server から PostgreSQL へのコンバージョン設定は、次のとおりです。

  • 生成 AI を使用して該当するデータベースオブジェクトを変換するには、生成 AI 設定を有効にします。生成 AI を使用して正常に変換されたオブジェクトは、「この変換では、データのパターンに基づいて予測を生成する機械学習モデルを使用します」と記述されているアクション項目 7744 で明確に識別されます。詳細については、「生成 AI を使用したデータベースオブジェクトの変換」を参照してください。

  • SQL Server では、複数のテーブルで同じインデックス名を使用できるが、PostgreSQL では、スキーマで使用するインデックス名がすべて一意である必要がある。DMS Schema Conversion がすべてのインデックスのために固有の名前を生成するようにするには、[インデックスの一意の名前を生成] を選択する。

  • PostgreSQL バージョン 10 以前のバージョンでは、プロシージャをサポートしていない。PostgreSQL でのプロシージャの使用に慣れていない場合は、SQL Server プロシージャを PostgreSQL 関数に変換 AWS DMS できます。このためには、[プロシージャを関数に変換] を選択する。

  • ソースの SQL Server データベースは、EXEC の出力をテーブルに保存できる。DMS Schema Conversion は、一時テーブルと、この機能をエミュレートする追加のプロシージャが作成する。このエミュレーションを使用するには、 [Create additional routines to handle open datasets] を選択する。

  • 変換されるコード内のスキーマ名に使用するテンプレートを定義できる。[スキーマ名] で、次のオプションのいずれかを選択する。

    • DB – SQL Server のデータベース名を PostgreSQL のスキーマ名として使用する。

    • SCHEMA – SQL Server のスキーマ名を PostgreSQL のスキーマ名として使用する。

    • DB_SCHEMA – SQL Server データベースとスキーマ名の組み合わせを PostgreSQL のスキーマ名として使用する。

  • 文字の大文字と小文字は、ソースオペランドの名前に保持できます。オペランド名を小文字に変換しないようにするには、大文字と小文字を区別するオペレーションで小文字へのキャストを避けるを選択します。このオプションは、ソースデータベースで大文字と小文字を区別する機能が有効になっている場合にのみ適用されます。

  • ソースデータベースのパラメータ名は維持できる。DMS Schema Conversion は、変換されるコードのパラメータ名に二重引用符を追加できる。このためには、[元のパラメータ名を保持] を選択する。

  • ソースデータベースのルーチンパラメータの長さを保持できます。DMS スキーマ変換はドメインを作成し、このドメインを使用してルーチンパラメータの長さを指定します。そのためには、[パラメータの長さを保持] を選択します。

  • サポートされていない組み込みオブジェクトをスタブオブジェクトに変換するには、サポートされていない組み込みオブジェクトをスタブオブジェクトに変換設定を有効にします。

    • 有効にすると、DMS SC はサポートされていない組み込みオブジェクトをターゲットデータベース内の対応するスタブオブジェクトに置き換えます。この機能は、通常、移行問題 7811 または 7904 で囲まれるコードセクションを変換します。プロシージャ、VIEWビュー、またはテーブルPROCEDUREのソース組み込みオブジェクトのタイプに基づいてスタブオブジェクトを作成します。

      サポートされていないオブジェクトの呼び出しでソースデータベースオブジェクトを変換すると、スタブオブジェクトの呼び出しと移行の問題 7822 が発生します。

      別のスキーマでスタブオブジェクトを作成するオプションを有効にすると、別のスキーマでスタブオブジェクトを作成できます。選択すると、スタブオブジェクトはターゲットデータベースの という名前の特別なスキーマaws_sqlserver_stubに作成されます。選択しない場合、呼び出し元のオブジェクトと同じスキーマに作成されます。

    • スタブルーチンは、元の組み込みの完全修飾名に基づいて名前が付けられます。スタブビューの場合、命名規則にはシステムスキーマ名 が含まれますsystem_schema_name$builtin_view_name

      再変換中、DMS SC はターゲットデータベース内の既存のスタブルーチンをチェックします。同じ名前と入力パラメータを持つルーチンが既に存在する場合、上書きされません。

      変換後、必要に応じてスタブルーチンのカスタムコードを確認して実装します。

  • CITEXT DMS Schema Conversion のすべての文字列データ型設定のデータ型には、次のものがあります。

    • 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 で一貫した動作を維持します。

      • アプリケーションコードを確認して、大文字と小文字を区別する文字列オペレーションに依存していないことを確認します。

      • 移行後にアプリケーションを徹底的にテストし、大文字と小文字を区別しない動作が期待どおりに維持されていることを確認します。