Amazon Redshiftコネクタ > 部 II: Amazon Redshift V2コネクタを使用したデータ統合 > Amazon Redshiftによるマッピングとマッピングタスク > マッピングのAmazon Redshift V2オブジェクト
  

マッピングのAmazon Redshift V2オブジェクト

マッピングを作成するときに、ソースまたはターゲットのトランスフォーメーションをAmazon Redshift V2オブジェクトを表すように設定できます。さらに、マッピングおよびマッピングタスクのルックアップを設定できます。
マッピングでAmazon Redshift V2オブジェクトを設定する場合は、次のルールとガイドラインを考慮してください。

マッピングの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ソースから直接読み取りを行う場合は、次のルールとガイドラインを考慮してください。

IS NULLまたはIS NOT NULL演算子を使用したフィルタ

IS NULLまたはIS NOT NULL演算子を含む簡易フィルタ条件を詳細フィルタに変換すると、これらの演算子はSQL関数に変換され、結果のクエリは失敗します。これらの演算子を使用するときにこの問題を回避するには、詳細フィルタ条件でAmazon Redshift互換の構文を使用する必要があります。

SQLクエリの設定のルールおよびガイドライン

SQLクエリを設定するときは、次のルールおよびガイドラインを考慮してください。

複数のソースオブジェクトの追加

ソーストランスフォーメーションを作成するときに、ソースタイプとして複数のAmazon Redshift V2オブジェクトを選択してから、結合を設定してテーブルを結合できます。リレーション条件またはクエリを定義して、テーブルを結合できます。
    1ソーストランスフォーメーションで、[ソースタイプ][複数のオブジェクト]としてクリックします。
    2[アクション]メニューから、[ソースオブジェクトの追加]をクリックします。
    この図は、ソースオブジェクトを追加する方法を示しています。
    3表示されたリストから、追加するソースオブジェクトを選択します。
    この図は、ソースオブジェクトを選択できるオブジェクトのリストを示しています。
    4[OK]をクリックします。
    5[関連オブジェクトのアクション]メニューから、[詳細リレーション]を選択します。 この図は、[詳細リレーション]オプションを示しています。
    6[詳細リレーション]ウィンドウで、[オブジェクトの追加]をクリックしてさらにオブジェクトを追加できます。
    [オブジェクトの追加]をクリックして、さらにオブジェクトを追加します。
    7[OK]をクリックします。
    8独自の条件を設定するか、クエリを指定して、テーブル間のリレーションを定義します。
    この図は、オブジェクト間のリレーションを定義する方法を示しています。
    注: 結合式を設定するときは、フィールドを選択して、結合条件またはクエリ構文を定義します。
    9[OK]をクリックします。
    次の図は、Amazon Redshift V2テーブル間に定義された詳細結合条件の例を示しています。
    この図は、詳細結合条件がUIにどのように表示されるかを示しています。

複数のソースオブジェクトの追加のルールおよびガイドライン

複数のソースオブジェクトを追加するときは、次のルールとガイドラインを考慮してください。

マッピングでのAmazon Redshift V2ターゲット

データをAmazon Redshiftに書き込むには、マッピングでAmazon Redshift V2オブジェクトをターゲットとして設定します。
ソースパーティションを有効にした場合、Secure Agentはパススルーパーティション化を使用してAmazon Redshiftにデータを書き込み、実行時のマッピングのパフォーマンスを最適化します。Amazon Redshift V2ターゲットの名前と説明を指定します。ターゲットオブジェクトのターゲットプロパティと詳細プロパティを設定します。
以下の表に、ターゲットトランスフォーメーションで設定できるターゲットプロパティを示します。
プロパティ
説明
接続
ターゲット接続の名前。ターゲット接続を選択するか、[新しいパラメータ]をクリックしてターゲット接続に新しいパラメータを定義します。
ターゲットタイプ
ターゲットオブジェクトのタイプ。
[単一オブジェクト]または[パラメータ]を選択します。
オブジェクト
ターゲットオブジェクトの名前。
実行時に、既存のターゲットオブジェクトを使用するか、新しいターゲットオブジェクトを作成するかを選択できます。実行時に新しいターゲットを作成するには、[実行時に新規作成]オプションを選択します
新しいターゲットを、指定したテーブルタイプとパスに基づいて実行時に作成します。
オブジェクト名、テーブルタイプ、およびパスを指定して、実行時に新しいオブジェクトを作成します。
実行時に新規作成
[実行時に新規作成]オプションに適用されます。
ソースと同じフィールド名で実行時にターゲットオブジェクトを作成できるかどうかを指定します。
ソースフィールド名をターゲットでそのまま使用
[実行時に新規作成]オプションに適用されます。このオプションは、既存のターゲットには表示されません。
すべてのソースフィールド名(特殊文字を含む)をソースとまったく同じようにターゲットに保持する場合に選択します。このオプションを無効にすると、ソースの特殊文字は、ターゲットでアンダースコア文字に置換されます。
デフォルトでは無効になっています。
パラメータ
ターゲットオブジェクトの既存のパラメータを選択するか、[新しいパラメータ]をクリックしてターゲットオブジェクトの新しいパラメータを定義します。
ターゲットタイプとして[パラメータ]を選択する場合にのみ[パラメータ]プロパティが表示されます。ランタイム時にパラメータを上書きする場合、[パラメータを上書き]オプションを選択します。
操作
ターゲット操作のタイプ。
次のいずれかの操作を選択します。
  • - Insert
  • - Update
  • - Upsert
  • - Delete
  • - Data Driven
CDCソースから変更データをキャプチャするマッピングを作成する場合は[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_filebackup_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つ以上マップする必要があります。次のデータオブジェクトの操作属性を選択できます。
  • - [更新時に更新]: Secure Agentは更新時にすべての行を更新します。
  • - [更新または挿入]: Secure Agentは既存の行を更新したり、挿入のマークが付けられているように他の行を挿入したりします。
  • 詳細については、「Amazon Redshift V2コネクタのトラブルシューティング」トピックを参照してください。
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コネクタに適用できません。
次のプロパティは、詳細モードのマッピングには適用されません。

ターゲットの作成に関するルールとガイドライン

Secure Agentは、[ターゲットの作成]フィールドで指定されたターゲットテーブル名を小文字に変換します。
ターゲットを作成する際には、[ターゲットフィールド]タブでターゲットオブジェクトのメタデータを表示および編集できます。ターゲットオブジェクトのカラムのデータ型や精度を編集したり、プライマリキーを定義したりできます。メタデータを編集するには、[ターゲットフィールド]タブで[オプション] > [メタデータの編集]をクリックします。
ターゲットを作成するときは、次のルールとガイドラインを考慮してください。

ターゲットクエリをオーバーライドするためのルールとガイドライン

ターゲットクエリのオーバーライドを指定して、Secure Agentが更新操作に対して生成する更新クエリをオーバーライドできます。
Amazon Redshiftターゲットにオーバーライドターゲットクエリプロパティを使用する場合は、次のルールとガイドラインを考慮してください。

マッピングの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ルックアップトランスフォーメーションを設定する場合は、次のルールとガイドラインを考慮してください。

Oracle CDCソースを使用したマッピングタスクの例

組織では、ミッションクリティカルなOracleの本番システムからリアルタイムの変更データをレプリケートして、重大ではない作業の介入(オフラインのレポートシステムや分析処理システムなど)を最小限に抑える必要があります。Amazon Redshift V2コネクタを使用すると、Oracle CDCソースから変更データをキャプチャしてAmazon Redshiftのターゲットテーブルに書き込むことができます。Oracle CDCソースをマッピングに追加して、関連付けられたマッピングタスクを実行すると、変更データがターゲットに書き込まれます。
    1データ統合で、[新規] > [マッピング] > [作成]をクリックします。
    [新しいマッピング]ダイアログボックスが表示されます。
    2 マッピングの名前と説明を入力します。
    3ソーストランスフォーメーションの全般プロパティで、名前と説明を指定します。
    4[ソース]タブで、設定済みのOracle CDC接続を選択し、必要なソースプロパティを指定します。
    5ターゲットトランスフォーメーションの全般プロパティで、名前と説明を指定します。
    6[ターゲット]タブで、次の手順を実行してターゲットプロパティを設定します。
    1. a[接続]フィールドで、Amazon Redshift V2接続を選択します。
    2. b[ターゲットの種類]フィールドで、ターゲットオブジェクトのタイプを選択します。
    3. c[オブジェクト]フィールドで、必要なターゲットオブジェクトを選択します。
    4. d[操作]フィールドで、ソースレコードの挿入、更新、削除が正しく処理されるように[Data Driven]を選択します。
    5. e[データ依存条件]フィールドは空白のままにします。
    6. f[詳細プロパティ]セクションで、必要なターゲットプロパティの値を指定します。[書き込み時にレコードの順序を維持]チェックボックスをオンにし、[リカバリスキーマ名]プロパティの値を入力する必要があります。
    7[フィールドマッピング]タブで、受信フィールドをターゲットフィールドにマップします。手動でマップすることも、フィールド名に基づいて自動的にマップすることもできます。
    8[アクション]メニューで、[新しいマッピングタスク]をクリックします。
    [新しいマッピングタスク]ページが表示されます。
    9[定義]タブで、タスク名を入力し、設定済みのマッピングを選択します。
    10[CDCランタイム]タブで、必要なプロパティを指定します。
    CDCランタイムプロパティの詳細については、Oracle CDCコネクタのヘルプを参照してください。
    11[ランタイムオプション]タブの[詳細セッションプロパティ]セクションで、次のプロパティを指定します。
    1. aメニューから[ファイル終端でコミット]を選択し、プロパティを無効のままにします。
    2. b[コミットタイプ]フィールドで[ソース]を選択します。
    3. c[リカバリストラテジ]を選択し、プロパティの値に[最終チェックポイントから再開]を設定します。
    12[保存] > [実行]をクリックして、マッピングを保存して実行します。
    スケジュールを作成して、手動で操作しなくてもマッピングタスクが定期的に実行されるようにすることもできます。マッピングタスクの実行間隔ができるだけ短くなるようにスケジュールを定義できます。
モニタで、タスクの実行後にログのステータスを監視できます。

詳細モードのマッピングの例

顧客ID、品目コード、および品目数量などの大量の注文書の詳細をAmazon S3に保存している組織で働いているとします。注文書の詳細を分析して将来の収益を増加させるために、Amazon S3から別のクラウドベースの環境にデータを移植する必要があります。
Amazon S3からすべての注文レコードを読み取ってAmazon Redshiftターゲットに書き込む場合のパフォーマンスを向上させるために、詳細モードで実行されるマッピングを作成します。
    1データ統合で、[新規] > [マッピング] > [マッピング]をクリックします。
    2Mapping Designerで、[詳細に切り替え]をクリックします。
    次の図は、Mapping Designerの[詳細に切り替え]ボタンを示しています。 Mapping Designerでは、ヘッダーに[詳細に切り替え]ボタンが表示されます。
    3[詳細に切り替え]ダイアログボックスで、[詳細に切り替え]をクリックします。
    Mapping Designerでマッピングキャンバスが更新され、詳細モードで使用できるトランスフォーメーションと関数が表示されます。
    4マッピングの名前、場所、説明を入力します。
    5ソーストランスフォーメーションを追加して、全般プロパティで名前と説明を指定します。
    6Amazon S3ソースからデータを読み取るには、[ソース]タブで、ソース詳細を指定する次の手順を実行します。
    1. a[接続]フィールドで、Amazon S3 V2ソース接続を選択します。
    2. b[ソースタイプ]フィールドで、ソースのタイプを選択します。
    3. c[オブジェクト]フィールドで、必要なオブジェクトを選択します。
    4. d[詳細プロパティ]セクションで、適切な値を指定します。
    7[フィールド]タブで、Amazon S3ソースフィールドをターゲットフィールドにマップします。
    8ターゲットトランスフォーメーションの全般プロパティで、名前と説明を指定します。
    9[ターゲット]タブで次の手順を実行して、Amazon Redshiftターゲットにデータを書き込むためのターゲットの詳細を指定します。
    1. a[接続]フィールドで、Amazon Redshift V2ターゲット接続を選択します。
    2. b[ターゲットタイプ]フィールドで、ターゲットのタイプを選択します。
    3. c[オブジェクト]フィールドで、必要なオブジェクトを選択します。
    4. d[操作]フィールドで、必要な操作を選択します。
    5. e[詳細プロパティ]セクションで、詳細ターゲットプロパティに適切な値を指定します。
    10Amazon S3ソースおよびAmazon Redshiftターゲットをマップします。
    11[保存] > [実行]をクリックして、マッピングを検証します。
    [監視]で、タスクの実行後にログのステータスを監視できます。

SQLトランスフォーメーション

Amazon Redshift V2マッピングのミッドストリームでSQLクエリを処理するようにSQLトランスフォーメーションを設定できます。詳細モードでは、マッピングにSQLトランスフォーメーションは設定できません。
SQLトランスフォーメーションをマッピングに追加する場合、[SQL]タブで、接続とトランスフォーメーションが処理するSQLのタイプを定義します。

ストアドプロシージャ

Amazon Redshiftのストアドプロシージャを呼び出すようにSQLトランスフォーメーションを設定できます。SQLトランスフォーメーションを作成する場合は、ストアドプロシージャがAmazon Redshiftデータベースに存在している必要があります。SQLトランスフォーメーションは、ストアドプロシージャを処理する場合、入力パラメータをストアドプロシージャに渡します。ストアドプロシージャは戻り値をトランスフォーメーションの出力フィールドに渡します。
次の画像は、SQLトランスフォーメーションのストアドプロシージャを示しています。
SQLタイプに[ストアドプロシージャ]を選択し、ストアドプロシージャを選択します。
ストアドプロシージャについては、次のルールとガイドラインを考慮してください。
ストアドプロシージャに関する詳細については、データ統合のマニュアルにある「トランスフォーメーション」を参照してください。

SQLクエリ

SQLエディタで定義した入力済みクエリを処理するようにSQLトランスフォーメーションを設定できます。SQLトランスフォーメーションはクエリを処理し、行を返します。SQLトランスフォーメーションは、基になるデータベースまたはユーザー構文から発生したエラーも返します。
入力したクエリを処理して、値を返すか、値なしで返すストアドプロシージャを呼び出すことができます。
次の画像は、SQLトランスフォーメーションで入力されたクエリを示しています。
SQLクエリとしてSQLタイプを選択し、入力済みクエリとしてクエリタイプを選択します。
SQLクエリでは、次のルールとガイドラインを考慮してください。
SQLクエリに関する詳細については、データ統合のマニュアルにある「トランスフォーメーション」を参照してください。

マッピングに対する動的スキーマ処理

ユーザーがデータオブジェクトスキーマに加えた変更をデータ統合がどのように処理するかを選択できます。マッピングタスクを実行するたびにスキーマが更新されるようにするには、タスクで動的スキーマ処理を有効にします。
スキーマの変更には、データオブジェクトに対する次の1つ以上の変更が含まれます。
タスクの設定時に、[ランタイムオプション]ページでスキーマ変更処理を設定します。
次の表に、スキーマ変更処理のオプションを示します。
オプション
説明
非同期
デフォルト。データ統合は、マッピングまたはマッピングタスクの編集時およびInformatica Intelligent Cloud Servicesのアップグレード時にスキーマを更新します。
動的
データ統合は、タスクが実行されるたびにスキーマを更新します。
スキーマの更新では、次のオプションを選択できます。
  • - 変更して変更を適用する。データ統合はターゲットスキーマを変更し、ソースから新しいフィールドを追加します。
  • - 現在のもの削除してから再作成する。既存のターゲットテーブルを削除し、ソースからのすべての受信メタデータフィールドを使用して、実行時にターゲットテーブルを再作成します。
  • - DDLの変更を適用しない。データ統合はスキーマの変更をターゲットに適用しません。
詳細については、データ統合のヘルプの「タスク

マッピングの動的スキーマ処理のルールとガイドライン

動的スキーマ変更処理を有効にする場合は、次のルールとガイドラインを考慮してください。

キー範囲パーティションの設定

フィールド値に基づいてAmazon Redshiftデータをパーティション化するようにキー範囲パーティションを設定します。
    1[ソースのプロパティ]で、[パーティション]タブをクリックします。
    2リストから必要な[パーティションキー]を選択します。
    3[新しいキー範囲の追加]をクリックしてパーティションを追加します。
    4[開始範囲]および[終了範囲]を指定します。

書き込み操作の一括処理

一括処理を有効にして、Amazon Redshiftに大量のデータを書き込むことができます。一括処理では、最小限のAPI呼び出しを使用し、書き込み操作のパフォーマンスが向上します。
一括処理を有効にするには、Secure Agentプロパティでプロパティ-DENABLE_WRITER_BULK_PROCESSING=trueを指定します。
マッピングを実行する前に、以下の手順を実行して一括処理を設定します。
  1. 1Administratorで、[ランタイム環境]タブにリストされているSecure Agentを選択します。
  2. 2[編集]をクリックします。
  3. 3[システム構成の詳細]セクションで、サービスとして[データ統合サービス]を選択し、タイプとして[DTM]を選択します。
  4. 4JVMOption1プロパティを編集し、-DENABLE_WRITER_BULK_PROCESSING=trueと入力します。
  5. 5[保存]をクリックします。
注: SQL ELTの最適化を使用して設定されたマッピングタスクには適用されません。

マッピングのステージングパフォーマンスの最適化

データ統合は、デフォルトで、Amazon Redshiftから読み書きする前にデータのステージング用として一時フォルダにフラットファイルをローカルに作成します。ステージングのパフォーマンスを最適化するようにデータ統合を設定できます。
最適化プロパティを設定しない場合、データ統合は最適化された設定なしでステージングを実行しますが、これがタスクのパフォーマンスに影響する場合があります。
最適化プロパティを有効にする場合は、次のルールを考慮してください。

ステージングパフォーマンスを最適化するためのAmazon Redshift Connectorの有効化

Amazon Redshift V2コネクタを有効にしてステージングパフォーマンスを最適化するには、次の手順を実行します。
  1. 1Administratorで、[ランタイム環境]をクリックします。
  2. 2このプロパティを設定するSecure Agentを編集します。
  3. 3[システム構成の詳細]セクションで、[データ統合サーバー][サービス]を選択し、タイプに[Tomcat]を選択します。
  4. 4TomcatプロパティのINFA_DTM_RDR_STAGING_ENABLED_CONNECTORS(読み取り操作用)、INFA_DTM_STAGING_ENABLED_CONNECTORS(書き込み操作用)、およびINFA_DTM_LKP_STAGING_ENABLED_CONNECTORS(Amazon RedshiftコネクタのプラグインIDへのキャッシュされたルックアップ操作用)の値を設定します。
  5. プラグインIDは、次のディレクトリのマニフェストファイルの中にあります: <Secure Agentのインストールディレクトリ>/downloads/<AmazonRedshiftパッケージ>/CCIManifest
    次の図は、Secure AgentのDTMでステージングデータに設定する最適化プロパティを示しています。 DTMステージングプロパティ - 読み取り、書き込み、ルックアップ
マッピングを実行すると、マシンの次のディレクトリにフラットファイルが作成されます: C:\Windows\Temp\AmazonRedshift\stage\<AmazonRedshift_Target.txt>
セッションログをチェックして、最適化プロパティが有効になっているかどうかを確認することができます。