Amazon Athena でサービスクォータエラーを解決したいです。
簡単な説明
サービスクォータエラーが原因で Athena でのクエリが失敗すると、以下のエラーレスポンスのいずれかが表示されることがあります。
- TooManyRequestsException
- ThrottlingException
- Query Timeout
- QueryString の失敗
さまざまな AWS リージョンにおける Athena エンドポイントとクォータのデフォルト値を確認するには、「サービスクォータ」を参照してください。
解決策
注: 始める前に、現在の Athena クォータを確認してください。
TooManyRequestsException
DML または DDL クエリクォータには、実行中のクエリとキューされたクエリが含まれます。DML または DDL クエリに指定されている制限を超える数のクエリを送信すると、TooManyRequestsException エラーレスポンスが発生します。Athena の一般的な DDL クエリには、ALTER TABLE ADD PARTITION、CREATE TABLE,、DROP などがあります。Athena の一般的な DML クエリには、SELECT、CREATE TABLE AS (CTAS)、INSERT INTO などがあります。
現在のキューを確認するには、次のいずれかの方法をとります。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
注: クエリの同時実行数を増やすと、送信できるクエリ数は増えますが、クエリ用のリソースは増えません。クエリを実行するためのリソースが Athena で利用可能になるまで、クエリはキュー状態に留まります。
このエラーを解決するには、Athena のプロビジョニングされたキャパシティを使用してクエリの同時実行性を高め、そのキャパシティにアクセスするワークロードを管理し、ワークロード間でキャパシティを共有します。詳細については、「クエリ処理能力を管理する」を参照してください。キャパシティ予約料金の詳細については、「Amazon Athena 料金表」を参照してください。
詳細なトラブルシューティングについては、「Amazon Athena で TooManyRequestsException エラーを解決する方法を教えてください」を参照してください。
ThrottlingException
Athena には AWS アカウントごとの API コールクォータがあります。API クォータを超えると、次のようなエラーメッセージが表示されます。
「ClientError: <API_name> 操作の呼び出しでエラーが発生しました (ThrottlingException): レートを超過しました。」
このエラーを解決するには、API 呼び出しの頻度を減らし、再試行ロジックを使用します。詳細については、「ワークロードの API スロットリングを管理し、監視する」の再試行ロジックセクションを参照してください。
クエリタイムアウト
クエリが事前定義された時間制限を超えると、タイムアウトが発生します。DML クエリの場合、事前定義された時間制限は 30 分です。このエラーを解決するには、「Athena でクエリタイムアウトエラーを解決する方法を教えてください」をご覧ください。
QueryString の失敗
Athena では、クエリ文字列の最大長は 262,144 バイト (B) であり、そのクォータを調整することはできません。クエリ文字列の失敗を防ぐには、長いクエリを小さなクエリに分割します。詳細については、「Amazon Athena でクエリ文字列の最大長を増やす方法を教えてください」を参照してください。