當我在分割的表格上執行 Amazon Athena 查詢時,查詢失敗,並顯示錯誤「HIVE_PARTITION_SCHEMA_MISMATCH」。
簡短描述
當您在 Athena 分割表上執行查詢時,Athena 會驗證 AWS Glue Data Catalog 中的表格架構及其分割區的架構。驗證會依序比較欄資料類型,並確定欄資料類型與重疊的欄相符。新分割區通常會繼承關聯表格的架構。但是,某些情況可能會導致架構隨著時間的推移而不同。當分割架構中欄的資料類型與表格架構中對應的欄資料類型不相符時,您的查詢會失敗,並顯示錯誤「HIVE_PARTITION_SCHEMA_MISMATCH」。
您可以使用下列其中一種方法來解決此錯誤:
- 如果您使用 AWS Glue 爬蟲程式建立表格,請設定 AWS Glue 爬蟲程式以更新分割區架構。
- 如果您是手動建立表格,請使用 Athena 資料定義語言 (DDL) 語句卸除受影響的分割區,然後重新建立分割區。
解決方法
設定 AWS Glue 爬蟲程式以更新分割區架構
- 開啟 AWS Glue 主控台。
- 在導覽窗格中,選擇爬蟲程式。
- 選取您要設定的爬蟲程式。
- 選擇動作,然後選擇編輯爬蟲程式。
- 選擇下一步,直到您瀏覽至選擇爬蟲程式的輸出頁面。
- 展開組態選項。
- 選取使用表格中的中繼資料更新所有新的和現有分割區。
- 選擇下一步,然後選擇完成以儲存爬蟲程式組態。
- 在爬蟲程式頁面上,選取您編輯的爬蟲程式。
- 選擇執行爬蟲程式。在執行爬蟲程式時,分割區會繼承表格架構。
使用 Athena DDL 語句卸除受影響的分割區,並重新建立卸除的分割區
- 開啟 Amazon Athena 主控台。
- 在查詢編輯器標籤上,執行 ALTER TABLE DROP PARTITION 命令以卸除受影響的分割區。
- 執行 ALTER TABLE ADD PARTITION 命令,以重新建立卸除的分割區。
**注意:**如果您的表格使用與 HIVE 相容的分割區,您可以執行 MSCK REPAIR TABLE 命令來重新建立卸除的分割區。
相關資訊
同步分割區模式以避免「HIVE_PARTITION_SCHEMA_MISMATCH」
在 AWS Glue 主控台上設定爬蟲程式組態選項