

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# データロードのトラブルシューティング
<a name="t_Troubleshooting_load_errors"></a>

Amazon Redshift のテーブルにデータをロードすると、Amazon S3 からのエラー、無効な入力データ、COPY コマンドエラーが発生する可能性があります。以下のセクションでは、データロードエラーの特定と解決に関する情報を提供します。

**Topics**
+ [S3 イベント統合と COPY JOB のエラーのトラブルシューティング](s3-integration-troubleshooting.md)
+ [S3ServiceException エラー](s3serviceexception-error.md)
+ [データロードをトラブルシューティングするためのシステムテーブル](system-tables-for-troubleshooting-data-loads.md)
+ [マルチバイト文字のロードエラー](multi-byte-character-load-errors.md)
+ [ロードエラー参照](r_Load_Error_Reference.md)

# S3 イベント統合と COPY JOB のエラーのトラブルシューティング
<a name="s3-integration-troubleshooting"></a>

以下の情報を参考にして、Amazon S3 イベント統合や COPY JOB に関して Amazon Redshift でよく起きる問題をトラブルシューティングしてください。

## S3 イベント統合の作成に失敗する
<a name="s3-integration-troubleshooting-creation"></a>

S3 イベント統合の作成が失敗すると、その統合のステータスは `Inactive` になります。Amazon Redshift データウェアハウスに関して、以下の点が正しいことを確認してください。
+ Amazon Redshift のターゲット名前空間に適した認証済みプリンシパルと統合ソースを追加している。「[S3 イベント統合を作成するための前提条件](loading-data-copy-job.md#loading-data-copy-job-prerequisites)」を参照してください。
+ 正しいリソースベースのポリシーをソースの Amazon S3 バケットに追加している。「[S3 イベント統合を作成するための前提条件](loading-data-copy-job.md#loading-data-copy-job-prerequisites)」を参照してください。

## Amazon S3 のデータがターゲットデータベースに表示されない
<a name="s3-integration-troubleshooting-missing-data"></a>

COPY JOB からのデータが表示されない場合は、以下の点を確認してください。
+ SYS\$1COPY\$1JOB\$1DETAIL をクエリして、Amazon S3 ファイルがロードされているか、取り込みが保留中か、またはエラーが起きているかどうかを確認します。詳細については、「[SYS\$1COPY\$1JOB\$1DETAIL](SYS_COPY_JOB_DETAIL.md)」を参照してください。
+ Amazon S3 ファイルが見つからない場合や、想定外の待ち時間が生じている場合は、STL\$1ERROR または SYS\$1COPY\$1JOB\$1INFO を確認します。認証情報エラーや、統合が無効になっていることを示唆する情報が記録されていないか調べてください。詳細については、「[STL\$1ERROR](r_STL_ERROR.md)」および「[SYS\$1COPY\$1JOB\$1INFO](SYS_COPY_JOB_INFO.md)」を参照してください。

# S3ServiceException エラー
<a name="s3serviceexception-error"></a>

最も一般的な s3ServiceException エラーは、異なる AWS リージョンに存在するクラスターやバケットを指定していたり、不十分な Amazon S3 のアクセス許可が記述されていたりする、形式が不適切か不正確である認証情報文字列により引き起こされます。

このセクションでは、各種エラーのトラブルシューティング情報を提供します。

## 無効な認証情報文字列
<a name="invalid-credentials-string-error"></a>

認証情報文字列が不適切にフォーマットされた場合、次のエラーメッセージを受け取ります。

```
ERROR: Invalid credentials. Must be of the format: credentials 
'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>
[;token=<temporary-session-token>]'
```

認証情報文字列にスペースまたは改行が含まれておらず、一重引用符で囲まれていることを確認してください。

## 無効なアクセスキー ID
<a name="invalid-access-key-id-error"></a>

アクセスキー ID が存在しない場合、次のエラーメッセージが表示されます。

```
[Amazon](500310) Invalid operation: S3ServiceException:The AWS Access Key Id you provided does not exist in our records.
```

多くの場合、これはコピーと貼り付けのエラーです。アクセスキー ID を正しく入力したことを確認してください。また、一時的なセッションキーを使用している場合は、`token` の値が設定されていることを確認します。

## 無効なシークレットアクセスキー
<a name="invalid-secret-access-key-error"></a>

シークレットアクセスキーが正しくない場合、次のようなエラーメッセージを受け取ります。

```
[Amazon](500310) Invalid operation: S3ServiceException:The request signature we calculated does not match the signature you provided. 
Check your key and signing method.,Status 403,Error SignatureDoesNotMatch
```

多くの場合、これはコピーと貼り付けのエラーです。シークレットアクセスキーを正しく入力したこと、およびそれがアクセスキー ID 用の正しいキーであることを確認します。

## バケットが異なるリージョンにある
<a name="bucket-in-different-region"></a>

COPY コマンドに指定された Amazon S3 バケットはクラスターと同じ AWS リージョンに置かれている必要があります。Amazon S3 バケットとクラスターが異なるリージョンにある場合、次のようなエラーを受け取ります。

```
ERROR: S3ServiceException:The bucket you are attempting to access must be addressed using the specified endpoint.
```

Amazon S3 マネジメントコンソールを利用してバケットを作成するときにリージョンを選択するか、Amazon S3 API または CLI を利用してバケットを作成するときにエンドポイントを指定することで、特定のリージョンに Amazon S3 バケットを作成できます。詳細については、「[Amazon S3 にファイルをアップロードして COPY で使用する](t_uploading-data-to-S3.md)」を参照してください。

Amazon S3 リージョンの詳細については、*Amazon Simple Storage Service ユーザーガイド*の[バケットへのアクセス](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html#access-bucket-intro)を参照してください。

代わりに、COPY コマンドで [REGION](copy-parameters-data-source-s3.md#copy-region) オプションを使用してリージョンを指定できます。

## アクセスが拒否される
<a name="s3-access-denied-error"></a>

ユーザーに十分なアクセス許可がない場合、次のエラーメッセージを受け取ります。

```
ERROR: S3ServiceException:Access Denied,Status 403,Error AccessDenied
```

考えられる原因の 1 つは、認証情報によって特定されたユーザーが、Amazon S3 バケットへの LIST および GET アクセス権を持っていないことです。その他の原因については、*Amazon Simple Storage Service ユーザーガイド*の「[Amazon S3 でのアクセス拒否 (403 Forbidden) エラーのトラブルシューティング](https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshoot-403-errors.html)」を参照してください。

バケットへのユーザーアクセスの管理については、*Amazon Simple Storage Service ユーザーガイド*の「[Amazon S3 での Identity and Access Management](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)」を参照してください。

# データロードをトラブルシューティングするためのシステムテーブル
<a name="system-tables-for-troubleshooting-data-loads"></a>

以下の Amazon Redshift システムテーブルは、データのロードに関する問題のトラブルシューティングに役立ちます。
+ 特定のロード中に発生したエラーを見つけるには、[STL\$1LOAD\$1ERRORS](r_STL_LOAD_ERRORS.md) にクエリします。
+ 特定のファイルのロード時間を参照したり、特定のファイルが読み取られたかどうかを確認するには、[STL\$1FILE\$1SCAN](r_STL_FILE_SCAN.md) にクエリします。
+ [STL\$1S3CLIENT\$1ERROR](r_STL_S3CLIENT_ERROR.md) にクエリを実行し、Amazon S3 からのデータ転送時に発生したエラーの詳細を調べます。

**ロードエラーを検出し、診断するには、次の操作を実行します。**

1. ロードエラーに関する詳細を返すビューを作成するか、クエリを定義します。次の例では、STL\$1LOAD\$1ERRORS テーブルが STV\$1TBL\$1PERM テーブルと結合し、テーブル ID と実際のテーブル名が照合されます。

   ```
   create view loadview as
   (select distinct tbl, trim(name) as table_name, query, starttime,
   trim(filename) as input, line_number, colname, err_code,
   trim(err_reason) as reason
   from stl_load_errors sl, stv_tbl_perm sp
   where sl.tbl = sp.id);
   ```

1. COPY コマンドの MAXERRORS オプションを十分な大きさの値に設定し、データに関する役に立つ情報を COPY で返せるようにします。COPY でエラーが発生した場合、エラーメッセージにより STL\$1LOAD\$1ERRORS テーブルで詳細を確認するように指示されます。

1. LOADVIEW ビューにクエリし、エラー詳細を確認します。次に例を示します。

   ```
   select * from loadview where table_name='venue';
   ```

   ```
     tbl   | table_name | query |         starttime          
   --------+------------+-------+----------------------------
    100551 | venue      | 20974 | 2013-01-29 19:05:58.365391 
   
   |     input      | line_number | colname | err_code |       reason
   +----------------+-------------+---------+----------+--------------------
   | venue_pipe.txt |           1 |       0 |     1214 | Delimiter not found
   ```

1. ビューが返す情報に基づいて、入力ファイルまたはロードスクリプトの問題を修正します。注意するべき一般的なロードエラーには次のものがあります。
   + テーブルのデータ型と入力データフィールドの値の不一致。
   + テーブルの列数と入力データのフィールド数の不一致。
   + 引用符が一致しません。Amazon Redshift は、一重引用符と二重引用符の両方をサポートしています。ただし、これらの引用符は適切にバランスを取る必要があります。
   + 正しくない入力ファイルの日付/時刻形式。
   + 入力ファイルの値が範囲外 (数値列に関して)。
   + 列の値の数がその圧縮エンコーディングの制限を超えている。

# マルチバイト文字のロードエラー
<a name="multi-byte-character-load-errors"></a>

CHAR データ型の列はシングルバイト UTF-8 文字のみを最大 127 バイトまで、または 16 進数の 7F まで受け取ります。これは ASCII 文字セットでもあります。VARCHAR 列はマルチバイト UTF-8 文字を最大 4 バイトまで受け取ります。詳細については、「[文字型](r_Character_types.md)」を参照してください。

ロードデータの行に列のデータ型として有効でない文字が含まれる場合、COPY はエラーを返し、STL\$1LOAD\$1ERRORS システムログテーブルの行にエラー番号 1220 がログ記録されます。ERR\$1REASON フィールドには無効な文字のバイトシーケンスが 16 進数で含まれます。

ロードデータの無効な文字を修正する代替策は、ロードプロセス中に有効でない文字を置換することです。有効でない UTF-8 文字を置換するには、COPY コマンドに ACCEPTINVCHARS オプション付けて実行します。ACCEPTINVCHARS オプションが設定されている場合は、指定した文字がコードポイントに置き換わります。ACCEPTINVCHARS オプションが設定されていない場合、Amazon Redshift は有効な UTF-8 として文字を受け入れます。詳細については、「[ACCEPTINVCHARS](copy-parameters-data-conversion.md#acceptinvchars)」を参照してください。

次に、有効な UTF-8 で記述したコードポイントのリストを示します。ACCEPTINVCHARS オプションが設定されていない場合、COPY オペレーションはエラーを返しません。また、ここでのコードポイントは有効でない文字で記述されています。[ACCEPTINVCHARS](copy-parameters-data-conversion.md#acceptinvchars) オプションを使用すると、このコードポイントを指定したい文字に置き換えられます。これらのコードポイントには、`0xFDD0` から `0xFDEF` の範囲および 最大で `0x10FFFF` までの値が含まれ、末尾には `FFFE` または `FFFF` の値が付加されます。
+ `0xFFFE`, `0x1FFFE`, `0x2FFFE`, …, `0xFFFFE`, `0x10FFFE`
+ `0xFFFF`, `0x1FFFF`, `0x2FFFF`, …, `0xFFFFF`, `0x10FFFF`

次の例は、COPY により UTF-8 文字の `e0 a1 c7a4` を CHAR 列にロードしようとして発生する、エラーの理由を示しています。

```
Multibyte character not supported for CHAR 
(Hint: Try using  VARCHAR). Invalid char: e0 a1 c7a4
```

エラーが VARCHAR データ型に関連する場合、エラーの理由にはエラーコードと、有効でない UTF-8 16 進数シーケンスが含まれます。次の例では、COPY で UTF-8 `a4` を VARCHAR フィールドにロードしようとした際に発生する、エラーの理由を示しています。

```
String contains invalid or unsupported UTF-8 codepoints. 
Bad UTF-8 hex sequence: a4 (error 3)
```

次のテーブルには、VARCHAR ロードエラーの説明と回避策提案を記載しています。これらのエラーの 1 つが発生した場合、文字を有効な UTF-8 コードシーケンスで置換するか、文字を削除します。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/multi-byte-character-load-errors.html)

# ロードエラー参照
<a name="r_Load_Error_Reference"></a>

ファイルからデータをロードしている間にエラーが発生した場合、[STL\$1LOAD\$1ERRORS](r_STL_LOAD_ERRORS.md) テーブルにクエリしてエラーを特定し、考えられる説明を確認します。次のテーブルは、データロード中に発生する可能性があるすべてのエラーコードの一覧です。

## ロードエラーコード
<a name="r_Load_Error_Reference-load-error-codes"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_Load_Error_Reference.html)