MSCK REPAIR TABLE コマンドの実行に時間がかかるのはなぜですか?

最終更新日: 2021 年 6 月 8 日

MSCK REPAIR TABLE コマンドを実行すると、結果が表示されるまでに長い時間が経過します。

- または -

MSCK REPAIR TABLE コマンドを実行すると、クエリがタイムアウトします。

解決方法

このエラーは、MSCK REPAIR TABLE コマンドの実行時に、Amazon Athena が Amazon Simple Storage Service (Amazon S3) 内のプレフィックスとオブジェクトを再帰的にリストすることから発生します。Amazon S3 のプレフィックスまたはオブジェクトが多すぎると、コマンドの完了に時間がかかる、またはタイムアウトする場合があります。

このエラーを解決するには、以下のいずれかを実行します。

  • AWS Glue クローラーを使用して、Athena テーブルにパーティションを追加します。詳細については、クローラーの動作を参照してください。AWS Glue クローラーを使用することにより、Amazon S3 のプレフィックスが多い場合でも、パーティションのロードにかかる時間を短縮できます。詳細については、 AWS Glue の増分クロール を参照してください。
  • ALTER TABLE ADD PARTITION コマンドを使用して、テーブルにパーティションを追加します。

パーティションが予想可能なパターンに従っている場合は、パーティションプロジェクションの使用を検討してください。Athena は、パーティションを AWS Glue データカタログに追加したり、データカタログからそれらを取得したりする必要なく、メモリ内にパーティションを生成します。このため、細かくパーティション化されたテーブルに対するクエリの処理時間が短縮される可能性があります。