AWS Schema Conversion Tool を使用して MultiLoad スクリプトを Amazon Redshift RSQL に変換する
AWS SCT を使用して、Teradata MultiLoad ジョブスクリプトから Amazon Redshift RSQL に変換できます。
Teradata MultiLoad ジョブスクリプトは、Teradata データベースのバッチメンテナンスを行うためのコマンドセットです。Teradata MultiLoad インポートタスクは、最大 5 つの異なるテーブルとビューに対してさまざまな挿入、更新、削除操作を実行します。Teradata MultiLoad 削除タスクでは、1 つのテーブルから多数の行を削除できます。
AWS SCT は、Teradata MultiLoad コマンドと SQL ステートメントを Amazon Redshift RSQL と互換性のある形式に変換します。Teradata データベースを Amazon Redshift に移行したら、変換されたこれらのスクリプトを使用して Amazon Redshift データベースのデータを管理します。
トピック
MultiLoad ジョブスクリプトを AWS SCT プロジェクトに追加する
複数のスクリプトを単一の AWS SCT プロジェクトに追加できます。
MultiLoad ジョブスクリプトを AWS SCT プロジェクトに追加するには
-
AWS SCT で新しいプロジェクトを作成するか、既存のプロジェクトを開きます。詳細については、「AWS SCT でのプロジェクトの開始と管理」を参照してください。
-
メニューから [ソースを追加] を選択し、次に [Teradata] を選択してソースデータベースをプロジェクトに追加します。詳細については、「Teradata データベース」を参照してください。
-
メニューから [ターゲットを追加] を選択し、ターゲットの Amazon Redshift AWS SCT データベースをプロジェクトに追加します。
仮想 Amazon Redshift ターゲットデータベースプラットフォームを使用できます。詳細については、「AWS Schema Conversion Tool の仮想ターゲットへのマッピング」を参照してください。
-
ソース Teradata データベースと Amazon Redshift ターゲットを含む新しいマッピングルールを作成します。詳細については、「AWS Schema Conversion Tool での新しいデータ型のマッピング」を参照してください。
-
[ビュー] メニューで、[メインビュー] を選択します。
-
左側のパネルで、[スクリプト] ノードを展開します。
-
[MultiLoad] を選択し、コンテキスト (右クリック) メニューを開いてから、[スクリプトのロード] を選択します。
-
ソース Teradata MultiLoad ジョブスクリプトの場所を入力し、[フォルダの選択] を選択します。
AWS SCT[スクリプトのロード] ウィンドウが表示されます。
-
次のいずれかを行います:
Teradata MultiLoad ジョブスクリプトに代替変数が含まれていない場合は、[代替変数なし] を選択し、[OK] 選択してスクリプトを AWS SCT プロジェクトに追加します。
-
Teradata MultiLoad ジョブスクリプトに代替変数が含まれている場合は、代替変数を設定します。詳細については、「MultiLoad ジョブスクリプトでの代替変数の設定」を参照してください。
Teradata MultiLoad ジョブスクリプトの代替変数は、AWS SCT を使用して設定します。
Teradata マルチロードジョブスクリプトには代替変数が含まれている場合があります。たとえば、代替変数を含む 1 つのスクリプトを使用して、データをさまざまなデータベースにロードできます。
代替変数を使用して MultiLoad ジョブスクリプトを実行する前に、必ずすべての変数に値を割り当ててください。そのためには、Bash スクリプト、UC4 (Automic) など、他のツールやアプリケーションを使用できます。
AWS SCT は、値を割り当てた後にのみ代替変数を解決および変換できます。ソース Teradata MultiLoad ジョブスクリプトの変換を開始する前に、すべての代替変数に値を割り当てていることを確認してください。AWS SCT を使用して Teradata スクリプトで代替変数を設定できます。
MultiLoad ジョブスクリプトで代替変数を設定するには
ソース Teradata MultiLoad AWS SCT ジョブスクリプトをプロジェクトに追加するときに、[代替変数が使用される] を選択します。これらのスクリプトの追加についての詳細は、「MultiLoad ジョブスクリプトを AWS SCT プロジェクトに追加する」をご参照ください。
[変数フォーマットの定義] には、スクリプト内のすべての代替変数と一致する正規表現を入力します。
たとえば、代替変数の名前が
${で始まり、}で終わる場合は、\$\{\w+\}正規表現を使用します。ドル記号またはパーセント記号で始まる代替変数を照合するには、\$\w+|\%\w+正規表現を使用します。AWS SCT の正規表現は、Java の正規表現の構文に準拠しています。詳細については、Java ドキュメントの「java.util.regex クラスパターン
」を参照してください。 [OK] を選択してスクリプトを AWS SCT プロジェクトにロードし、[OK] を選択して [スクリプトのロード] ウィンドウを閉じます。
[変数] を選択すると、検出されたすべての代替変数とその値が表示されます。
[値] には、代替変数の値を入力します。
AWS SCT を使用した Teradata マルチロードジョブスクリプトの変換
以下では、AWS SCT を使用して Teradata マルチロードジョブを Amazon Redshift RSQL に変換する方法について説明します。
Teradata MultiLoad ジョブスクリプトを Amazon Redshift RSQL に変換するには
MultiLoad ジョブスクリプトを AWS SCT プロジェクトに追加します。詳細については、「MultiLoad ジョブスクリプトを AWS SCT プロジェクトに追加する」を参照してください。
代替変数を設定し、その値を入力します。詳細については、「MultiLoad ジョブスクリプトでの代替変数の設定」を参照してください。
左側のパネルで、[スクリプト] ノードを展開します。
次のいずれかを行います:
-
1 つの MultiLoad ジョブスクリプトを変換するには、[MultiLoad] ノードを展開し、変換するスクリプトを選択して、コンテキスト (右クリック) メニューから [スクリプトの変換] を選択します。
-
複数のスクリプトを変換するには、変換するスクリプトをすべて選択してください。[MultiLoad] を選択し、コンテキスト (右クリック) メニューを開いてから、[スクリプトの変換] を選択します。
-
-
次のいずれかを行います:
-
Amazon S3 にソースデータファイルを保存する場合は、[ソースデータファイルの場所] に [S3 オブジェクトパス] を選択します。
ソースデータファイルのマニフェストファイル用の Amazon S3 バケットフォルダと Amazon S3 バケットを入力します。
-
Amazon S3 にソースデータファイルを保存しない場合は、[ソースデータファイルの場所] に [ホストアドレス] を選択します。
ホストの URL または IP アドレス、ホストユーザーのログイン名、およびソースデータファイルのマニフェストファイルの Amazon S3 バケットを入力します。
-
-
[OK] を選択してください。
AWS SCT は、選択したすべての Teradata MultiLoad ジョブスクリプトを Amazon Redshift RSQL と互換性のある形式に変換します。変換されたスクリプトは、ターゲットデータベースパネルの [スクリプト] ノードにあります。
変換した Amazon Redshift RSQL スクリプトを編集するか、保存してください。詳細については、「変換された MultiLoad ジョブスクリプトの編集と保存」を参照してください。
AWS SCT での Teradata MultiLoad ジョブスクリプトの管理
複数の Teradata MultiLoad ジョブスクリプトを追加したり、MultiLoad ジョブスクリプトを AWS SCT プロジェクトから削除したりできます。
新しい MultiLoad ジョブスクリプトを AWS SCT プロジェクトに追加するには
左パネルの [スクリプト] ノードを展開します。
[MultiLoad] ノードを選択し、コンテキスト (右クリック) メニューを開きます。
[スクリプトのロード] を選択します。
新しい MultiLoad ジョブスクリプトを追加し、代替変数を設定するのに必要な情報を入力します。詳細については、「MultiLoad ジョブスクリプトを AWS SCT プロジェクトに追加する」および「MultiLoad ジョブスクリプトでの代替変数の設定」を参照してください。
MultiLoad ジョブスクリプトを AWS SCT プロジェクトから削除するには
左側のパネルの [スクリプト] にある [MultiLoad] ノードを展開します。
削除するスクリプトを選択して、コンテキスト (右クリック) メニューを開きます。
[スクリプトを削除] を選択します。
AWS SCT を使用して Teradata MultiLoad ジョブスクリプト変換用の評価レポートを作成します。
MultiLoad ジョブスクリプト変換評価レポートには、MultiLoad コマンドと SQL ステートメントの変換に関する情報が記載されています。この変換は、ソーススクリプトから Amazon Redshift の RSQL コマンドと Amazon Redshift の SQL ステートメントに変換されます。評価レポートには、MultiLoad コマンドのアクション項目と、AWS SCT で変換できない SQL ステートメントが含まれます。
Teradata MultiLoad ジョブのスクリプト変換評価レポートを作成するには
左側のパネルの [スクリプト] にある [MultiLoad] ノードを展開します。
評価レポートの作成対象のスクリプトを選択し、コンテキスト (右クリック) メニューを開いてから、[レポートの作成] を選択します。
-
[概要] タブを表示します。[概要] タブには、MultiLoad ジョブスクリプト評価レポートからのエグゼクティブサマリー情報が表示されます。これには、ソーススクリプトからのすべての MultiLoad コマンドと SQL ステートメントの変換結果が含まれます。
-
(オプション) MultiLoad ジョブスクリプト変換評価レポートのローカルコピーを PDF ファイルまたはカンマ区切り値 (CSV) のどちらかとして保存します。
-
MultiLoad ジョブスクリプト変換評価レポートを PDF ファイルとして保存するには、右上の [PDF に保存] を選択します。
PDF ファイルには、スクリプト変換に関するエグゼクティブサマリー、アクション項目、推奨事項が含まれています。
-
MultiLoad ジョブスクリプト変換評価レポートを CSV ファイルとして保存するには、右上の [CSV に保存] を選択します。
AWS SCT は 2 つの CSV ファイルを作成します。これらのファイルには、エグゼクティブサマリー、アクション項目、推奨アクション、およびスクリプトの変換に必要な推定手作業の複雑さが含まれます。
-
-
[アクション項目] タブを選択します。このタブには、Amazon Redshift RSQL への手動変換が必要な項目のリストが含まれます。リストからアクション項目を選択すると、アクション項目が適用されるソース MultiLoad ジョブスクリプトが AWS SCT によって強調表示されます。
AWS SCT で変換された Teradata MultiLoad ジョブスクリプトの編集と保存
変換したスクリプトは AWS SCT プロジェクトの下部パネルで編集できます。AWS SCT は、プロジェクトの一部として編集されたスクリプトを保存します。
変換されたスクリプトを保存するには
-
ターゲットデータベースパネルの [スクリプト] にある [RSQL スクリプト] ノードを展開します。
-
変換された、コンテキスト (右クリック) メニューを開いて、[スクリプトの保存] を選択します。
-
変換したスクリプトを保存するフォルダへのパスを入力し、[保存] を選択します。
AWS SCT は変換したスクリプトをファイルに保存し、このファイルを開きます。