AWS Glue により、インクリメンタルクロール中にテーブルにパーティションが追加されない原因を教えてください。

所要時間1分
0

AWS Glue のインクリメンタルクロールを実行した後に、パーティションが欠けているのでトラブルシューティングしたいです。

簡単な説明

AWS Glue クローラーは、インクリメンタルクロールの実行時に、前回のクロール後にクローラーが追加したパーティションのみを識別します。パーティションを追加するには、パーティション内のファイルの 70% 以上において、スキーマがクローラーのテーブルと同じものである必要があります。

重要: AWS Glue クローラーは、以前にスキーマの不一致フラグが付けられたパーティションを追加することはできません。クローラーを実行する前に、新しいパーティションのすべてのプロパティが元のテーブルのプロパティと一致していることを確認することがベストプラクティスです。

解決策

クローラーの最後のクロールに対応する Amazon CloudWatch ログを開き、新しいパーティションの Amazon Simple Storage Service (Amazon S3) プレフィックスを検索します。新しいパーティションのスキーマと元のテーブルのスキーマが一致しない場合、Partition does not match table schema or has mismatch keys というメッセージが表示されます。

上記のエラーメッセージが表示された場合は、次のプロパティが新しいパーティションと元のテーブルで一致していることを確認してください。

  • 圧縮フォーマット
  • ファイルタイプ
  • ファイルスキーマ

新しいパーティションの S3 構造が元のテーブルの S3 構造と一致していることを確認してください。たとえば、元のテーブルの S3 構造が yyyy-mm-dd 日付形式を使用している場合は、新しいパーティションの S3 構造も yyyy-mm-dd 日付形式を使用する必要があります。プロパティが一致しない場合は、新しいパーティション内のファイルを変更し、元のテーブルと一致させます。

その後、Athena を使用して新しいパーティションをテーブルに追加します。Hive スタイルのパーティションでは、MSCK REPAIR TABLE コマンドを実行します。Hive スタイル以外のパーティションでは、ALTER TABLE ADD PARTITION コマンドを実行します。

AWS公式
AWS公式更新しました 3ヶ月前