翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SCT拡張パックの使用
AWS SCT拡張パックは、オブジェクトをターゲットデータベースに変換するときに必要な、ソースデータベースに存在する機能をエミュレートするアドオンモジュールです。AWS SCT拡張パックをインストールする前に、データベーススキーマを変換します。
AWS SCT各拡張パックには次のコンポーネントが含まれています。
DB スキーマ — シーケンスなどの特定のオンライントランザクション処理 (OLTP) およびオンライン分析処理 (OLAP) データベースオブジェクトをエミュレートするための SQL 関数、プロシージャ、およびテーブルが含まれます。また、built-in-functionsソースデータベースではサポートされていないものをエミュレートします。
aws_
このスキーマの名前は次の形式です:.database_engine_name
_extAWS Lambda関数 (特定の OLTP データベース用) — ジョブのスケジュール設定や電子メールの送信など、AWS Lambda複雑なデータベース機能をエミュレートする関数が含まれます。
OLAP データベース用のカスタムライブラリ — Microsoft SQL Server 統合サービス (SSIS) の抽出、変換、ロード (ETL) スクリプトをまたはに移行するために使用できる Java および Python ライブラリのセットが含まれています。AWS Glue AWS Glue Studio
Java ライブラリには次のモジュールが含まれます。
spark-excel_2.11-0.13.1.jar
— Excel のソースコンポーネントとターゲットコンポーネントの機能をエミュレートします。spark-xml_2.11-0.9.0.jar
、poi-ooxml-schemas-4.1.2.jar
、およびxmlbeans-3.1.0.jar
— XML ソースコンポーネントの機能をエミュレートします。
Python ライブラリには次のモジュールが含まれます。
sct_utils.py
— ソースデータ型をエミュレートし、Spark SQL クエリのパラメーターを準備します。ssis_datetime.py
— 日付と時刻の組み込み関数をエミュレートします。ssis_null.py
—ISNULL
REPLACENULL
および組み込み関数をエミュレートするため。ssis_string.py
— 文字列の組み込み関数をエミュレートします。
これらのライブラリの詳細については、「AWS SCT拡張パック用のカスタムライブラリの使用」を参照してください。
AWS SCT拡張パックは次の 2 つの方法で適用できます。
AWS SCTコンテキストメニューから [データベースに適用] を選択してターゲットデータベーススクリプトを適用すると、拡張パックを自動的に適用できます。 AWS SCT他のすべてのスキーマオブジェクトを適用する前に、拡張パックを適用します。
拡張パックを手動で適用するには、対象のデータベースを選択し、コンテキスト (右クリック) メニューから [拡張パックの適用] を選択します。ほとんどの場合、自動適用で十分です。ただし、パックを誤って削除してしまった場合は、手動で適用したほうがよい場合があります。
AWS SCT拡張パックをターゲットデータストアに適用するたびに、コンポーネントは上書きされ、AWS SCTそれに関する通知が表示されます。これらの通知をオフにするには、[設定]、[グローバル設定]、[通知] の順に選択し、[拡張パックの交換通知を非表示にする] を選択します。
Microsoft SQL Server から PostgreSQL への変換には、SQL Server から PostgreSQL への拡張パックを使用できます。AWS SCTこの拡張パックは、SQL Server エージェントと SQL Server データベースメールをエミュレートします。詳細については、「拡張パックを使用して PostgreSQL で SQL サーバーエージェントをエミュレートする」および「拡張パックを使用して PostgreSQL で SQL Server データベースメールをエミュレートする」を参照してください。
以下に、AWS SCT拡張パックの使用に関する詳細情報を示します。
AWS SCT拡張パックを使用するための権限
Amazon Aurora AWS SCT の拡張パックは、関数を使用してメール送信、ジョブスケジューリング、キューイング、およびその他の操作をエミュレートします。AWS LambdaAWS SCT拡張パックをターゲットの Aurora データベースに適用すると、新しい AWS Identity and Access Management (IAM) ロールとインライン IAM AWS SCT ポリシーが作成されます。次に、新しい Lambda AWS SCT 関数を作成し、へのアウトバウンド接続用に Aurora DB クラスターを設定します。AWS Lambdaこれらの操作を実行するには、必ず IAM ユーザーに次の必要な権限を付与してください。
iam:CreateRole
— AWS アカウント用の新しい IAM ロールを作成します。iam:CreatePolicy
— AWS アカウント用の新しい IAM ポリシーを作成します。iam:AttachRolePolicy
— 指定されたポリシーを IAM ロールにアタッチします。iam:PutRolePolicy
— IAM ロールに埋め込まれているインラインポリシードキュメントを更新すること。iam:PassRole
— 指定した IAM ロールをルールエンジンに渡します。iam:TagRole
— IAM ロールにタグを追加します。iam:TagPolicy
— IAM ポリシーにタグを追加します。lambda:ListFunctions
— Lambda 関数のリストを確認するにはlambda:ListTags
— Lambda 関数のタグのリストを表示します。lambda:CreateFunction
— 新しい Lambda 関数を作成します。rds:AddRoleToDBCluster
— IAM ロールを Aurora DB クラスターに関連付けること。
Amazon Redshift AWS SCT の拡張パックは、変換されたオブジェクトを Amazon Redshift に適用するときに必要なソースデータウェアハウスの基本機能をエミュレートします。変換したコードを Amazon Redshift に適用する前に、Amazon Redshift 用の拡張パックを適用する必要があります。そのためには、IAM iam:SimulatePrincipalPolicy
ポリシーにアクションを含めてください。
AWS SCTIAM ポリシーシミュレーターを使用して、Amazon Redshift 拡張パックのインストールに必要なアクセス権限を確認します。IAM ポリシーシミュレータは、IAM ユーザーを正しく設定していても、エラーメッセージを表示することがあります。これは IAM ポリシーシミュレータの既知の問題です。また、IAM iam:SimulatePrincipalPolicy
ポリシーにアクションがない場合、IAM ポリシーシミュレーターはエラーメッセージを表示します。このような場合は、エラーメッセージを無視して、拡張パックウィザードを使用して拡張パックを適用できます。詳細については、「拡張パックの適用」を参照してください。
拡張パックスキーマの使用
データベースまたはデータウェアハウスのスキーマを変換すると、AWS SCT によってターゲットデータベースに別のスキーマが追加されます。この別のスキーマは、ソースデータベースの SQL システム関数を実装します。これらの関数により、変換したスキーマがターゲットデータベースに書き込まれます。この別のスキーマは、拡張パックスキーマと呼ばれます。
OLTP データベースの拡張パックスキーマの名前は、ソースデータベースに従って次の形式になります。
-
Microsoft SQL Server:
AWS_SQLSERVER_EXT
-
MySQL:
AWS_MYSQL_EXT
-
Oracle:
AWS_ORACLE_EXT
-
PostgreSQL:
AWS_POSTGRESQL_EXT
OLAP データウェアハウスアプリケーションの拡張パックスキーマの名前は、ソースデータストアに従って次の形式になります。
-
Greenplum:
AWS_GREENPLUM_EXT
-
Microsoft SQL Server:
AWS_SQLSERVER_EXT
-
Netezza:
AWS_NETEZZA_EXT
-
Oracle:
AWS_ORACLE_EXT
-
Teradata:
AWS_TERADATA_EXT
-
Vertica:
AWS_VERTICA_EXT
AWS SCT拡張パック用のカスタムライブラリの使用
場合によっては、AWS SCTソースデータベースのフィーチャをターゲットデータベースの同等の機能に変換できないことがあります。AWS SCT関連する拡張パックには、ターゲットデータベースで一部のソースデータベース機能をエミュレートするカスタムライブラリが含まれています。
トランザクションデータベースを変換する場合は、を参照してください。AWS SCT 拡張パックの AWS Lambda 関数の使用
拡張パックの適用
拡張パックは、AWS SCT拡張パックウィザードを使用するか、変換されたコードをターゲットデータベースに適用するときに適用できます。
拡張パックウィザードを使用して拡張パックを適用するには
-
のターゲットデータベースツリーでAWS Schema Conversion Tool、コンテキスト (右クリック) メニューを開き、「Extension Pack for for」を選択し、ソースデータベースプラットフォームを選択します。
拡張パックウィザードが表示されます。
-
[Welcome] ページをお読みの上、[Next] (次へ) を選択します。
-
AWSプロファイル設定ページで、次の操作を行います。
-
拡張パックスキーマのみを再インストールする場合は、[Skip this step for now] (今のところこのステップをスキップ)、[Next] (次へ) の順に選択します。「今すぐこのステップをスキップ」オプションは、オンライントランザクション処理 (OLTP) データベースでのみ使用できます。
-
新しいライブラリをアップロードする場合は、に接続するための認証情報を入力してください。AWS アカウントこのステップは、OLAP データベースまたは ETL スクリプトを変換する場合にのみ使用してください。AWS Command Line Interface がインストールされている場合は、AWS CLI (AWS CLI) 認証情報を使用できます。また、グローバルアプリケーション設定で以前プロファイルに保存した認証情報を使用して、プロジェクトと関連付けることもできます。必要に応じて、[グローバル設定に移動] を選択して、AWS SCT別のプロファイルをプロジェクトに設定または関連付けます。詳細については、「AWSサービスプロファイルの保存AWS SCT」を参照してください。
-
-
新しいライブラリをアップロードする場合は、ライブラリのアップロードページで 「ライブラリをアップロードする必要があります」を選択します。このステップは、OLAP データベースまたは ETL スクリプトを変換する場合にのみ使用してください。次に、Amazon S3 パスを指定し、[ライブラリを S3 にアップロード] を選択します。
すでにライブラリをアップロードしている場合は、「すでにライブラリをアップロードしています」を選択し、ライブラリのアップロードページで既存のS3バケットを使用してください。次に、Amazon S3 のパスを指定します。
終了したら、[Next ] (次へ) を選択します。
-
関数エミュレーションページで、「拡張パックの作成」を選択します。拡張パックの操作ステータスとメッセージが表示されます。
完了したら、[Finish] (完了) を選択します。
変換したコードを適用するときに拡張パックを適用するには
-
AWSサービスプロファイルに Amazon S3 バケットを指定します。このステップは、OLAP データベースまたは ETL スクリプトを変換する場合にのみ使用してください。詳細については、「AWSサービスプロファイルの保存AWS SCT」を参照してください。
Amazon S3 バケットポリシーに以下のアクセス権限が含まれていることを確認してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["iam:SimulatePrincipalPolicy"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["iam:GetUser"], "Resource": ["arn:aws:iam::
111122223333:user/DataExtractionAgentName
"] } ] }前の例では、
111122223333: DataExtractionAgentName user/
を IAM ユーザーの名前に置き換えてください。 -
ソースデータウェアハウスのスキーマを変換します。詳細については、「データウェアハウススキーマの Amazon Redshift への変換」を参照してください。
-
右側のペインで、変換されたスキーマを選択します。
-
スキーマ要素のコンテキスト (右クリック) メニューを開き、[Apply to database] (データベースに適用) を選択します。
-
AWS SCT必要なコンポーネントを含む拡張パックを生成し、
aws_
ターゲットツリーにスキーマを追加します。次に、AWS SCT変換されたコードと拡張パックスキーマをターゲットデータウェアハウスに適用します。database_engine_name
_extAmazon Redshift AWS Glue とを組み合わせてターゲットデータベースプラットフォームとして使用すると、AWS SCT拡張パックにスキーマが追加されます。
AWS SCT 拡張パックの AWS Lambda 関数の使用
AWS SCTには、E メール用の Lambda 関数、ジョブスケジューリング、および Amazon EC2 でホストされているデータベース用のその他の機能を含む拡張パックが用意されています。
AWS Lambda 関数を使用したデータベース機能のエミュレート
場合によって、データベース機能は同等の Amazon RDS 機能に変換できないことがあります。例えば、Oracle で送信される E メール呼び出しに UTL_SMTP
が使用されている場合や、Microsoft SQL Server でジョブスケジューラが使用される場合があります。Amazon EC2 でデータベースをホストして自己管理する場合は、代わりに AWS のサービスを使用して、これらの機能をエミュレートできます。
E メール送信やジョブのスケジュール設定などの機能をエミュレートするために、Lambda 関数のインストール、作成、設定を行うには、AWS SCT 拡張パックのウィザードを使用します。
Lambda 関数をサポートするための拡張パックの適用
拡張パックウィザードを使用するか、変換されたコードをターゲットデータベースに適用するときに、拡張パックを Lambda 関数をサポートするように適用できます。
重要
AWS のサービスのエミュレーション機能は、Amazon EC2 にインストールされて自己管理されるデータベースに対してのみサポートされています。ターゲットデータベースが Amazon RDS DB インスタンス上にある場合は、サービスエミュレーション機能をインストールしないでください。
拡張パックウィザードを使用して拡張パックを適用するには
-
のターゲットデータベースツリーでAWS Schema Conversion Tool、コンテキスト (右クリック) メニューを開き、「Extension Pack for for」を選択し、ソースデータベースプラットフォームを選択します。
拡張パックウィザードが表示されます。
-
[Welcome] ページをお読みの上、[Next] (次へ) を選択します。
-
AWSプロファイル設定ページで、次の操作を行います。
-
拡張パックスキーマのみを再インストールする場合は、[Skip this step for now] (今のところこのステップをスキップ)、[Next] (次へ) の順に選択します。
-
AWSサービスをインストールする場合は、に接続するための認証情報を入力してくださいAWS アカウント。AWS CLIがインストールされている場合は、AWS CLI認証情報を使用できます。また、グローバルアプリケーション設定で以前プロファイルに保存した認証情報を使用して、プロジェクトと関連付けることもできます。必要に応じて、[Navigate to Project Settings] (プロジェクト設定に移動) を選択し、別のプロファイ次へルをプロジェクトに関連付けます。必要に応じて、[Global Settings] (グローバル設定) を選択して、新しいプロファイルを作成します。詳細については、「AWSサービスプロファイルの保存AWS SCT」を参照してください。
-
-
[Email Sending Service] (E メール送信サービス) ページで、以下の作業を行います。
-
拡張パックスキーマのみを再インストールする場合は、[Skip this step for now] (今のところこのステップをスキップ)、[Next] (次へ) の順に選択します。
-
AWS のサービスをインストールする場合、既存の Lambda 関数があれば、それを指定できます。それ以外の場合は、ウィザードで自動的に作成されます。終了したら、[Next] (次へ) を選択します。
-
-
[Job Emulation Service] (ジョブのエミュレーションサービス) で、次の作業を行います。
-
拡張パックスキーマのみを再インストールする場合は、[Skip this step for now] (今のところこのステップをスキップ)、[Next] (次へ)の順に選択します。
-
AWS のサービスをインストールする場合、既存の Lambda 関数があれば、それを指定できます。それ以外の場合は、ウィザードで自動的に作成されます。終了したら、[Next] (次へ) を選択します。
-
-
関数エミュレーションページで、「拡張パックの作成」を選択します。拡張パックの操作ステータスとメッセージが表示されます。
完了したら、[Finish] (完了) を選択します。
注記
拡張パックを更新して古い拡張パックのコンポーネントを上書きするには、AWS SCT必ず最新バージョンのを使用してください。詳細については、「AWS SCT のインストール、検証、更新」を参照してください。