AWS SCT を使用したデータウェアハウススキーマの Amazon Redshift への変換 - AWS Schema Conversion Tool

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

AWS SCT を使用したデータウェアハウススキーマの Amazon Redshift への変換

AWS Schema Conversion Tool (AWS SCT) はデータウェアハウススキーマを Amazon Redshift データベーススキーマに変換する多くのプロセスを自動化します。ソースおよびターゲットデータベースエンジンは様々な特徴と機能を備えている可能性があるため、AWS SCT はターゲットデータベースインスタンスにおいて可能な限り同等のスキーマを作成するよう試みます。直接変換ができない場合、AWS SCT はユーザーに対して可能なアクションの一覧を含む評価レポートを提供します。AWS SCT を使用して、キーの管理、データ型とオブジェクトのマッピング、手動変換の作成を行うことができます。

AWS SCT では次のデータウェアハウススキーマを Amazon Redshift に変換できます。

  • Amazon Redshift

  • Azure Synapse Analytics (バージョン 10)

  • BigQuery

  • Greenplum データベース (バージョン 4.3)

  • Microsoft SQL Server (バージョン 2008 以降)

  • Netezza (バージョン 7.0.3 以降)

  • Oracle (バージョン 10.2 以降)

  • Snowflake (バージョン 3)

  • Teradata (バージョン 13 以降)

  • Vertica (バージョン 7.2 以降)

オンライン トランザクション処理 (OLTP) データベース スキーマの変換については、「AWS SCT を使用したデータベーススキーマの変換」を参照してください。

データウェアハウススキーマを変換するには、次のステップを実行します。

  1. 最適化戦略とルールを指定し、AWS SCT で使用する移行ルールを指定します。列のデータ型の変更、あるスキーマから別のスキーマへのオブジェクトの移動、オブジェクトの名前の変更を行うルールを設定できます。

    最適化と移行ルールは、[Settings] (設定) で指定できます。最適化方法の詳細については、「AWS SCT で使用する最適化戦略とルールの選択」を参照してください。移行ルールの詳細については、「AWS SCT での移行ルールの作成」を参照してください。

  2. ソースデータウェアハウスの統計を提供し、AWS SCT がデータウェアハウスの変換方法を最適化できるようにします。データベースから統計を直接収集するか、既存の統計ファイルをアップロードできます。データウェアハウスの統計の提供については、「AWS SCT の統計の収集またはアップロード」を参照してください。

  3. 自動的に変換できないスキーマの要素の詳細を記載したデータベース移行評価レポートを作成します。ソースデータベースと互換性のあるターゲットデータベースで、スキーマを手動で作成する必要があるかどうかを識別するため、このレポートを使用できます。評価レポートの詳細については、「AWS SCT を使用した移行評価レポートの作成」を参照してください。

  4. スキーマの変換。AWS SCT は確認のために変換されたスキーマのローカルバージョンを作成しますが、準備ができるまでターゲットデータベースには適用されません。変換の詳細については、「AWS SCT を使用したスキーマの変換」を参照してください。

  5. スキーマの変換後は、キーを管理し、編集できます。キー管理はデータウェアハウス変換の柱となります。キー管理の詳細については、「AWS SCT のキーの管理とカスタマイズ」を参照してください。

  6. 自動的に変換できないスキーマの要素がある場合、2 つの選択肢があります。ソーススキーマを更新したのち再び変換するか、またはターゲットデータベースにおいて同等のスキーマの要素を作成します。スキーマ要素の手動変換の詳細については、「AWS SCT でのマニュアル変換の処理」を参照してください。ソーススキーマの更新の詳細については、「AWS SCT で変換されたスキーマの更新および再読み込み」を参照してください。

  7. 準備ができたら、変換されたスキーマをターゲットデータベースに適用できます。変換されたスキーマの保存と適用の詳細については、「AWS SCT で変換されたスキーマの保存および適用」を参照してください。

ターゲットとしての Amazon Redshift の許可

次のリストは、Amazon Redshift をターゲットとして使用するためのアクセス許可を以下に示します。

  • CREATE ON DATABASE — データベースに新しいスキーマを作成できます。

  • CREATE ON SCHEMA — データベーススキーマにオブジェクトを作成できます。

  • GRANT USAGE ON LANGUAGE — データベースに新しい関数やプロシージャを作成できます。

  • スキーマ pg_catalog のすべてのテーブルに対して選択権限を付与 — Amazon Redshift クラスターに関するシステム情報をユーザーに提供します。

  • pg_class_info での GRANT SELECT — テーブル分散スタイルに関する情報をユーザーに提供します。

次のコード例を使用してデータベースユーザーを作成し、権限を付与できます。

CREATE USER user_name PASSWORD your_password; GRANT CREATE ON DATABASE db_name TO user_name; GRANT CREATE ON SCHEMA schema_name TO user_name; GRANT USAGE ON LANGUAGE plpythonu TO user_name; GRANT USAGE ON LANGUAGE plpgsql TO user_name; GRANT SELECT ON ALL TABLES IN SCHEMA pg_catalog TO user_name; GRANT SELECT ON pg_class_info TO user_name; GRANT SELECT ON sys_serverless_usage TO user_name; GRANT SELECT ON pg_database_info TO user_name; GRANT SELECT ON pg_statistic TO user_name;

前の例では、user_name を自分のユーザーの名前に置き換えてください。次に、db_name をターゲットの Amazon Redshift データベースの名前に置き換えます。次に、schema_name を Amazon Redshift スキーマの名前に置き換えます。変換したコードを適用するか、データを移行するターゲットスキーマごとに、GRANT CREATE ON SCHEMA の操作を繰り返します。最後に、your_passwordを安全なパスワードに置き換えます。

ターゲットの Amazon Redshift データベースに拡張パックを適用できます。拡張パックは、オブジェクトを Amazon Redshift に変換するときに必要なソース データベース機能をエミュレートするアドオンモジュールです。詳細については、「AWS SCT 拡張パックの使用」を参照してください。

このオペレーションでは、AWS SCT ではお客様に代わって Amazon S3 バケットへのアクセス許可が必要となります。このアクセス許可を提供するには、次のポリシーを持つ AWS Identity and Access Management (IAM) ユーザーを作成します。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:DeleteObject", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource":[ "arn:aws:s3:::aws-sct-*" ] }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":"" } ] }

AWS SCT で使用する最適化戦略とルールの選択

AWS Schema Conversion Tool がデータウェアハウススキーマを変換する方法を最適化するため、ツールで使用する戦略とルールを選択できます。スキーマを変換し、推奨されたキーを確認した後で、目的の結果を得るためにルールを調整するか、戦略を変更することができます。

最適化戦略とルールを選択するには
  1. [Settings] (設定) を選択し、[Project Settings] (プロジェクト設定) を選択します。[Current project settings] (現在のプロジェクト設定) ダイアログボックスが表示されます。

  2. 左側のペインで、[Optimization Strategies] (最適化戦略) を選択します。最適化戦略が、デフォルト値が選択されて右側のペインに表示されます。

  3. [Strategy Sector] (戦略セクター) で、使用する最適化戦略を選択します。次から選択できます。

    • [Use metadata, ignore statistical information] (メタデータを使用して、統計情報は無視する) – この戦略では、メタデータからの情報のみが、最適化の決定に使用されます。例えば、ソーステーブルに複数のインデックスがある場合、ソースデータベースのソート順が使用され、最初のインデックスが分散キーになります。

       

    • [Ignore metadata, use statistical information] (メタデータを無視して、統計情報を使用する) – この戦略では、統計情報のみが、最適化の決定に使用されます。この戦略は、統計が提供されるテーブルと列のみに適用されます。詳細については、「AWS SCT の統計の収集またはアップロード」を参照してください。

       

    • [Use metadata and use statistical information] (メタデータおよび統計情報を使用する) – この戦略では、最適化の決定にメタデータおよび統計の両方が使用されます。

       

  4. 最適化戦略を選択した後で、使用するルールを選択できます。次から選択できます。

    • メタデータを使用して分散キーとソートキーを選択

    • 照合用のファクトテーブルと適切なディメンションを選択

    • インデックスの列の基数を分析

    • クエリログテーブルから最も使用されるテーブルと列を見つける

    ルールごとに、ソートキーの重みと分散キーの重みを入力できます。AWS SCT では、スキーマの変換時に、ここで選択した重みが使用されます。後で推奨されたキーを確認するときに、結果に満足できない場合は、ここに戻って設定を変更できます。詳細については、「AWS SCT のキーの管理とカスタマイズ」を参照してください。

AWS SCT の統計の収集またはアップロード

AWS Schema Conversion Tool がデータウェアハウススキーマを変換する方法を最適化するには、ツールが使用できるソースデータベースから統計を提供できます。データベースから統計を直接収集するか、既存の統計ファイルをアップロードできます。

統計を提供し、確認するには
  1. プロジェクトを開き、ソースデータベースに接続します。

  2. プロジェクトの左側のパネルからスキーマオブジェクトを選択し、オブジェクトのコンテキスト (右クリック) メニューを開きます。次に示すように、[Collect Statistics] (統計の収集) または [Upload Statistics] (統計のアップロード) を選択します。

    
                        コンテキストメニューの [Collect Statistics] (統計の収集)
  3. プロジェクトの左側のパネルからスキーマオブジェクトを選択し、[Statistics] (統計) タブを選択します。オブジェクトの統計を確認できます。

    
                        [Statistics] (統計) タブ

    後で推奨されたキーを確認するときに、結果に満足できない場合は、追加の統計を収集して、この手順を繰り返すことができます。詳細については、「AWS SCT のキーの管理とカスタマイズ」を参照してください。

AWS SCT での移行ルールの作成

AWS SCT でスキーマを変換する前に、ルールを設定できます。列のデータ型の変更、あるスキーマから別のスキーマへのオブジェクトの移動、オブジェクト名の変更などを、移行ルールを設定して実行できます。例えば、test_TABLE_NAME という名前のソーススキーマにテーブルがあるとします。ターゲットスキーマ内にある プレフィックス test_ をプレフィックス demo_ に変更するルールを設定できます。

注記

移行ルールは、異なるソースとターゲットのデータベースエンジンに対してのみ作成できます。

移行ルールを作成して実行できるタスクは次のとおりです。

  • プレフィックスの追加、削除、または置換

  • サフィックスの追加、削除、または置換

  • 列照合の変更

  • データタイプの変更

  • charvarcharnvarcharstring およびデータ型の長さを変更

  • オブジェクトの移動

  • オブジェクトの名前変更

移行ルールを作成できるオブジェクトは次のとおりです。

  • データベース

  • スキーマ

  • テーブル

  • Column

移行ルールの作成

移行ルールを作成し、プロジェクトの一部として保存できます。プロジェクトを開いた状態で、以下の手順で移行ルールを作成します。

移行ルールを作成するには
  1. [View] (ビュー) メニューで、[Mapping View] (マッピングビュー) を選択します。

  2. [Server mappings] (サーバーマッピング) で、ソースサーバとターゲットサーバのペアを選択します。

  3. [New migration rule] (新しい移行ルール) を選択します。[Transformation rules] (変換ルール) ダイアログボックスが表示されます。

  4. [Add new rule] (新しいルールを追加) を選択します。ルールのリストに新しい行が追加されます。

  5. ルールを設定します。

    1. [Name] (名前) に、ルールの名前を入力します。

    2. [For] で、ルールを適用するオブジェクトのタイプを選択します。

    3. [where] (条件) に、オブジェクトに適用するフィルターを入力後、移行ルールを適用します。where 句は、like 句を使用して評価されます。正確な名前を入力して特定のオブジェクトを選択するか、パターンを入力して複数のオブジェクトを選択できます。

      where 句で利用可能なフィールドは、オブジェクト型によって異なります。例えば、スキーマの名前のオブジェクト型がスキーマの場合、使用可能なフィールドは 1 つだけです。

    4. [Actions] (アクション) で、作成する移行ルールを選択します。

    5. ルールタイプに応じて、追加の値を 1 つまたは 2 つ入力します。例えば、オブジェクトの名前を変更するには、オブジェクトの新しい名前を入力します。プレフィックスを置換するには、現在のプレフィックスおよび置換後のプレフィックスを入力します。

  6. 移行ルールを設定したら、[Save] (保存) を選択してルールを保存します。変更をキャンセルする場合は、[Cancel] (キャンセル) を選択します。

    
                            変換ルールダイアログボックス
  7. ルールの追加、編集、削除が完了したら、[Save All] (すべてを保存) を選択して変更内容を保存します。

  8. [Close] (閉じる) を選択して、[Transformation rules] (変換ルール) ダイアログボックスを閉じます。

移行ルールを削除せずに無効にするには、切り替えアイコンを使用できます。既存の移行ルールを複製するには、コピーアイコンを使用します。既存の移行ルールを編集するには、鉛筆アイコンを使用します。既存の移行ルールを削除するには、削除アイコンを使用します。移行ルールへの変更を保存するには、[Save All] (すべて保存) を選択します。

移行ルールのエクスポート

AWS Database Migration Service (AWS DMS) を使用してソースデータベースからターゲットデータベースにデータを移行する場合は、移行ルールに関する情報を AWS DMS に入力します。タスクに関する詳細は、「AWS Database Migration Service のレプリケーションタスクの使用」を参照してください。

移行ルールをエクスポートするには
  1. AWS Schema Conversion Toolで、[View] (ビュー) メニューで [Mapping View] (マッピングビュー) を選択します。

  2. [Migration rules] (移行ルール) で、移行ルールを選択してから、[Modify migration rule] (移行ルールの変更) を選択します。

  3. [AWS DMS のスクリプトのエクスポート] を選択します。

  4. スクリプトを保存する場所を指定し、[Save] (保存) を選択します。移行ルールは、AWS DMS で使用できる JSON スクリプトとして保存されます。

AWS SCT を使用したスキーマの変換

ソースデータベースおよびターゲットデータベースの両方にプロジェクトを接続したのち、AWS Schema Conversion Tool プロジェクトは左のパネルでソースデータベースからのスキーマを表示します。スキーマはツリービュー形式で表示され、ツリーの各ノードは遅延ロードです。ツリービューでノードを選択すると、その時点で AWS SCT はソースデータベースからスキーマ情報をリクエストします。

ソースデータベースからスキーマ項目を選択し、ターゲットデータベースのデータベースエンジンと同等のスキーマにスキーマを変換することができます。ソースデータベースから任意のスキーマ項目を選択して変換できます。選択したスキーマ項目が親項目に依存する場合、AWS SCT はその親項目にもスキーマを生成します。例えば、変換する列をテーブルから選択する場合、AWS SCT はスキーマを列、その列のあるテーブル、そのテーブルのあるデータベースに生成します。

スキーマの変換

ソースデータベースからスキーマを変換するには、変換するスキーマの名前のチェックボックスを選択します。次に、プロジェクトの左側のパネルからこのスキーマを選択します。 AWS SCT で、スキーマ名が青で強調表示されます。スキーマのコンテキスト(右クリック)メニューを開き、次に示すように [スキーマを変換] を選択します。


                    スキーマの変換

ソースデータベースからスキーマを変換すると、プロジェクトの左のパネルからスキーマ項目を選択でき、プロジェクトの中央のパネルで変換されたスキーマを表示できます。下中央のパネルに変換されたスキーマを作成する SQL コマンドのプロパティが次のように表示されます。


                    ソーススキーマ項目の選択

スキーマを変換した後、プロジェクトを保存できます。ソースデータベースからのスキーマ情報は、プロジェクトと共に保存されます。この機能は、ソースデータベースに接続せずにオフラインで作業できることを意味します。ソースデータベースに [Refresh from Database] (データベースから更新) が選択されている場合、AWS SCT は必要に応じて、ソースデータベースに接続してプロジェクトのスキーマを更新します。詳細については、「AWS SCT で変換されたスキーマの更新および再読み込み」を参照してください。

自動的に変換できない項目のデータベース移行評価レポートを作成できます。評価レポートは、自動的に変換できないスキーマ項目の特定と解決に役立ちます。詳細については、「AWS SCT を使用した移行評価レポートの作成」を参照してください。

AWS SCT が変換されたスキーマを生成する場合、そのスキーマはターゲットデータベースにすぐには適用されません。代わりに、変換されたスキーマはターゲットデータベースに適用する準備ができるまでローカルに保存されます。詳細については、「変換されたスキーマの適用」を参照してください。

変換されたスキーマの編集

変換されたスキーマを編集し、プロジェクトの一部として変更を保存できます。

変換されたスキーマを編集するには
  1. ソースデータベースのスキーマを表示する左のパネルで、変換されたスキーマの編集するスキーマ項目を選択します。

  2. 選択した項目の変換されたスキーマを表示している下中央のパネルで [SQL] タブを選択します。

  3. [SQL] タブで表示されたテキストで、必要に応じてスキーマを変更します。更新する際に、スキーマはプロジェクトと共に自動的に保存されます。

    
                            ターゲットデータベースからのスキーマの更新

更新する際に、プロジェクトと共に変換されたスキーマへの変更が格納されます。新しくソースデータベースからスキーマ項目を変換し、項目の以前に変換されたスキーマを更新した場合、既存の更新はソースデータベースに基づいて新しく変換されたスキーマで置き換えられます。

変換されたスキーマのクリア

ターゲットデータベースにスキーマを適用するまで、AWS SCT はプロジェクトで変換したスキーマをローカルでのみ保存します。ターゲットデータベース用ツリービューノードを選択して、プロジェクトから計画されたスキーマをクリアし、[Refresh from Database] (データベースから更新) を選択します。ターゲットデータベースにスキーマが書き込まれていなかったため、データベースから更新することによって、AWS SCT プロジェクトで計画されたスキーマの要素は削除され、ターゲットデータベースに存在するものと一致するようになります。

AWS SCT のキーの管理とカスタマイズ

AWS Schema Conversion Tool を使用してスキーマを変換した後、キーを管理し、編集できます。キー管理はデータウェアハウス変換の柱となります。

キーを管理するには、ターゲットデータベースでテーブルを選択し、次に示すように [Key Management] (キーの管理) タブを選択します。


                [Key Management] (キーの管理) タブ

左側のペインにはキーの提案が含まれ、各提案の信頼性に関する評価が含まれています。いずれかの提案を選択するか、右側のペインで編集してキーをカスタマイズできます。

キーの選択が予期したとおりでない場合、最適化戦略を編集し、変換を再試行できます。詳細については、「AWS SCT で使用する最適化戦略とルールの選択」を参照してください。

関連トピック

AWS SCT での評価レポートの作成と使用

AWS Schema Conversion Tool は、スキーマの変換に役立つようにデータベース移行の評価レポートを作成します。データベース移行評価レポートでは、ソースデータベースからターゲットデータベースへのスキーマの変換に関する重要な情報を得られます。レポートは、ターゲット データベースの DB エンジンに変換できないスキーマに関する、すべてのスキーマ変換タスクやアクション項目の詳細をまとめたものです。このレポートには、自動変換できないターゲットデータベースで同等のコードを記述するために必要な労力の予測も記載されています。

データベース移行評価レポートの作成

次の手順に従ってデータベース移行評価レポートを作成します。

データベース移行評価レポートを作成するには
  1. ソースデータベースのスキーマを表示する左のパネルで、評価レポートを作成するスキーマオブジェクトを選択します。

  2. オブジェクトのコンテキスト (右クリック) メニューを開き、[Create Report] (レポートを作成) を選択します。

    
                            データベース移行評価レポートの作成

評価レポートの概要

評価レポートを作成すると、評価レポートビューが開き、[Summary] (概要) タブが表示されます。[Summary] (概要) タブには、データベース移行評価レポートの要約が表示されます。自動的に変換された項目と、自動的に変換されなかった項目が表示されます。


                    評価レポートの概要

ターゲットデータベースエンジンに自動的に変換できないスキーマ項目に関して、要約には、ソースと同等のスキーマ項目をターゲット DB インスタンスで作成するために必要な労力の予測が含まれます。

このレポートは、これらのスキーマアイテムを変換する推定時間を次のように分類します。

  • [Simple] (シンプル) - 1 時間以内に完了できるアクション。

  • [Medium] (ミディアム) - より複雑で、1~4 時間で完了できるアクション。

  • [Significant] (大規模) - 非常に複雑で、完了に 4 時間以上かかるアクション。

評価レポートアクション項目

評価レポートビューには [Action Items] (アクション項目) タブも含まれます。このタブには、ターゲットデータベースのデータベースエンジンに自動的に変換できない項目のリストが含まれます。リストからアクション項目を選択する場合、アクション項目が適用されるスキーマが AWS SCT によってハイライトされます。

レポートには、手動でスキーマ項目を変換する方法の推奨事項も含まれています。手動変換の処理方法の決定に関する詳細については、AWS SCT でのマニュアル変換の処理 を参照してください。


                    [Action Items] (アクション項目) タブ

評価レポートの保存

データベース移行評価レポートのローカルコピーを PDF ファイルまたはカンマ区切り値 (CSV) のどちらでも保存できます。CSV ファイルには、アクション項目の情報のみが含まれます。PDF ファイルには、次の例に示すように、要約とアクション項目の情報の両方が含まれます。


                    データベース移行評価レポート

AWS SCT でのマニュアル変換の処理

評価レポートには、ターゲットデータベースのデータベースエンジンに自動的に変換できない項目のリストが含まれます。変換できない各項目に対して、[Action Items] (アクション項目) タブにアクション項目があります。

評価レポートのアクション項目には、以下の方法で対応できます。

  • ソースデータベーススキーマの変更

  • ターゲットデータベーススキーマの変更

ソーススキーマの変更

一部の項目については、ソースデータベースのデータベーススキーマを、自動的に変換できるスキーマに変更する方が容易な場合があります。最初に、新しい変更にアプリケーションアークテクチャと互換性があることを確認し、次にソースデータベースのスキーマを更新します。最後に、更新されたスキーマ情報のあるプロジェクトを更新します。その後、更新されたスキーマを変換し、新しいデータベース移行評価レポートを生成できます。ソーススキーマで変更された項目のアクション項目は表示されなくなります。

このプロセスの利点は、ソースデータベースから更新するときに、更新されたスキーマを常に使用できることです。

ターゲットスキーマの変更

一部の項目については、ターゲットデータベースに変換されたスキーマを適用する方が容易な場合があるため、自動的に変換できなかった項目のターゲットデータベースに同等のスキーマを手動で追加します。スキーマを適用することで、ターゲットデータベースに自動的に変換できるスキーマすべてを記述できます。詳細については、「AWS SCT で変換されたスキーマの保存および適用」を参照してください。

ターゲットデータベースに書き込まれるスキーマには、自動的に変換できなかった項目は含まれません。ターゲットデータベースにスキーマを適用したら、ターゲットデータベースでソースデータベースと同等のスキーマを手動で作成できます。データベース移行評価レポートのアクション項目には、同等のスキーマを作成する方法の提案が含まれています。

警告

ターゲットデータベースでスキーマを手動で作成する場合、手動作業のコピーを保存します。再度プロジェクトからターゲットデータベースに変換したスキーマを適用する場合、行った手動作業は上書きされます。

場合によっては、ターゲットデータベースにおいて同等のスキーマを作成できないことがあります。ターゲットデータベース向けにエンジンで利用できる機能を使用するために、アプリケーションとデータベースの一部を再設計することが必要な場合があります。その他の場合、自動的に変換できないスキーマは無視できます。

AWS SCT で変換されたスキーマの更新および再読み込み

AWS Schema Conversion Tool プロジェクトのソーススキーマおよびターゲットスキーマの両方を更新できます。

  • [Source] (ソース) - ソースデータベースのスキーマを更新した場合、AWS SCT はプロジェクトのスキーマをソースデータベースの最新のスキーマと置き換えます。この機能を使用すると、ソースデータベースのスキーマが変更された場合にプロジェクトを更新できます。

  • [Target] (ターゲット) - ターゲットデータベースのスキーマを更新した場合、AWS SCT はプロジェクトのスキーマをターゲットデータベースの最新のスキーマと置き換えます。ターゲットデータベースにスキーマを適用しなかった場合は、AWS SCT はプロジェクトから変換されたスキーマをクリアします。その後、クリーンターゲットデータベースのソースデータベースからスキーマを変換します。

AWS SCT プロジェクトでスキーマを更新するには、[Refresh from database] (データベースから更新) を選択します。

AWS SCT で変換されたスキーマの保存および適用

AWS Schema Conversion Tool が変換されたスキーマを生成する場合 (AWS SCT を使用したスキーマの変換 で示すように)、変換されたスキーマはターゲットデータベースにはすぐに適用されません。代わりに、変換されたスキーマは、ターゲットデータベースに適用する準備ができるまで、プロジェクトにローカルで保存されます。この機能を使用すると、ターゲットデータベースエンジンに自動的に変換できないスキーマ項目を使用できます。自動的に変換できない項目の詳細については、AWS SCT を使用した移行評価レポートの作成 を参照してください。

オプションとして、ターゲットデータベースにスキーマを適用する前に、変換されたスキーマをツールで SQL スクリプトとしてファイルに保存することができます。さらにツールで、変換したスキーマをターゲットデータベースに直接適用することもできます。

変換されたスキーマのファイルへの保存

変換されたスキーマを SQL スクリプトとしてテキストファイルに保存できます。これにより、ツールが自動的に変換できない項目に対応するために、AWS SCT から生成された SQL スクリプトを変更できます。ターゲットデータベースに変換されたスキーマを適用するために、ターゲット DB インスタンスで更新されたスクリプトを実行できます。

変換されたスキーマを SQL スクリプトとして保存するには
  1. スキーマを選択して、コンテキスト (右クリック) メニューを開きます。

  2. [Save as SQL] (SQL として保存) を選択します。

  3. ファイルの名前を入力し、[Save] (保存) を選択します。

  4. 変換されたスキーマは、次のいずれかのオプションを使用して保存できます。

    • [単一ファイル]

    • [Single file per stage] (ステージごとに 1 つのファイル)

    • [Single file per statement] (ステートメントごとに 1 つのファイル)

SQL スクリプトの形式を選択するには
  1. [Settings] (設定) メニューから [Project settings] (プロジェクト設定) を選択します。

  2. [Save scripts] (スクリプトを保存) を選択します。

  3. [Vendor] (ベンダー) で、データベースプラットフォームを選択します。

  4. [Save SQL scripts to] (SQL スクリプトの保存先) で、データベーススキーマスクリプトの保存方法を選択します。

  5. [OK] を選択して、設定を適用します。

変換されたスキーマの適用

変換されたスキーマをターゲットデータベースに適用する準備ができたら、プロジェクトの右側のパネルからスキーマ要素を選択します。スキーマ要素のコンテキスト(右クリック)メニューを開き、次に示すように、[Apply to database] (データベースに適用) を選択します。


                    [Apply to database] (データベースに適用)

拡張パックスキーマ

変換後のスキーマをターゲット DB インスタンスに適用すると、AWS SCT によって追加ワークスキーマがターゲット DB インスタンスに追加されます。このスキーマは、変換されたスキーマをターゲット DB インスタンスに書き込むときに必要なソースデータベースのシステム関数を実装します。追加されたスキーマは、拡張パックスキーマと呼ばれます。

この拡張パックスキーマは変更しないでください。変更すると、ターゲット DB インスタンスに書き込まれる変換されたスキーマに予期しない結果が発生する可能性があります。スキーマがターゲット DB インスタンスに完全に移行され、AWS SCT が必要なくなった場合は、拡張パックスキーマを削除できます。

拡張パックスキーマの名前は、ソースデータベースに従って次のように記述されます。

  • Greenplum: aws_greenplum_ext

  • Microsoft SQL Server: aws_sqlserver_ext

  • Netezza: aws_netezza_ext

  • Oracle: aws_oracle_ext

  • Snowflake: aws_snowflake_ext

  • Teradata: aws_teradata_ext

  • Vertica: aws_vertica_ext

詳細については、「AWS SCT 拡張パックの使用」を参照してください。

Python ライブラリ

Amazon Redshift でカスタム関数を作成するには、Python 言語を使用します。AWS SCT 拡張子パックを使用して、python ライブラリを Amazon Redshift データベースにインストールします。詳細については、「AWS SCT 拡張パックの使用」を参照してください。