MSCK REPAIR TABLE クエリで AWS Glue データカタログにパーティションが追加されないのはなぜですか?

所要時間1分
0

MSCK REPAIR TABLE を実行すると、Amazon Athena はパーティションのリストを返しますが、AWS Glue データカタログのテーブルにパーティションを追加できません。

簡単な説明

このエラーの一般的な動作は次のとおりです。

  • AWS Identity and Access Management (IAM) ユーザーまたはロールに glue:BatchCreatePartition アクションを許可するポリシーがありません。
  • Amazon Simple Storage Service (Amazon S3) のパスは、小文字ではなくキャメルケースです (例: userid ではなく userId)。

解決方法

IAM ポリシーで glue:BatchCreatePartition を許可します。

MSCK REPAIR TABLE を実行するのに使用しているユーザーまたはロールにアタッチされた IAM ポリシーを確認します。Athena で AWS Glue データカタログを使用する場合、IAM ポリシーにより glue:BatchCreatePartition アクションが許可される必要があります。ポリシーがそのアクションを許可しない場合、Athena はメタストアにパーティションを追加できません。glue:BatchCreatePartition アクションを許可する IAM ポリシーの例については、「AmazonAthenaFullAccess マネージドポリシー」を参照してください。

Amazon S3 パスを小文字に変更する

Amazon S3 パス名は小文字にする必要があります。パスがキャメルケースの場合、MSCK REPAIR TABLE はパーティションを AWS Glue データカタログに追加しません。例えば、Amazon S3 パスが userId の場合、次のパーティションは AWS Glue データカタログに追加されません。

  • s3://awsdoc-example-bucket/path/userId=1/
  • s3://awsdoc-example-bucket/path/userId=2/
  • s3://awsdoc-example-bucket/path/userId=3/

この問題を解決するには、キャメルケースの代わりに小文字を使用します。

  • s3://awsdoc-example-bucket/path/userid=1/
  • s3://awsdoc-example-bucket/path/userid=2/
  • s3://awsdoc-example-bucket/path/userid=3/

関連情報

Partitioning data in Athena (Athena でのデータのパーティショニング)

Amazon Athena のアクション、リソース、および条件キー

AWS Glue のアクション、リソース、および条件キー

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ