Amazon Redshift V2コネクタのトラブルシューティング
更新/挿入操作にJVMオプションを使用する
更新/挿入操作の場合、JVMオプション-DuseDeleteForUpsert=trueを設定して、ターゲットテーブルのすべてのフィールドを接続できます。JVMオプションを設定するときは、次のルールを使用します。
- •JVMオプションを設定すると、Secure Agentは、ソーステーブルとターゲットテーブルの間のプライマリキーの一致に基づいて、ターゲットテーブルのレコードを削除します。ソーステーブルのすべてのレコードがターゲットテーブルに挿入されます。JVMオプションを設定しない場合、Secure Agentは既存の行を更新したり、挿入のマークが付けられているように他の行を挿入したりします。
- •詳細モードのマッピングの場合、マッピングタスクを作成するときにSparkセッションプロパティでJVMオプションを設定します。
- •すべてのカラムが複合キーを形成しているターゲットテーブルを使用し、ターゲットで更新カラムを設定しない場合、マッピングが失敗して警告が表示されることがあります。JVMオプションを設定すると、マッピングタスクは正常に実行されます。
- •更新カラムに重複する値があるターゲットテーブルを使用する場合、マッピングを実行した後、ターゲットテーブルの行数は少なくなります。JVMオプションを設定しない場合、ターゲットテーブルの行数は少なくなりません。
- •カラムに重複する値があるソーステーブルを使用し、そのカラムをターゲットの更新カラムとして選択すると、追加の行がターゲットに追加されます。JVMオプションを設定しない場合、追加の行はターゲットに追加されません。
- •更新/挿入操作の場合、特殊文字を含むカラム名を持つテーブルを使用し、JVMオプションを設定しないと、マッピングは失敗します。
Amazon S3バケットが存在しないか、ユーザーにバケットにアクセスする権限がありません。
Secure Agentをホストするマシンの時刻を変更しないでください。Secure Agentの時刻は、タイムゾーンに従って正確である必要があります。正確でない場合、マッピングは例外で失敗します。
デフォルト値を持つNOT NULLカラム
Amazon Redshiftターゲットテーブルにデフォルト値を持つNOT NULLカラムをマッピングしていない場合でも、挿入、更新、または更新/挿入操作は成功し、NOT NULLカラムのデフォルト値が使用されます。
Secure AgentプロパティでJVMオプション-DRetainUnmappedNotNullColumnValidation値をtrueに設定すると、操作は成功せず、NOT NULLカラムのデフォルト値は使用されません。
Amazon Redshift V2コネクタを使用して更新/挿入操作を実装するにはどうすればよいですか?
Amazon Redshift V2コネクタのAWS IAM認証はどのように設定しますか?
Amazon Redshift V2コネクタを使用して、Amazon Web Services(AWS)によって提供されるAmazon Redshift Serverlessに接続するにはどうすればよいですか?
stringデータ型がマッピングでtimeデータ型にマッピングされると、無効なタイムスタンプエラーが発生する
SQL ELTの最適化が有効になっているマッピングを実行して、日付、タイムスタンプ、および時刻の情報を含む文字列カラムからデータの書き込みを行い、そのデータをデフォルトの日付/時刻形式で処理してRedshiftに書き込む場合は、Secure Agentに対してJVMプロパティ-DHonorInfaDateFormat=trueを使用することができます。
JVMオプションを設定するには、Administratorで次の手順を実行します。
- 1[Administrator] > [ランタイム環境]の順に選択します。
- 2[ランタイム環境]ページで、マッピングを実行するSecure Agentマシンを選択します。
- 3[編集]をクリックします。
- 4[システム構成の詳細]セクションで、[サービス]に[データ統合サーバー]を選択し、[タイプ]に[DTM]を選択します。
- 5JVMオプションシステムプロパティを編集し、値を-DHonorInfaDateFormat=trueに設定します。
- 6[OK]をクリックして変更を保存します。
また、マッピングタスクの詳細セッションプロパティで、入力文字列の形式に従って日付書式文字列セッションプロパティを設定する必要があります。
Amazon S3ステージングからエージェントマシンへのデータのダウンロード中の接続タイムアウトエラー
Amazon S3に接続する際のネットワークパフォーマンスと信頼性の問題により、応答時間の低下、接続の失敗、または要求エラーが発生する可能性があります。
これらの問題は、最大同時接続数、接続タイムアウト、ソケットタイムアウト、取得タイムアウト、および再試行設定など、クライアント側の接続管理パラメータの設定が最適でないことが原因である可能性があります。
これらの問題を解決するには、Secure Agentに次のプロパティを設定します。
- •-DAWSS3MaxConnectionPool。Amazon S3クライアントが維持できる同時HTTP接続の最大数。デフォルト値は500です。
- •-DAWSS3ConnectionTimeOut。Amazon S3への接続を確立するためのタイムアウト期間(ミリ秒単位)。デフォルト値は1200000ミリ秒です。
- •-DAWSS3SocketTimeOut。確立された接続からデータを読み取るためのタイムアウト期間(ミリ秒単位)。デフォルト値は600000ミリ秒です。
- •-DAWSS3AcquisitionTimeOut。接続プールから接続を取得するまでのタイムアウト期間(ミリ秒単位)。デフォルト値は180000ミリ秒です。
- •-DAWSMaxRetries。接続の再試行の最大回数。
次のタスクを実行して、Secure AgentのJVMオプションを設定します。
- 1[Administrator] > [ランタイム環境]をクリックします。
- 2[ランタイム環境]ページで、Secure Agentを選択します。
- 3[編集]をクリックします。
- 4[システム構成の詳細]セクションで、[データ統合サーバー]に[サービス]を選択し、[タイプ]に[DTM]を選択します。
- 5次のJVMオプションを編集および設定します。
JVMオプション | 値 |
|---|
JVMOption1 | -DAWSS3MaxConnectionPool=<接続数> |
JVMOption2 | -DAWSS3ConnectionTimeOut=<ミリ秒単位の期間> |
JVMOption3 | -DAWSS3SocketTimeOut=<ミリ秒単位の期間> |
JVMOption4 | -DAWSS3AcquisitionTimeOut=<ミリ秒単位の期間> |
JVMOption5 | -DAWSMaxRetries=<再試行回数> |
- 6[保存]をクリックします。