パーティションテーブルで Amazon Athena のクエリを実行すると、「HIVE_PARTITION_SCHEMA_MISMATCH」というエラーが表示されてクエリが失敗します。
簡単な説明
「HIVE_PARTITION_SCHEMA_MISMATCH」エラーは次のシナリオで発生することがあります。
- パーティションのテーブルスキーマとテーブルスキーマ間に互換性がない。
- テーブルのデータ形式で、試した種類の更新が許可されていない。
詳細については、「パーティションがあるテーブルを更新する」を参照してください。
解決策
パーティションスキーマを更新するように AWS Glue クローラを設定する
AWS Glue クローラを使用してテーブルを作成した場合は、パーティションスキーマを更新するように AWS Glue クローラを設定します。
次の手順を実行します。
- AWS Glue コンソールを開きます。
- ナビゲーションペインで、[クローラ] を選択します。
- 設定するクローラを選択します。
- [アクション] を選択し、[クローラの編集] を選択します。
- [次へ] を選択し、[クローラの出力の選択] ページに移動するまで [次へ] を選択し続けます。
- [設定オプション] を展開します。
- [すべての新規パーティションと既存パーティションをテーブルのメタデータで更新] を選択します。
- [次へ] 、[完了] の順に選択してクローラの設定を保存します。
- [クローラ] ページで、クローラを選択します。
- [クローラの実行] を選択します。クローラを実行すると、パーティションがテーブルスキーマを継承します。
Athena DDL ステートメントを使用して影響を受けたパーティションを削除し、そのパーティションを再作成する
テーブルを手動で作成した場合は、Athena データ定義言語 (DDL) ステートメントを使用して影響を受けたパーティションを削除し、そのパーティションを再作成します。
次の手順を実行します。
- Amazon Athena コンソールを開きます。
- [クエリエディタ] タブで、ALTER TABLE DROP PARTITION コマンドを実行して、影響を受けたパーティションを削除します。
- ALTER TABLE ADD PARTITION コマンドを実行して、削除したパーティションを再作成します。
**注:**テーブルで Hive 互換パーティションを使用している場合は、MSCK REPAIR TABLE コマンドを実行して、削除したパーティションを再作成できます。
関連情報
Syncing partition schema to avoid "HIVE_PARTITION_SCHEMA_MISMATCH"
Setting crawler configuration options