始める前に
マッピングを作成する前に、次のタスクを実行します。
一般的な前提条件
成功ファイルおよびエラーファイルが含まれているSecure Agentディレクトリにアクセスできることを確認します。ディレクトリパスは、各Secure Agentマシンのランタイム環境で同じである必要があります。
IAM認証
IAM認証を使用している場合は、RedshiftロールのAmazonリソース名(ARN)を作成し、最小のAmazon IAMポリシーをRedshiftロールのARNに追加して、RedshiftロールのARNをRedshiftクラスタに追加する必要があります。タスクを作成する際に、UNLOADコマンドとCOPYコマンドのAWS_IAM_ROLEオプションにRedshiftロールのARNを指定します。
接続プロパティのアクセスキーIDとシークレットアクセスキーおよびUNLOADコマンドとCOPYコマンドのAWS_IAM_ROLEを指定した場合は、AWS_IAM_ROLEが優先されます。
一時セキュリティ資格情報
一時セキュリティ資格情報の使用については、次のガイドラインを参照してください。
- •タスクを実行する前に、一時セキュリティ資格情報の有効期間が、そのタスクを実行するのに十分な長さであることを確認してください。実行中のタスクに対して、一時セキュリティ資格情報の有効期間を延長することはできません。例えば、Amazon Redshiftとの間で読み取りと書き込みを行い、一時的なセキュリティ認証情報の有効期限が切れた場合、一時的なセキュリティ認証情報の期間を延長することはできないので、タスクが失敗する原因となります。
- •一時セキュリティ資格情報の有効期限が切れると、AWSは、その資格情報を使ったリソースへのアクセスをIAMユーザーまたはIAMロールに許可しません。マッピングで現在使用している一時セキュリティ資格情報の有効期限が切れる前に、新しい一時セキュリティ資格情報を要求する必要があります。
- •詳細モードのマッピングの場合、一時セキュリティ資格情報は、[一時資格情報の期間]の詳細ソースプロパティおよびターゲットプロパティで設定された時間が経過した後でも期限切れになりません。
- •IAMロールARNを使用してAmazon Redshift V2接続を作成し、SSE-KMS暗号化を使用する場合、Amazon Redshift V2の詳細ソースプロパティでアンロードオプションとしてAWS_IAM_ROLEを指定する必要があります。
- •マッピング内のソースとターゲットの両方が同じAmazon S3バケットを指している場合は、ソーストランスフォーメーションとターゲットトランスフォーメーションで同じAmazon S3接続が使用されます。異なる2つのAmazon S3接続を使用する場合は、両方の接続に対して接続プロパティで同じ値を設定します。
- •マッピング内のソースとターゲットが異なるAmazon S3バケットを指している場合、異なる2つのAmazon S3接続を使用できます。
両方の接続に対して、接続プロパティで異なる値を設定できます。ただし、接続プロパティで[ロールの引き受けにEC2ロールを使用]チェックボックスをオンにする必要があります。また、ソースプロパティとターゲットプロパティの[一時的な資格情報の期間]フィールドにも同じ値を指定する必要があります。
CDCソース
CDCソースとのマッピングを作成するにはPowerExchangeClientとCDCのライセンスが必要です。CDCソースから変更データをキャプチャするマッピングを作成し、関連付けられたマッピングタスクを実行して変更データをAmazon Redshiftターゲットに書き込む場合は、CDCソースを設定します。
詳細モードのマッピング
詳細モードで実行するようにマッピングを設定する場合は、Redshiftクラスタと詳細クラスタが同じVirtual Private Cloud(VPC)にあることを確認してください。
Amazon Redshift Spectrumの外部スキーマとテーブルの作成
Amazon Redshift Spectrumを使用するには、外部データカタログ内のデータベースを参照する外部スキーマ内に外部テーブルを作成する必要があります。Avro、ORC、Parquet、RCFile、SequenceFIile、およびTextfileのファイル形式の外部テーブルを作成できます。
外部データベースと外部テーブルのメタデータは、外部データカタログに格納されます。Amazon S3のデータカタログとデータファイルにアクセスするには、Amazon Redshiftの権限を付与する必要があります。
Amazon Redshiftで外部データベースを作成できます。単一の外部テーブル、複数の外部テーブル、または外部テーブルに結合された標準のAmazon Redshiftテーブルからデータを読み取ることができます。
複数のAmazon Redshiftクラスタに複数の外部テーブルを含めることができます。同じリージョンのAmazon Redshiftクラスタから、Amazon S3上の同じデータのクエリを実行できます。Amazon S3でデータを更新すると、すべてのAmazon Redshiftクラスタでそのデータがすぐに使用可能になります。
外部テーブルを作成するときは、データを読み取るAmazon S3の場所を指定する必要があります。外部テーブルを作成するには、Amazon S3データファイルの構造を定義し、外部データカタログに外部テーブルを登録します。その後、クエリの実行や、外部テーブルの結合を行うことができます。
外部テーブルをソースとして追加してマッピングを作成すると、[ソースオブジェクトの選択]ダイアログボックスにspectrum_schemaname形式で外部テーブル名が表示されます。
AthenaまたはGlueのデータカタログを使用して外部テーブルを作成する際には、使用するデータ型がAmazon Redshift V2コネクタでサポートされていることを確認してください。
外部テーブルを作成するときにAmazon Redshift V2コネクタがサポートしているデータ型を以下に示します。
外部テーブルのルールおよびガイドライン
外部テーブルについては、次のルールとガイドラインを考慮してください。
- •Amazon Redshift Spectrum外部テーブルからはデータの読み取りのみができます。Amazon Redshift Spectrum外部テーブルに対してデータの挿入や更新を行うことはできません。
- •Secure Agentでは、ターゲットトランスフォーメーション内で使用できるターゲットオブジェクトのリストから外部テーブル名が削除されることはありません。
- •外部テーブルでpre-SQLおよびpost-SQLコマンドを使用してターゲット操作を実行することはできません。
外部テーブルを作成する方法の詳細については、AWSのマニュアルを参照してください。