スキップしてコンテンツを表示

Athena で "Query timeout" エラーを解決する方法を教えてください。

所要時間1分
0

Amazon Athena でクエリを実行すると失敗し、"Query timeout" エラーが表示されます。

解決策

Athena クエリは DML クエリのタイムアウトクォータを超えるとタイムアウトエラーで失敗します。エラーを解決するには、次の解決策を使用してください。

Athena からのクエリランタイムを短縮または増加する

Athena から Quick Sight SPICE にデータをインポートするときの "query timeout" エラーを解決する方法を教えてください」の手順に従ってください。

Athena クエリタイムアウトの通知を設定する

タイムアウトして失敗したクエリの通知を受け取るには、Amazon CloudWatch イベントルールを使用してイベントをキャプチャします。次に、Amazon Simple Notification Service (Amazon SNS) を使用して通知を設定します。

Amazon S3 アクセスログをクエリする

Amazon Simple Storage Service (Amazon S3) アクセスログのクエリを実行してクエリがタイムアウトした場合は、AWS Glue ETL ジョブを使用して Amazon S3 データをパーティション分割します。次に、一部のパーティションのみで Athena のクエリを実行します。手順については、「分割 Amazon S3 アクセスログを使用して Athena クエリのタイムアウトを防ぐ方法を教えてください」を参照してください。

CloudTrail データをクエリする

Athena を使用して AWS CloudTrail データをクエリする場合、クエリの実行に時間がかかったり、タイムアウトしたりすることがあります。これは、CloudTrail テーブルを分割してクエリの実行時間を短縮した場合でも、CloudTrail ログのサイズが時間の経過とともに大きくなるためです。

パーティションプロジェクションを使用して CloudTrail テーブルを手動で作成します。これにより、Athena は CloudTrail テーブルの値を動的に計算できるため、クエリの実行時間を短縮できます。パーティション射影では、構成からパーティションの値と場所が計算されるため、手動でパーティションを管理する必要がなくなります。

CTAS クエリを使用する

クエリのパフォーマンスを向上させるには、CREATE TABLE AS SELECT (CTAS) クエリを使用して、別のクエリの SELECT ステートメントの結果から新しいテーブルを Athena に作成します。CTAS はクエリ結果からテーブルを 1 ステップで作成し、未加工のデータセットを使いやすくします。また、CTAS クエリではクエリのパフォーマンスが向上するため、クエリコストを削減できます。例については、「CTAS クエリの例」を参照してください。

EXPLAIN および EXPLAIN ANALYZE ステートメントを使用する

Athena で複雑なクエリを行うには、EXPLAIN および EXPLAIN ANALYZE を使用します。EXPLAIN ステートメントは SQL ステートメントを絞り込み、パーティションプルーニングを検証してクエリを最適化します。EXPLAIN ステートメントと EXPLAIN ANALYZE ステートメントの考慮事項と制限事項を確認することがベストプラクティスです。

詳細については、「EXPLAIN での例」と「EXPLAIN ANALYZE での例」を参照してください。

関連情報

Top 10 performance tuning tips for Amazon Athena (Amazon Athena のパフォーマンスチューニングに関するトップ 10 のヒント)

Amazon Athena でのクエリの結果を別のクエリで使用する方法を教えてください

AWS公式更新しました 9ヶ月前
コメントはありません