マッピングのAmazon Redshift V2オブジェクト マッピングを作成するときに、ソースまたはターゲットのトランスフォーメーションをAmazon Redshift V2オブジェクトを表すように設定できます。さらに、マッピングおよびマッピングタスクのルックアップを設定できます。
マッピングでAmazon Redshift V2オブジェクトを設定する場合は、次のルールとガイドラインを考慮してください。
• マッピングで簡易フィルタを使用する場合は、YYYY-MM-DD HH24:MI:SS.MS 形式でフィルタ条件を指定する必要があります。詳細フィルタを使用する場合は、date_time_fix.f_timestamp < to_date('2012-05-24 09:13:57','YYYY-MM-DD HH24:MI:SS.MS') 形式でフィルタ条件を指定する必要があります。• ソースまたはターゲットのクエリを定義し、テーブル名またはカラム名に特殊文字が含まれている場合は、テーブル名またはカラム名を二重引用符で囲む必要があります。• ソースカラム名の特殊文字をターゲットに書き込むには、マッピングでターゲットトランスフォーメーションを設定して、実行時に新しいターゲットを作成します。[実行時に新規作成] ウィンドウで[ソースフィールド名をターゲットでそのまま使用] プロパティを有効にします。既存のオブジェクトを選択した場合、このチェックボックスは表示されません。この機能は、詳細モードのマッピングには適用されません。 • Amazon Redshiftテーブルまたはスキーマ名にスラッシュ(/)が含まれている場合、マッピングは失敗します。 • Booleanデータ型を含むAmazon Redshift V2オブジェクトを選択してデータをプレビューすると、Booleanデータ型の値が切り詰められて最初の文字のみが表示されます。• フィールドに日付または日時のデータ型が含まれている場合、[データプレビュー] タブには、+4時間のオフセットでフィールド値が表示されます。• 詳細モードのマッピングを使用してデータを読み書きする場合、ソーステーブル名にUnicode文字または特殊文字を含めることはできません。マッピングのAmazon Redshift V2ソース マッピングでは、ソースのトランスフォーメーションをAmazon Redshift V2ソースを表すように設定できます。
以下の表に、ソーストランスフォーメーションで設定できるAmazon Redshift V2ソースプロパティを示します。
プロパティ
説明
接続
ソース接続の名前。ソース接続を選択するか、[新しいパラメータ] をクリックしてソース接続に新しいパラメータを定義します。
ソースタイプ
ソースオブジェクトのタイプ。
次のソースオブジェクトのいずれかを選択します。
- 単一オブジェクト- 複数のオブジェクト。複数のオブジェクトとの暗黙の結合および詳細リレーションを使用できます。- クエリ。ソースタイプにクエリを選択する場合は、[フィールドマッピング] タブのクエリで選択したすべてのフィールドをマップする必要があります。- パラメータ注: マッピングのパラメータファイルを使用して、ランタイム時にソースクエリオブジェクトと複数のオブジェクトを上書きすることはできません。
ソースタイプにクエリを選択した場合、ブール値はターゲットに0またはfalseとして書き込まれます。
クエリを指定する場合は、末尾にセミコロン(;)を使用しないようにしてください。
オブジェクト
ソースオブジェクトの名前。
単一または複数のソースオブジェクトを選択できます。
パラメータ
ソースオブジェクトに既存のパラメータを選択するか、[新しいパラメータ] をクリックしてソースオブジェクトに新しいパラメータを定義します。パラメータをソースタイプとして選択する場合にのみ、パラメータ プロパティが表示されます。ランタイム時にパラメータを上書きする場合、[パラメータを上書き] オプションを選択します。
フィルタ
フィルタ条件に基づいてレコードをフィルタリングします。
簡易フィルタまたは詳細フィルタを指定できます。
ソート
指定した条件に基づいてレコードをソートします。以下のソート条件を指定できます。
- パラメータを使用しません。使用するフィールドとソートのタイプを選択します。- パラメータを使用します。ソートオプションを指定するには、パラメータを使用します。
以下の表に、ソーストランスフォーメーションで設定できるAmazon Redshift V2の詳細ソースプロパティを示します。
プロパティ
説明
読み込みモード
Amazon Redshiftソースからデータを読み取るための読み取りモードを指定します。
次のいずれかの読み取りモードを選択できます。
- 直接1 。Amazon S3にデータをステージングせずに、Amazon Redshiftソースからデータを直接読み取ります。- ステージング。データをS3バケットにステージングすることで、Amazon Redshiftソースからデータを読み取ります。デフォルトはステージングです。
取得サイズ1
1回の結果セットの読み取りでAmazon Redshiftから取得する行数を指定します。[直接] 読み取りモードを選択した場合にのみ適用されます。
デフォルトは10000です。
注: 取得サイズを0と指定した場合、または取得サイズを指定しない場合、データセット全体がバッチではなく同時に直接読み取られます。
S3バケット名*
データのステージングに使用するAmazon S3バケットの名前。
バケット名をフォルダパスで指定することもできます。Amazon Redshiftクラスタと異なる領域にあるAmazon S3バケット名を指定する場合、UnloadコマンドオプションにREGION 属性を設定する必要があります。
圧縮を有効にする*
Amazon S3ステージングディレクトリのステージングファイルを圧縮します。
Secure Agentがステージングファイルを圧縮すると、タスクのパフォーマンスが向上します。デフォルトではオンに設定されています。
ステージングディレクトリの場所1 *
ローカルステージングディレクトリの場所。
Secure Agentランタイム環境でタスクを実行する場合は、ランタイム環境内の対応するSecure Agentマシンで利用できるディレクトリパスを指定します。
次の形式でディレクトリパスを指定します: <staging directory>
例えば、C:\Temp です。このディレクトリに対する書き込み権限があることを確認してください。
Unloadオプション*
Unloadコマンドのオプション。
Unloadコマンドにオプションを追加します。このコマンドは、Amazon Redshiftからデータを抽出し、Amazon S3でステージングファイルを作成します。Amazon RedshiftロールのAmazonリソース名(ARN)を指定します。
次のオプションを追加できます。
- DELIMITER- ESCAPE- PARALLEL- NULL1 - AWS_IAM_ROLE- REGION- ADDQUOTES例: DELIMITER = \036;ESCAPE = OFF;NULL=text;PARALLEL = ON;AWS_IAM_ROLE=arn;aws;iam;;<account ID>;role/<role-name>;REGION = ap-south-1
Secure Agentをホストするマシン上のディレクトリを指定します。
注: Unloadコマンドに手動でオプションを追加しない場合、Secure Agentはデフォルト値を使用します。
NULL値をNULLとして扱う*
Amazon Redshiftからデータを読み取る際にNULL値を保持します。
暗号化タイプ*
Amazon S3ステージングディレクトリのデータを暗号化します。
以下の暗号化タイプを選択できます。
- なし- SSE-S3- SSE-KMS- CSE-SMK1 デフォルトはNoneです。
S3ファイルの分割ダウンロード1 *
大きなAmazon S3オブジェクトを複数パーツに分けてダウンロードします。
Amazon S3オブジェクトのファイルサイズが8 MBを超えるときは、オブジェクトを複数パーツに分けて同時にダウンロードできます。
デフォルトは5MBです。
マルチパートダウンロードしきい値サイズ1 *
Amazon S3オブジェクトを複数のパートに分けてダウンロードするための最大しきい値サイズ。
デフォルトは5 MBです。
スキーマ名
デフォルトのスキーマ名をオーバーライドします。
注: スキーマ名を使用する場合、カスタムクエリを設定することはできません。
ソーステーブル名
デフォルトのソーステーブル名をオーバーライドします。
オーバーライドテーブルのメタデータとカラムの順序が、設計時にインポートされたソーステーブルのものと一致していることを確認します。
注: ソースタイプに[複数のオブジェクト] または[クエリ] を選択した場合、[ソーステーブル名] オプションは使用できません。
Pre-SQL
Amazon Redshiftからデータを読み取る前にクエリを実行するためのPre-SQLコマンド。UNLOADコマンドまたはCOPYコマンドを使用することもできます。ここで指定するコマンドは、プレーンテキストとして処理されます。
Post-SQL
Amazon Redshiftにデータを書き込んだ後にクエリを実行するためのPost-SQLコマンド。UNLOADコマンドまたはCOPYコマンドを使用することもできます。ここで指定するコマンドは、プレーンテキストとして処理されます。
個別選択
一意の値を選択します。
このオプションを選択すると、Secure AgentにSELECT DISTINCT 文が含まれます。Amazon Redshiftは末尾のスペースを無視します。したがって、予期されるより少ない行がSecure Agentで抽出される可能性があります。
注: ソースタイプをクエリとして選択した場合や、[SQLクエリ] プロパティを使用して[個別選択] オプションを選択した場合、Secure Agentは[個別選択] オプションを無視します。
SQLクエリ
デフォルトのSQLクエリをオーバーライドします。
カラム名を二重引用符で囲みます。SQLクエリでは大文字と小文字が区別されます。Amazon RedshiftデータベースでサポートされているSQL文を指定します。
SQLクエリでカラムを指定するときに、クエリのカラム名がマッピングのソースカラム名と一致するようにします。
一時的な資格情報の期間
IAMユーザーが動的に生成された一時的な資格情報を使用してAWSリソースにアクセスできる期間。期間を秒単位で入力します。
デフォルトは900秒です。
900秒以上が必要な場合、AWSコンソールで期間を最大12時間まで設定できます。設定した後で、同じ期間をこのプロパティに入力してください。
トレースレベル
詳細トレースレベルを使用して、ソーストランスフォーメーションのログに表示される情報の詳細度を取得します。
1 詳細モードのマッピングには適用されません。
* 直接読み取りモードには適用されません。
データの読み込みを行う場合のルールおよびガイドライン 読み取り操作については、いくつかのルールとガイドラインに従う必要があります。
直接読み取りモード Amazon Redshiftソースから直接読み取りを行う場合は、次のルールとガイドラインを考慮してください。
• 直接読み取りモードでターゲットに書き込まれるデータの順序は、Amazon S3ステージング後に書き込まれるデータの順序とは異なります。 • 精度の値は、realデータ型の場合は6桁の精度に四捨五入され、doubleデータ型の場合は14桁の精度に四捨五入されます。 • charおよびvarcharデータ型のNULL値は、引用符なしでターゲットに書き込まれます。 • Charデータ型カラムの末尾のスペースは、ターゲットの末尾のスペースとともに表示されます。これに対して、ステージングモードでソースを設定すると、末尾のスペースが切り詰められます。 IS NULLまたはIS NOT NULL演算子を使用したフィルタ IS NULLまたはIS NOT NULL演算子を含む簡易フィルタ条件を詳細フィルタに変換すると、これらの演算子はSQL関数に変換され、結果のクエリは失敗します。これらの演算子を使用するときにこの問題を回避するには、詳細フィルタ条件でAmazon Redshift互換の構文を使用する必要があります。
SQLクエリの設定のルールおよびガイドライン SQLクエリを設定するときは、次のルールおよびガイドラインを考慮してください。
• ソースタイプにクエリを選択する場合は、JVMオプションにフラグprecedenceToSQLOverrideOverCustomQuery=True を設定することで、SQLクエリをオーバーライドしてカスタムクエリより優先することができます。オーバーライドされたSQLクエリのカラム数がカスタムクエリと同じであることを確認してください。 • 詳細モードでマッピングを実行し、alldatatypesを使用してSQLクエリを定義すると、Booleanデータ型のターゲットカラムがNULLとして表示されます。 • 詳細モードのマッピングでSQLクエリの個々のカラム(ただし、すべてのカラムではない)を選択すると、値がNULLとしてRedshiftターゲットに書き込まれます。 • マッピングでパラメータ化されたクエリソースタイプを使用して複数のテーブルから読み取る場合、同じカラム名を持つ1つ以上のテーブルに対して結合を設定すると、マッピングは失敗します。例えば、SALES.PUBLICスキーマの一部である2つのテーブル、EMPLOYEEとDEPARTMENTの間の完全な外部結合を含む次のSQLクエリを見てみます。2つのカラムは同じCITYという名前です。
SELECT EMP_ID, NAME, CITY, DEPT_ID, DEPT_NAME, CITY FROM SALES.PUBLIC.EMPLOYEE FULL OUTER JOIN SALES.PUBLIC.DEPARTMENT ON EMP_ID = DEPT_ID
競合するカラム名を区別するには、テーブルを結合するときにデータベースが参照できるエイリアスを追加します。
SELECT e.EMP_ID, e.NAME, e.CITY as ecity,d.DEPT_ID, d.DEPT_NAME, d.CITY as dcity FROM SALES.PUBLIC.EMPLOYEE e FULL OUTER JOIN SALES.PUBLIC.DEPARTMENT d ON e.EMP_ID = d.DEPT_ID
複数のソースオブジェクトの追加 ソーストランスフォーメーションを作成するときに、ソースタイプとして複数のAmazon Redshift V2オブジェクトを選択してから、結合を設定してテーブルを結合できます。リレーション条件またはクエリを定義して、テーブルを結合できます。
1 ソーストランスフォーメーションで、 [ソースタイプ] を [複数のオブジェクト] としてクリックします。
2 [アクション] メニューから、 [ソースオブジェクトの追加] をクリックします。
3 表示されたリストから、追加するソースオブジェクトを選択します。
4 [OK] をクリックします。
5 [関連オブジェクトのアクション] メニューから、 [詳細リレーション] を選択します。 6 [詳細リレーション] ウィンドウで、 [オブジェクトの追加] をクリックしてさらにオブジェクトを追加できます。
7 [OK] をクリックします。
8 独自の条件を設定するか、クエリを指定して、テーブル間のリレーションを定義します。
注: 結合式を設定するときは、フィールドを選択して、結合条件またはクエリ構文を定義します。
9 [OK] をクリックします。
次の図は、Amazon Redshift V2テーブル間に定義された詳細結合条件の例を示しています。
複数のソースオブジェクトの追加のルールおよびガイドライン 複数のソースオブジェクトを追加するときは、次のルールとガイドラインを考慮してください。
• 詳細リレーションオプションを使用する場合、パーティション化を設定することはできません。• テーブル名とカラム名に予約語を使用する場合、テーブル名を二重引用符で囲む必要があります。• 複数のソースオブジェクトを追加する場合、自己結合を使用することはできません。• 詳細リレーションのカラム名に特殊文字を使用すると、クエリが正しく形成されず、マッピングタスクが失敗します。• [詳細リレーション] ウィンドウで[オブジェクトの追加] をクリックしてオブジェクトをさらに追加すると、テーブルがロードされないか、ロードに時間がかかる場合があります。その後で、オブジェクトをもう一度インポートしてください。• 関連するソースオブジェクトを追加するときにスキーマを検索することはできません。下にスクロールして、スキーマを手動で選択する必要があります。• 完全外部結合条件は、= 、, 、およびAND 演算子でのみ使用できます。• 詳細リレーションオプションを使用し、スキーマ名のオーバーライドを使用して結合クエリを指定すると、マッピングは失敗します。マッピングが失敗して、次の結合クエリが表示されます。- インナージョイン- 左外部結合- 右外部結合- 完全外部結合- クロス結合• スキーマ名を上書きして、関連するソースオブジェクトに詳細フィルタを設定する場合は、フィルタ条件でスキーマ名を指定する必要があります。フィルタ条件には、次の構文を使用します。public.alldatatypes_src.f_smallint=1
• スキーマ名をオーバーライドして、関連するソースオブジェクトに詳細フィルタを設定すると、Secure Agentは、関連するソースオブジェクトではなく、親オブジェクトにのみ詳細フィルタを適用します。 • プライマリキーと外部キーのリレーションを持つ親オブジェクトと子オブジェクトを選択し、関連オブジェクトの外部キーがテーブルのプライマリキーでもある場合、ターゲットの作成時にマッピングタスクが失敗します。• [複数のオブジェクト] ソースタイプを選択し、emp などのソースオブジェクトを追加し、emp.id とdept.d_id などの異なるカラムでプライマリキーと外部キーのリレーションを定義すると、マッピングが失敗して、次のエラーが表示されます。[FATAL] Unload/Copy command failed with error: Invalid operation: column emp.d_id does not exist.
[関連オブジェクトの選択] リストには、emp テーブルにd_id カラムがない場合でもdept 関連オブジェクトの結合条件がemp.d_id=dept.d_id として表示されます。
• [複数のオブジェクト] ソースタイプを選択する場合は、選択したテーブル名にピリオド(.)が含まれていないことを確認してください。 マッピングでのAmazon Redshift V2ターゲット データをAmazon Redshiftに書き込むには、マッピングでAmazon Redshift V2オブジェクトをターゲットとして設定します。
ソースパーティションを有効にした場合、Secure Agentはパススルーパーティション化を使用してAmazon Redshiftにデータを書き込み、実行時のマッピングのパフォーマンスを最適化します。Amazon Redshift V2ターゲットの名前と説明を指定します。ターゲットオブジェクトのターゲットプロパティと詳細プロパティを設定します。
以下の表に、ターゲットトランスフォーメーションで設定できるターゲットプロパティを示します。
プロパティ
説明
接続
ターゲット接続の名前。ターゲット接続を選択するか、[新しいパラメータ] をクリックしてターゲット接続に新しいパラメータを定義します。
ターゲットタイプ
ターゲットオブジェクトのタイプ。
[単一オブジェクト]または[パラメータ]を選択します。
オブジェクト
ターゲットオブジェクトの名前。
実行時に、既存のターゲットオブジェクトを使用するか、新しいターゲットオブジェクトを作成するかを選択できます。実行時に新しいターゲットを作成するには、[実行時に新規作成]オプションを選択します
新しいターゲットを、指定したテーブルタイプとパスに基づいて実行時に作成します。
オブジェクト名、テーブルタイプ、およびパスを指定して、実行時に新しいオブジェクトを作成します。
実行時に新規作成
[実行時に新規作成]オプションに適用されます。
ソースと同じフィールド名で実行時にターゲットオブジェクトを作成できるかどうかを指定します。
ソースフィールド名をターゲットでそのまま使用
[実行時に新規作成]オプションに適用されます。このオプションは、既存のターゲットには表示されません。
すべてのソースフィールド名(特殊文字を含む)をソースとまったく同じようにターゲットに保持する場合に選択します。このオプションを無効にすると、ソースの特殊文字は、ターゲットでアンダースコア文字に置換されます。
デフォルトでは無効になっています。
パラメータ
ターゲットオブジェクトの既存のパラメータを選択するか、[新しいパラメータ] をクリックしてターゲットオブジェクトの新しいパラメータを定義します。
ターゲットタイプとして[パラメータ]を選択する場合にのみ[パラメータ] プロパティが表示されます。ランタイム時にパラメータを上書きする場合、[パラメータを上書き] オプションを選択します。
操作
ターゲット操作のタイプ。
次のいずれかの操作を選択します。
- Insert- Update- Upsert- Delete- Data DrivenCDCソースから変更データをキャプチャするマッピングを作成する場合は[Data Driven] を選択します。
データ依存条件
行に挿入、更新、削除、または拒否操作のフラグを設定する式を定義できます。
非CDCソースに対するデータ依存条件を指定する必要があります。CDCソースに対しては、CDCソーステーブルの行がすでに操作タイプでマークされているため、このフィールドは空白のままにしておく必要があります。
注: 操作タイプとして[Data Driven] を選択した場合にのみ表示されます。
更新カラム
ターゲットでUpdate、Upsert、Deleteの各操作を実行するための論理プライマリキーとして使用するカラムを選択します。
注: ターゲットテーブルにすでにプライマリキーが含まれている場合は必要ありません。
ターゲットの作成
新しいターゲットを作成します
新しいターゲットを作成するときに、次のフィールドの値を入力します。
- 名前 : ターゲットオブジェクトの名前を入力してください。- パス : スキーマ名を指定して、スキーマ内にターゲットテーブルを作成します。デフォルトでは、このフィールドは空です。
注: [ソースフィールド名をターゲットでそのまま使用] チェックボックスとData Driven 操作は、詳細モードのマッピングには適用されません。
次の表に、Amazon Redshift V2の詳細なターゲットプロパティを示します。
プロパティ
説明
S3バケット名
ファイルをAmazon Redshiftターゲットに書き込むAmazon S3バケットの名前。
バケット名をフォルダパスで指定することもできます。Amazon Redshiftクラスタと異なる領域にあるAmazon S3バケット名を指定する場合、CopyコマンドオプションにREGION 属性を設定する必要があります。
圧縮を有効にする
ステージングファイルをAmazon Redshiftに書き込む前に圧縮します。
Secure Agentがステージングファイルを圧縮すると、タスクのパフォーマンスが向上します。デフォルトではオンに設定されています。
ステージングディレクトリの場所
ローカルステージングディレクトリの場所。
Secure Agentランタイム環境でタスクを実行する場合は、ランタイム環境内の対応するSecure Agentマシンで利用できるディレクトリパスを指定します。
次の形式でディレクトリパスを指定します: <staging directory>
例えば、C:\Temp です。このディレクトリに対する書き込み権限があることを確認してください。
バッチサイズ
バッチ内の最小行数。
0より大きい値を入力します。デフォルトは2000000です。
INSERT用のアップロードバッチごとの最大エラー数
INSERT用のアップロードバッチが失敗になるエラー行の数。
正の整数値を入力します。デフォルトは1です。
エラー数がプロパティ値以上になると、Secure Agentはバッチ全体をエラーファイルに書き込みます。
データロード前にターゲットテーブルをトランケート
新しいデータをロードする前にAmazon Redshiftのターゲットテーブルにある既存データをすべて削除します。
CharおよびVarcharにNull値が必要
データ型がCharおよびVarcharのAmazon Redshiftのカラムにデータを書き込む際に文字列値をNULLに置換します。
デフォルトは空の文字列です。
注: データ型がInt、Bigint、numeric、real、またはdoubleの1つのカラムのみを含むテーブルにNULL値を書き込むマッピングを実行すると、マッピングが失敗します。この場合は、[CharおよびVarcharにNull値が必要] プロパティにデフォルト値以外の値を指定する必要があります。
S3のファイル整合性のためのWaitTime(秒)
Secure AgentがステージングファイルとAmazon S3で利用可能なファイルのリストを一致させるまで待機する時間(秒数)。
デフォルトは0です。
コピーオプション
Copyコマンドのオプション。
デフォルトの区切り文字カンマ(,)または二重引用符(")がデータで使用されている場合に、Amazon S3からAmazon Redshiftターゲットにデータを書き込むためのCopyコマンドにオプションを追加します。Amazon RedshiftロールのAmazonリソース名(ARN)を指定します。
次のオプションを追加できます。
- DELIMITER- ACCEPTINVCHARS- QUOTE- COMPUPDATE- AWS_IAM_ROLE- REGION以下に例を示します。
DELIMITER = \036;ACCEPTINVCHARS = #;QUOTE = \037 COMPUPDATE = ON;AWS_IAM_ROLE=arn:aws:iam::<account ID>:role/<role-name>;REGION = ap-south-1
Secure Agentをホストするマシン上のディレクトリを指定します。
注: Copyコマンドに手動でオプションを追加しない場合、Secure Agentはデフォルト値を使用します。
S3サーバー側の暗号化
Amazon S3がアップロード時にデータを暗号化することを示します。
このプロパティを有効にするには、接続プロパティで顧客マスタキーIDを指定します。デフォルトでは選択されていません。
S3クライアント側の暗号化
Secure Agentがプライベートキーを使用してデータを暗号化することを示します。
このプロパティを有効にするには、接続プロパティでマスタ対称キーIDを指定します。サーバーサイドおよびクライアントサイドの両方の暗号化を有効にすると、サーバーサイド暗号化は無視されます。
ターゲットテーブルの分析
ターゲットテーブルでANALYZEコマンドを実行します。
Amazon Redshiftのクエリプランナーは、統計メタデータを更新して、クエリ効率の向上に最適な計画を作成して選択します。
ターゲットテーブルのクリーンアップ
ディスク領域を回復し、指定したテーブルまたはデータベース内のすべてのテーブルの行をソートします。
次のリカバリオプションを選択できます。
- なし- フル- ソートのみ- 削除のみ- 再インデックスデフォルトは[なし]です。
S3でステージングファイルを保持するプレフィックス
Amazon S3でステージングファイルを保持します。
Amazon S3 でステージングファイルを保持するには、ディレクトリプレフィックスとファイルプレフィックスの両方をスラッシュ(/)で区切って指定するか、ファイルプレフィックスのみを指定します。例えば、backup_dir/backup_file やbackup_file です。
成功ファイルディレクトリ
Amazon Redshiftの成功ファイルのディレクトリ。
Secure Agentをホストするマシン上のディレクトリを指定します。
エラーファイルのディレクトリ
Amazon Redshiftのエラーファイルのディレクトリ。
Secure Agentをホストするマシン上のディレクトリを指定します。
ソース行の扱い
デフォルトのターゲット操作をオーバーライドします。
デフォルトは[INSERT] です。
次のいずれかのオーバーライドオプションを選択します。
なし デフォルトでは、なしが有効になっています。Secure Agentは、[操作] ターゲットプロパティで選択されたタスク操作と見なします。 INSERT 挿入操作を実行します。このオプションが有効になっている場合、Secure Agentは、挿入のフラグが設定された行をすべて挿入します。このオプションが無効になっている場合、Secure Agentは、挿入のフラグが設定された行を拒否します。 DELETE 削除操作を実行します。このオプションが有効になっている場合、Secure Agentは、削除のフラグが設定された行をすべて削除します。このオプションが無効になっている場合、Secure Agentは、削除のフラグが設定されたすべての行を拒否します。 UPDATEとUPSERT 更新操作と更新/挿入操作を実行します。更新操作を実行するには、プライマリキー列と、プライマリキー列以外の列を1つ以上マップする必要があります。次のデータオブジェクトの操作属性を選択できます。 Amazon Redshift V2コネクタは、アップグレードストラテジトランスフォーメーションでの更新/挿入操作をサポートしていません。アップデートストラテジトランスフォーメーションを使用してAmazon Redshiftターゲットにデータを書き込むには、[ソース行の扱い] を[なし] として選択する必要があります。
デフォルトでは、Secure Agentは[操作] ターゲットプロパティに指定された値に基づいてタスク操作を実行します。ただし、[ソース行の扱い] プロパティでオプションを指定した場合、Secure Agentは[操作] ターゲットプロパティまたはアップデートストラテジトランスフォーメーションで指定された値を無視します。
ターゲットクエリのオーバーライド
Secure Agentが更新操作用に生成するデフォルトの更新クエリを、指定した更新クエリでオーバーライドします。
TransferManagerスレッドプールサイズ
データを並行して書き込むスレッドの数。
デフォルトは10です。
Pre-SQL
Amazon Redshiftからデータを読み取る前にクエリを実行するためのPre-SQLコマンド。UNLOADコマンドまたはCOPYコマンドを使用することもできます。ここで指定するコマンドは、プレーンテキストとして処理されます。
Post-SQL
Amazon Redshiftにデータを書き込んだ後にクエリを実行するためのPost-SQLコマンド。UNLOADコマンドまたはCOPYコマンドを使用することもできます。ここで指定するコマンドは、プレーンテキストとして処理されます。
書き込み時にレコードの順序を維持
CDCソースからデータを読み取ってAmazon Redshiftターゲットに書き込む際にレコードの順序を維持します。
このプロパティは、CDCソースから変更レコードをキャプチャするマッピングを作成する場合に使用します。このプロパティを使用すると、CDCソースとターゲットの不整合を防止できます。
最小アップロードパートサイズ
オブジェクトをアップロードするためのAmazon Redshiftオブジェクトの最小サイズ。
デフォルトは5 MBです。
バッチごとのファイル数
バッチごとの一時ファイルの数を計算します。
ファイルの数を指定しない場合は、Amazon Redshift V2コネクタにより一時ファイルの数が計算されます。
スキーマ名
デフォルトのスキーマ名をオーバーライドします。
ターゲットテーブル名
デフォルトのターゲットテーブル名を上書きします。
オーバーライドテーブルのメタデータとカラムの順序が、設計時に選択されたターゲットテーブルのものと一致していることを確認します。
リカバリスキーマ名
ターゲットシステムのinfa_recovery_table テーブルに格納されているリカバリ情報を含むスキーマ。この情報は、変更データの抽出を前回のチェックポイントから再開するために使用されます。
一時的な資格情報の期間
IAMユーザーが動的に生成された一時的な資格情報を使用してAWSリソースにアクセスできる期間。期間を秒単位で入力します。
デフォルトは900秒です。
900秒以上が必要な場合、AWSコンソールで期間を最大12時間まで設定できます。設定した後で、同じ期間をこのプロパティに入力してください。
拒否された行の転送
このプロパティはAmazon Redshift V2コネクタに適用できません。
次のプロパティは、詳細モードのマッピングには適用されません。
• ステージングディレクトリの場所• バッチサイズ• S3のファイル整合性のためのWaitTime(秒)• S3クライアント側の暗号化• 成功ファイルディレクトリ• エラーファイルのディレクトリ• TransferManagerスレッドプールサイズ• 書き込み時にレコードの順序を維持• 最小アップロードパートサイズ• バッチごとのファイル数• リカバリスキーマ名ターゲットの作成に関するルールとガイドライン Secure Agentは、[ターゲットの作成] フィールドで指定されたターゲットテーブル名を小文字に変換します。
ターゲットを作成する際には、[ターゲットフィールド] タブでターゲットオブジェクトのメタデータを表示および編集できます。ターゲットオブジェクトのカラムのデータ型や精度を編集したり、プライマリキーを定義したりできます。メタデータを編集するには、[ターゲットフィールド] タブで[オプション] > [メタデータの編集] をクリックします。
ターゲットを作成するときは、次のルールとガイドラインを考慮してください。
• ターゲットを作成する際に、ソーステーブルにTextデータ型のカラムが含まれていると、次のようなエラーメッセージが表示されます。Unsupported datatype - 'text' for column 'LONGTXTAREA__C'
この場合、ソーストランスフォーメーションでソースカラムのデータ型を編集する必要があります。
• ランタイム時にターゲットをパラメータ化することはできません。• ターゲットを作成して大文字または大文字と小文字が混在するアルファベットでテーブル名またはカラム名を指定すると、Secure Agentでターゲットのテーブル名またはカラム名が小文字のアルファベットに変換され、マッピングタスクが正常に実行されます。ただし、Tomcatログに次のエラーメッセージが表示されます。An unexpected exception occured while fetching metadata:[The following object is not found].
• Timeデータ型のターゲットを作成すると、新しいターゲットのデータ型はTimestampになります。 • 実行前SQLまたは実行後SQLクエリを使用してvaccuumコマンドでマッピングタスクを実行すると、マッピングは失敗します。 • ターゲットに書き込みを行い、ターゲット接続の[DBuserの自動作成] が有効になっている場合、既存のユーザーによって作成されたテーブルを新しいユーザーが切り詰めることはできません。ターゲットクエリをオーバーライドするためのルールとガイドライン ターゲットクエリのオーバーライドを指定して、Secure Agentが更新操作に対して生成する更新クエリをオーバーライドできます。
Amazon Redshiftターゲットにオーバーライドターゲットクエリプロパティを使用する場合は、次のルールとガイドラインを考慮してください。
• 詳細ターゲットプロパティの[ソース行の扱い] プロパティで[更新] を選択します。• 更新/挿入操作にオーバーライドターゲットクエリを使用することはできません。• オーバーライドターゲットクエリを次の形式で指定します。UPDATE <Target Schema Name here>.<Target TABLE NAME here> SET <column1> = {{TU}}.<column1>, <column2> = {{TU}}.<column2>, <column> = {{TU}}.<column> FROM {{TU}} WHERE <Target Schema Name>.<Target TABLE NAME here> .<update column1> = {{TU}}. <update column1> AND <Target Schema Name>.<Target TABLE NAME here> .<update column2> = {{TU}}. <update column2> AND … <Target Schema Name>.<Target TABLE NAME here> .<update column> = {{TU}}. <update column>
• :TUのカラム名はターゲットテーブルのカラム名と一致している必要があります。• WHERE カラムはこのクエリで必須です。• オーバーライドターゲットクエリステートメントのFROM カラムで、左、右、または完全外部結合を使用することはできません。• クエリ内のすべてのカラム名は修飾名である必要があり、テーブル名とスキーマ名はカラム名に関連付けられている必要があります。注: SET カラムの場合、Amazon Redshiftではテーブルを含むカラム名を使用できません。SETカラムにはカラム名のみを含める必要があります。
• Amazon Redshift V2コネクタは、:TUを一時テーブル名に置き換え、更新クエリを検証しないため、有効なSQL構文でオーバーライドターゲットクエリを指定する必要があります。• オーバーライドターゲットクエリを使用して、カラムのマッピングの順序を変更することはできません。• 更新操作に複数のオーバーライドターゲットクエリを指定することはできません。• オーバーライドターゲットクエリオプションを使用する場合は、[スキーマ名] フィールドと[ターゲットテーブル名] フィールドからスキーマ名とテーブル名のオーバーライドを追加で設定しないでください。マッピングのAmazon Redshift V2ルックアップ Amazon Redshift V2マッピングでオブジェクトのルックアップを作成できます。指定したルックアップ条件に基づいて、Amazon Redshift V2ルックアップオブジェクトからデータを取得できます。
Amazon Redshift V2ルックアップトランスフォーメーションを使用して、Amazon Redshiftオブジェクトのデータをルックアップします。例えば、顧客コードが格納されているソーステーブルに対して、ターゲットテーブルに顧客名が含まれるようにすると、要約データが読みやすくなります。Amazon Redshift V2ルックアップトランスフォーメーションを使用すると、別のAmazon Redshiftオブジェクト内にある顧客名をルックアップできます。
マッピングに、以下のルックアップを追加することができます。
• キャッシュされた状態での接続• キャッシュされていない状態での接続。マッピングのみに適用されます。• キャッシュされた状態での未接続• 動的ルックアップキャッシュ。マッピングのみに適用されます。接続プロパティで指定したJDBC URLを使用して、ルックアップを作成します。
以下の表に、ルックアップトランスフォーメーションで設定できるAmazon Redshift V2ルックアップオブジェクトのプロパティを示します。
プロパティ
説明
接続
ルックアップ接続の名前。
既存の接続の選択、新しい接続の作成、またはルックアップ接続プロパティのパラメータ値の定義ができます。
実行時にルックアップ接続プロパティを上書きする場合は、[実行時にパラメータのオーバーライドを許可する] オプションを選択します。
ソースタイプ
ソースオブジェクトのタイプ[単一オブジェクト]、[クエリ]、または[パラメータ]を選択します。
注: ソースタイプをクエリとして選択した場合、キャッシュされていないルックアップを設定することはできません。
パラメータ
値を定義するパラメータファイル。この値はタスクを編集せずに更新されます。
ルックアップオブジェクトに既存のパラメータを選択するか、[新しいパラメータ] をクリックしてルックアップオブジェクトに新しいパラメータを定義します。
パラメータをルックアップタイプとして選択する場合にのみ、パラメータ プロパティが表示されます。
実行時にパラメータを上書きする場合は、[実行時にパラメータのオーバーライドを許可する] オプションを選択します。
タスクが実行されると、Secure Agentは詳細セッションプロパティで指定されたファイルのこのパラメータを使用します。
ルックアップオブジェクト
マッピングのルックアップオブジェクトに名前を付けます。
複数一致
ルックアップ条件で複数の一致が返されるときの動作。すべての行、任意の行、最初の行、最後の行、またはエラーを返すようにすることができます。
ルックアップオブジェクトのプロパティで次のオプションから選択して、動作を決定します。
- 最初の行を返す- 最後の行を返す- 任意の行を返す- すべての行を返す- エラーを報告フィルタ
適用できません
ソート
適用できません
以下の表に、ルックアップトランスフォーメーションで設定できるAmazon Redshift V2の詳細ルックアッププロパティを示します。
プロパティ
説明
S3バケット名1
データのステージングに使用するAmazon S3バケットの名前。
バケット名をフォルダパスで指定することもできます。Amazon Redshiftクラスタと異なる領域にあるAmazon S3バケット名を指定する場合、UnloadコマンドオプションにREGION 属性を設定する必要があります。
圧縮を有効にする1
Amazon S3ステージングディレクトリのステージングファイルを圧縮します。
Secure Agentがステージングファイルを圧縮すると、タスクのパフォーマンスが向上します。デフォルトではオンに設定されています。
ステージングディレクトリの場所1
ローカルステージングディレクトリの場所。
Secure Agentランタイム環境でタスクを実行する場合は、ランタイム環境内の対応するSecure Agentマシンで利用できるディレクトリパスを指定します。
次の形式でディレクトリパスを指定します: <staging directory>
例えば、C:\Temp です。このディレクトリに対する書き込み権限があることを確認してください。
詳細モードのマッピングには適用されません。
Unloadオプション1
Unloadコマンドのオプション。
Unloadコマンドにオプションを追加します。このコマンドは、Amazon Redshiftからデータを抽出し、Amazon S3でステージングファイルを作成します。Amazon RedshiftロールのAmazonリソース名(ARN)を指定します。
次のオプションを追加できます。
- DELIMITER- ESCAPE- PARALLEL- NULL- AWS_IAM_ROLE- REGION- ADDQUOTES例: DELIMITER = \036;ESCAPE = OFF;NULL=text;PARALLEL = ON;AWS_IAM_ROLE=arn;aws;iam;;<account ID>;role/<role-name>;REGION = ap-south-1
詳細モードのマッピングでは、NULLオプションは使用できません。
Secure Agentをホストするマシン上のディレクトリを指定します。
注: Unloadコマンドに手動でオプションを追加しない場合、Secure Agentはデフォルト値を使用します。
NULL値をNULLとして扱う1
Amazon Redshiftからデータを読み取る際にNULL値を保持します。
暗号化タイプ1
Amazon S3ステージングディレクトリのデータを暗号化します。
以下の暗号化タイプを選択できます。
- なし- SSE-S3- SSE-KMS- CSE-SMK詳細モードで設定されたマッピングでは、SSE-S3 暗号化のみを使用できます。
デフォルトはNoneです。
S3ファイルの分割ダウンロード1
大きなAmazon S3オブジェクトを複数パーツに分けてダウンロードします。
Amazon S3オブジェクトのファイルサイズが8MBを超える場合は、オブジェクトを複数パーツに分けて同時にダウンロードできます。デフォルトは5MBです。
詳細モードのマッピングには適用されません。
マルチパートダウンロードしきい値サイズ1
Amazon S3オブジェクトを複数のパートに分けてダウンロードするための最大しきい値サイズ。
デフォルトは5 MBです。
詳細モードのマッピングには適用されません。
スキーマ名
デフォルトのスキーマ名をオーバーライドします。
注: スキーマ名を使用する場合、カスタムクエリを設定することはできません。
ソーステーブル名
デフォルトのソーステーブル名をオーバーライドします。
注: ソースタイプに[複数のオブジェクト] または[クエリ] を選択した場合、[ソーステーブル名] オプションは使用できません。
Pre-SQL
Amazon Redshiftからデータを読み取る前にクエリを実行するためのPre-SQLコマンド。UNLOADコマンドまたはCOPYコマンドを使用することもできます。ここで指定するコマンドは、プレーンテキストとして処理されます。
Post-SQL
Amazon Redshiftにデータを書き込んだ後にクエリを実行するためのPost-SQLコマンド。UNLOADコマンドまたはCOPYコマンドを使用することもできます。ここで指定するコマンドは、プレーンテキストとして処理されます。
個別選択1
一意の値を選択します。
このオプションを選択すると、Secure AgentにSELECT DISTINCT 文が含まれます。Amazon Redshiftは末尾のスペースを無視します。したがって、予期されるより少ない行がSecure Agentで抽出される可能性があります。
注: ソースタイプをクエリとして選択した場合や、[SQLクエリ] プロパティを使用して[個別選択] オプションを選択した場合、Secure Agentは[個別選択] オプションを無視します。
SQLクエリ1
デフォルトのSQLクエリをオーバーライドします。
カラム名を二重引用符で囲みます。SQLクエリでは大文字と小文字が区別されます。Amazon RedshiftデータベースでサポートされているSQL文を指定します。
SQLクエリでカラムを指定するときに、クエリのカラム名がマッピングのソースカラム名と一致するようにします。
ルックアップデータフィルタ
マッピングがルックアップソーステーブルのキャッシュに対して実行するルックアップの回数を、フィルタ条件で指定した値に基づいて制限します。
このプロパティは、ソースタイプとして[単一オブジェクト]を選択し、[ルックアップトランスフォーメーション]プロパティの[詳細] タブでルックアップキャッシュを有効にした場合に適用されます。
最大長は32768文字です。
このプロパティの詳細については、データ統合のドキュメントにある「トランスフォーメーション 」を参照してください。
一時資格情報の期間1
IAMユーザーが動的に生成された一時的な資格情報を使用してAWSリソースにアクセスできる期間。期間を秒単位で入力します。
デフォルトは900秒です。
900秒以上が必要な場合、AWSコンソールで期間を最大12時間まで設定できます。設定した後で、同じ期間をこのプロパティに入力してください。
トレースレベル
詳細トレースレベルを使用して、ソーストランスフォーメーションのログに表示される情報の詳細度を取得します。
1 キャッシュされていないルックアップには適用されません。
ルックアップトランスフォーメーションの詳細については、『トランスフォーメーション 』を参照してください。
接続されていないルックアップトランスフォーメーション マッピングでAmazon Redshiftソースに対して未接続のルックアップトランスフォーメーションを設定できます。ルックアップトランスフォーメーションを使用して、指定したルックアップ条件に基づいてAmazon Redshiftからデータを取得します。
未接続のルックアップトランスフォーメーションは、パイプライン内のいずれのソース、ターゲット、またはトランスフォーメーションにも接続していないルックアップトランスフォーメーションです。
未接続のルックアップトランスフォーメーションは、別のトランスフォーメーションの:LKP式の結果から入力値を受け取ります。統合サービスは、ルックアップトランスフォーメーションのルックアップポートと条件に基づいてルックアップソースにクエリを送信し、返された値を:LKP式が含まれるポートに渡します。:LKP式を使用することで、ルックアップの結果を別のトランスフォーメーション内の式に渡すことができます。
ルックアップトランスフォーメーションの詳細については、「トランスフォーメーション 」を参照してください。
接続されていないルックアップトランスフォーメーションの設定 接続されていないルックアップトランスフォーメーションを設定するには、[接続されていないルックアップ] オプションを選択して受信フィールドを追加し、ルックアップ条件を設定してから戻り値を指定します。次に、別のトランスフォーメーションでのルックアップ式を設定します。
1 マッピングにルックアップトランスフォーメーションを追加します。
2 ルックアップトランスフォーメーションの [全般] タブで、 [接続されていないルックアップ] オプションを有効にします。
3 ルックアップトランスフォーメーションの [受信フィールド] タブで、:LKP式の各引数に対して受信フィールドを作成します。
作成するルックアップ条件それぞれについて、ルックアップトランスフォーメーションに受信フィールドを追加します。
4 [ルックアップオブジェクト] タブでルックアップオブジェクトをインポートします。
未接続ルックアップで[複数一致] プロパティを値[すべての行を返す] に設定することはできません。
5 戻り値を指定します。
ルックアップトランスフォーメーションに複数の入力値を渡し、データのカラムを1つ返すことができます。データ統合 は、ルックアップクエリから1つの値を返すことができます。戻りフィールドを使用して、戻り値を指定します。
6 別のトランスフォーメーションのルックアップ式を設定します。
式トランスフォーメーションを使用するトランスフォーメーションの:LKP式から、未接続のルックアップトランスフォーメーションの入力値を指定します。引数は、ルックアップ条件に使用されているルックアップトランスフォーメーションのローカル入力フィールドと一致するローカル入力ポートです。
7 フィールドをターゲットにマッピングします。
ルックアップキャッシングの有効化 マッピングでルックアップトランスフォーメーションを設定すると、ランタイムセッション中にルックアップデータをキャッシュできます。
[ルックアップキャッシングの有効化] を選択すると、データ統合はルックアップソースを一度クエリし、セッション中に使用する値をキャッシュします。これにより、パフォーマンスを向上できます。キャッシュされたルックアップを保存するディレクトリを指定できます。
ルックアップキャッシュの永続性 ルックアップキャッシュの永続性を使用して、ルックアップキャッシュファイルを次回再利用するために保存します。データ統合は、キャッシュを使用するように設定されているルックアップトランスフォーメーションを処理します。 永続的なルックアップキャッシュファイルに使用するファイル名のプレフィックスをファイル名プレフィックスのキャッシュ フィールドで指定できます。 ルックアップテーブルが変更されることがある場合は、ルックアップソースからの再キャッシュ プロパティを有効にしてルックアップキャッシュを再作成します。 動的ルックアップキャッシュ 動的ルックアップキャッシュを使用してルックアップキャッシュがターゲットに同期し続けるようにします。デフォルトでは、動的ルックアップキャッシュは無効で、キャッシュは静的になっています。 キャッシュが静的である場合、ルックアップキャッシュ内のデータは、マッピングタスクの実行時に変更されません。 タスクがキャッシュを複数回使用する場合、タスクは同じデータを使用します。キャッシュが動的である場合、タスクはタスク内のアクションに基づいてキャッシュを更新します。そのため、タスクがルックアップを複数回使用する場合、ダウンストリームトランスフォーメーションでは更新されたデータが使用されます。 ルックアップキャッシングの詳細については、データ統合のマニュアルにある「トランスフォーメーション 」を参照してください。
ルックアップトランスフォーメーションの設定のルールおよびガイドライン Amazon Redshiftルックアップトランスフォーメーションを設定する場合は、次のルールとガイドラインを考慮してください。
• 詳細モードでは、マッピングに接続されていないルックアップは使用できません。• 詳細モードでは、マッピングの動的ルックアップ キャッシュは設定できません。• [複数一致] プロパティが[エラーを報告] に設定されているルックアップトランスフォーメーションは、詳細モードのマッピングでエラーメッセージが表示されることなく正常に実行されます。• キャッシュされていないルックアップにSQLクエリプロパティを使用することはできません。• キャッシュされていないルックアップでIS NULL演算子とIS NOT NULL演算子を使用するには、Secure AgentのプロパティのDTMタイプでJVMオプションとして-DENABLE_NULL_FLAG_FOR_UNCACHED_LOOKUP=trueプロパティを設定する必要があります。使用できる演算子は、= と ! = のみです。他の演算子を使用した場合、タスクは失敗します。 Oracle CDCソースを使用したマッピング タスクの例 組織では、ミッションクリティカルなOracleの本番システムからリアルタイムの変更データをレプリケートして、重大ではない作業の介入(オフラインのレポートシステムや分析処理システムなど)を最小限に抑える必要があります。Amazon Redshift V2コネクタを使用すると、Oracle CDCソースから変更データをキャプチャしてAmazon Redshiftのターゲットテーブルに書き込むことができます。Oracle CDCソースをマッピングに追加して、関連付けられたマッピングタスクを実行すると、変更データがターゲットに書き込まれます。
1 データ統合 で、 [新規] > [マッピング] > [作成] をクリックします。
[新しいマッピング] ダイアログボックスが表示されます。
2 マッピングの名前と説明を入力します。
3 ソーストランスフォーメーションの全般プロパティで、名前と説明を指定します。
4 [ソース] タブで、設定済みのOracle CDC接続を選択し、必要なソースプロパティを指定します。
5 ターゲットトランスフォーメーションの全般プロパティで、名前と説明を指定します。
6 [ターゲット] タブで、次の手順を実行してターゲットプロパティを設定します。
a [接続] フィールドで、Amazon Redshift V2接続を選択します。 b [ターゲットの種類] フィールドで、ターゲットオブジェクトのタイプを選択します。 c [オブジェクト] フィールドで、必要なターゲットオブジェクトを選択します。 d [操作] フィールドで、ソースレコードの挿入、更新、削除が正しく処理されるように [Data Driven] を選択します。 e [データ依存条件] フィールドは空白のままにします。 f [詳細プロパティ] セクションで、必要なターゲットプロパティの値を指定します。 [書き込み時にレコードの順序を維持] チェックボックスをオンにし、 [リカバリスキーマ名] プロパティの値を入力する必要があります。 7 [フィールドマッピング] タブで、受信フィールドをターゲットフィールドにマップします。手動でマップすることも、フィールド名に基づいて自動的にマップすることもできます。
8 [アクション] メニューで、 [新しいマッピングタスク] をクリックします。
[新しいマッピングタスク] ページが表示されます。
9 [定義] タブで、タスク名を入力し、設定済みのマッピングを選択します。
10 [CDCランタイム] タブで、必要なプロパティを指定します。
CDCランタイム プロパティの詳細については、Oracle CDCコネクタのヘルプを参照してください。
11 [ランタイムオプション] タブの [詳細セッションプロパティ] セクションで、次のプロパティを指定します。
a メニューから [ファイル終端でコミット] を選択し、プロパティを無効のままにします。 b [コミットタイプ] フィールドで [ソース] を選択します。 c [リカバリストラテジ] を選択し、プロパティの値に [最終チェックポイントから再開] を設定します。 12 [保存] > [実行] をクリックして、マッピングを保存して実行します。
スケジュールを作成して、手動で操作しなくてもマッピングタスクが定期的に実行されるようにすることもできます。マッピングタスクの実行間隔ができるだけ短くなるようにスケジュールを定義できます。
モニタ で、タスクの実行後にログのステータスを監視できます。
詳細モードのマッピングの例 顧客ID、品目コード、および品目数量などの大量の注文書の詳細をAmazon S3に保存している組織で働いているとします。注文書の詳細を分析して将来の収益を増加させるために、Amazon S3から別のクラウドベースの環境にデータを移植する必要があります。
Amazon S3からすべての注文レコードを読み取ってAmazon Redshiftターゲットに書き込む場合のパフォーマンスを向上させるために、詳細モードで実行されるマッピングを作成します。
1 データ統合で、 [新規] > [マッピング] > [マッピング] をクリックします。
2 Mapping Designerで、 [詳細に切り替え] をクリックします。
次の図は、Mapping Designerの
[詳細に切り替え] ボタンを示しています。
3 [詳細に切り替え] ダイアログボックスで、 [詳細に切り替え] をクリックします。
Mapping Designerでマッピングキャンバスが更新され、詳細モードで使用できるトランスフォーメーションと関数が表示されます。
4 マッピングの名前、場所、説明を入力します。
5 ソーストランスフォーメーションを追加して、全般プロパティで名前と説明を指定します。
6 Amazon S3ソースからデータを読み取るには、 [ソース] タブで、ソース詳細を指定する次の手順を実行します。
a [接続] フィールドで、Amazon S3 V2ソース接続を選択します。 b [ソースタイプ] フィールドで、ソースのタイプを選択します。 c [オブジェクト] フィールドで、必要なオブジェクトを選択します。 d [詳細プロパティ] セクションで、適切な値を指定します。 7 [フィールド] タブで、Amazon S3ソースフィールドをターゲットフィールドにマップします。
8 ターゲットトランスフォーメーションの全般プロパティで、名前と説明を指定します。
9 [ターゲット] タブで次の手順を実行して、Amazon Redshiftターゲットにデータを書き込むためのターゲットの詳細を指定します。
a [接続] フィールドで、Amazon Redshift V2ターゲット接続を選択します。 b [ターゲットタイプ] フィールドで、ターゲットのタイプを選択します。 c [オブジェクト] フィールドで、必要なオブジェクトを選択します。 d [操作] フィールドで、必要な操作を選択します。 e [詳細プロパティ] セクションで、詳細ターゲットプロパティに適切な値を指定します。 10 Amazon S3ソースおよびAmazon Redshiftターゲットをマップします。
11 [保存] > [実行] をクリックして、マッピングを検証します。
[監視]で、タスクの実行後にログのステータスを監視できます。
SQLトランスフォーメーション Amazon Redshift V2マッピングのミッドストリームでSQLクエリを処理するようにSQLトランスフォーメーションを設定できます。詳細モードでは、マッピングにSQLトランスフォーメーションは設定できません。
SQLトランスフォーメーションをマッピングに追加する場合、[SQL]タブで、接続とトランスフォーメーションが処理するSQLのタイプを定義します。
ストアドプロシージャ Amazon Redshiftのストアドプロシージャを呼び出すようにSQLトランスフォーメーションを設定できます。SQLトランスフォーメーションを作成する場合は、ストアドプロシージャがAmazon Redshiftデータベースに存在している必要があります。SQLトランスフォーメーションは、ストアドプロシージャを処理する場合、入力パラメータをストアドプロシージャに渡します。ストアドプロシージャは戻り値をトランスフォーメーションの出力フィールドに渡します。
次の画像は、SQLトランスフォーメーションのストアドプロシージャを示しています。
ストアドプロシージャについては、次のルールとガイドラインを考慮してください。
• ストアドプロシージャから入力されたフィールドがcharまたはvarcharデータ型の場合、SQLトランスフォーメーションは、データベースエンドポイントで定義された精度に関係なく、これらのフィールドにデフォルトの精度256を適用します。 • ストアドプロシージャで使用されるテーブルと同じカラム名をソーステーブルで使用すると、マッピングタスクは失敗します。 • 例えば、ストアドプロシージャのカラムに対してnumeric(10,2) などの数値データ型を指定すると、マッピングタスクは失敗します。 • マッピングでストアドプロシージャを作成する場合、出力ポートにrefcursorデータ型を含めることはできません。 • ストアドプロシージャに指定した入力パラメータが異なる場合でも、同じ名前の複数のストアドプロシージャから読み取ることはできません。 ストアドプロシージャに関する詳細については、データ統合のマニュアルにある「トランスフォーメーション 」を参照してください。
SQLクエリ SQLエディタで定義した入力済みクエリを処理するようにSQLトランスフォーメーションを設定できます。SQLトランスフォーメーションはクエリを処理し、行を返します。SQLトランスフォーメーションは、基になるデータベースまたはユーザー構文から発生したエラーも返します。
入力したクエリを処理して、値を返すか、値なしで返すストアドプロシージャを呼び出すことができます。
次の画像は、SQLトランスフォーメーションで入力されたクエリを示しています。
SQLクエリでは、次のルールとガイドラインを考慮してください。
• 保存されたクエリタイプをSQLトランスフォーメーションで使用することはできません。• 入力したクエリでは、1つのクエリのみを指定できます。複数のクエリを指定しないようにしてください。• 入力したクエリでは、COMMIT、ROLLBACK、およびEXPLAIN PLAN文を使用しないでください。 SQLクエリに関する詳細については、データ統合のマニュアルにある「トランスフォーメーション 」を参照してください。
マッピングに対する動的スキーマ処理 ユーザーがデータオブジェクトスキーマに加えた変更をデータ統合 がどのように処理するかを選択できます。マッピング タスクを実行するたびにスキーマが更新されるようにするには、タスクで動的スキーマ処理を有効にします。
スキーマの変更には、データオブジェクトに対する次の1つ以上の変更が含まれます。
• フィールドの追加。• フィールドのデータ型、精度、 またはスケールの更新。タスクの設定時に、[ランタイムオプション] ページでスキーマ変更処理を設定します。
次の表に、スキーマ変更処理のオプションを示します。
オプション
説明
非同期
デフォルト。データ統合 は、マッピングまたはマッピングタスクの編集時およびInformatica Intelligent Cloud Servicesのアップグレード時にスキーマを更新します。
動的
データ統合 は、タスクが実行されるたびにスキーマを更新します。
スキーマの更新では、次のオプションを選択できます。
- 変更して変更を適用する。 データ統合 はターゲットスキーマを変更し、ソースから新しいフィールドを追加します。- 現在のもの削除してから再作成する。 既存のターゲットテーブルを削除し、ソースからのすべての受信メタデータフィールドを使用して、実行時にターゲットテーブルを再作成します。- DDLの変更を適用しない。 データ統合 はスキーマの変更をターゲットに適用しません。
詳細については、データ統合のヘルプの「タスク
マッピングの動的スキーマ処理のルールとガイドライン 動的スキーマ変更処理を有効にする場合は、次のルールとガイドラインを考慮してください。
• データ型、精度、 およびスケールの更新は適用されません。• Varcharデータ型の精度の低下を伴うスキーマ更新は適用されません。• ターゲットテーブルのカラムで特殊文字を使用しており、[変更して変更を適用する] を選択した場合、エラーが発生してマッピングタスクは失敗します。 • ソーストランスフォーメーションのフィールドマッピングで完全にパラメータ化されたフィルタを使用しており、[動的] オプションを選択した場合、[ランタイムオプション] ページには、スキーマを更新するためのオプションは表示されません。 • ソーストランスフォーメーションでSQLオーバーライドを使用しており、[変更を変更して適用する] を選択した場合、エラーが発生してマッピングタスクは失敗します。 • ソースにプライマリキーとしてフィールドを追加し、[変更して変更を適用する] を選択した場合、マッピングタスクが正常に実行され、フィールドがターゲットにプロパゲートされます。ただし、プライマリキーは考慮されません。 • ソーステーブル名またはスキーマ名をオーバーライドして、[変更して変更を適用する] スキーマ変更処理オプションを選択し、オーバーライドされたソーステーブルに新しいフィールドが追加されると、マッピングは正常に実行されます。ただし、Secure Agentは、オーバーライドされたソーステーブルから新しく追加されたフィールドを取得しません。 キー範囲パーティションの設定 フィールド値に基づいてAmazon Redshiftデータをパーティション化するようにキー範囲パーティションを設定します。
1 [ソースのプロパティ] で、 [パーティション] タブをクリックします。
2 リストから必要な [パーティションキー] を選択します。
3 [新しいキー範囲の追加] をクリックしてパーティションを追加します。
4 [開始範囲] および [終了範囲] を指定します。
書き込み操作の一括処理 一括処理を有効にして、Amazon Redshiftに大量のデータを書き込むことができます。一括処理では、最小限のAPI呼び出しを使用し、書き込み操作のパフォーマンスが向上します。
一括処理を有効にするには、Secure Agentプロパティでプロパティ-DENABLE_WRITER_BULK_PROCESSING=true を指定します。
マッピングを実行する前に、以下の手順を実行して一括処理を設定します。
1 Administratorで、[ランタイム環境] タブにリストされているSecure Agentを選択します。2 [編集] をクリックします。3 [システム構成の詳細] セクションで、サービスとして[データ統合サービス] を選択し、タイプとして[DTM] を選択します。4 JVMOption1 プロパティを編集し、-DENABLE_WRITER_BULK_PROCESSING=true と入力します。5 [保存] をクリックします。注: SQL ELTの最適化 を使用して設定されたマッピングタスクには適用されません。
マッピングのステージングパフォーマンスの最適化 データ統合は、デフォルトで、Amazon Redshiftから読み書きする前にデータのステージング用として一時フォルダにフラットファイルをローカルに作成します。ステージングのパフォーマンスを最適化するようにデータ統合を設定できます。
最適化プロパティを設定しない場合、データ統合は最適化された設定なしでステージングを実行しますが、これがタスクのパフォーマンスに影響する場合があります。
最適化プロパティを有効にする場合は、次のルールを考慮してください。
• SQL ELTの最適化 が有効になっているマッピングを実行すると、マッピングはSQL ELTの最適化 を使用せずに実行されます。• 読み取り操作の場合、ステージングはソーストランスフォーメーションにのみ適用され、ルックアップトランスフォーメーションには適用されません。• データにタイムゾーン付きのTimestampデータ型が含まれている場合、ローカルフラットファイルでデータをステージングせずにジョブが実行されます。• マッピングにソースとしてOracle CDCが含まれ、ターゲットとしてAmazon Redshiftが含まれている場合、ローカルフラットファイルでデータをステージングせずにジョブが実行されます。• CR文字またはLF文字を含むソースから複数行のデータを読み取るマッピングを実行すると、カラムデータが複数の行に分割されます。 ステージングパフォーマンスを最適化するためのAmazon Redshift Connectorの有効化 Amazon Redshift V2コネクタを有効にしてステージングパフォーマンスを最適化するには、次の手順を実行します。
1 Administratorで、[ランタイム環境] をクリックします。2 このプロパティを設定するSecure Agentを編集します。3 [システム構成の詳細] セクションで、[データ統合サーバー] に[サービス] を選択し、タイプに[Tomcat] を選択します。4 TomcatプロパティのINFA_DTM_RDR_STAGING_ENABLED_CONNECTORS (読み取り操作用)、INFA_DTM_STAGING_ENABLED_CONNECTORS (書き込み操作用)、およびINFA_DTM_LKP_STAGING_ENABLED_CONNECTORS (Amazon RedshiftコネクタのプラグインIDへのキャッシュされたルックアップ操作用)の値を設定します。プラグインIDは、次のディレクトリのマニフェストファイルの中にあります: <Secure Agentのインストールディレクトリ>/downloads/<AmazonRedshiftパッケージ>/CCIManifest
次の図は、Secure AgentのDTMでステージングデータに設定する最適化プロパティを示しています。
マッピングを実行すると、マシンの次のディレクトリにフラットファイルが作成されます: C:\Windows\Temp\AmazonRedshift\stage\<AmazonRedshift_Target.txt>
セッションログをチェックして、最適化プロパティが有効になっているかどうかを確認することができます。