當我在 Amazon Athena 執行查詢時,收到「無法建立輸入格式」的錯誤訊息。
解決方法
此錯誤有多種原因。以下是一些常見的案例和解決方法:
AWS Glue 爬蟲程式無法對資料格式進行分類
- 資料儲存在 Amazon Simple Storage Service (Amazon S3) 中。
- 您可以使用內建的分類器執行 AWS Glue 爬蟲程式,以偵測資料表結構描述。爬行程式會傳回UNKNOWN的分類。至少偵測到一個資料行,但結構描述不正確。
- 當您從 Athena 查詢資料表時,查詢失敗,並顯示錯誤訊息「HIVE_UNKNOWN_ERROR: 無法建立輸入格式」。
若要解決此錯誤,請使用內建分類器支援的資料類型。如果無法使用內建分類器對資料格式進行分類,請考慮使用自訂分類器。
Athena 不支援此資料格式
- 資料存放在 Amazon S3 中。
- 您執行爬蟲程式來建立資料表。爬蟲程式會以 Athena 不支援的格式 (例如 ion 或 xml) 來分類資料表。
- 當您從 Athena 查詢資料表時,查詢失敗,並顯示錯誤訊息「HIVE_UNKNOWN_ERROR: 無法建立輸入格式」。
若要解決此錯誤,請使用 Athena 支援的資料格式。
一或多個 AWS Glue 資料表定義屬性為空白
- AWS Glue 表格不是使用 Athena 或 AWS Glue 爬行程式建立。該資料表是使用任何其他方法建立。例如,資料表是在 AWS Glue 主控台上手動建立。
- 當您從 Athena 查詢資料表時,查詢失敗,並顯示錯誤訊息「HIVE_UNKNOWN_ERROR: 無法建立輸入格式」。
這是因為 AWS Glue 資料表定義中有一或多個下列屬性為空白:
確認已針對 SerDe 和資料格式正確設定這些屬性。請記住,您指定的 SerDe 會定義資料表結構描述。當您建立資料表時,SerDe 可以覆寫您在 Athena 中指定的 DDL 組態。
若要更新資料表定義屬性,請執行下列動作:
- 開啟 AWS Glue 主控台。
- 選取您要更新的資料表。
- 選擇動作,然後選擇檢視詳情。
- 選擇編輯資料表。
- 更新輸入格式、輸出格式或 Serde 名稱的設定。
- 選擇套用。
Athena 查詢中的資料來源不受支援
只有當資料表儲存在 Amazon S3 時,Athena 才支援查詢資料表。如果您查詢 Athena 不支援的資料來源,可能會收到「無法建立輸入格式」的錯誤訊息。
若要解決此錯誤,請使用 Athena 查詢聯合 SDK。SDK 可讓您使用自己的程式碼自訂 Athena。使用 Athena 聯合 SDK,您可以整合不同資料來源和專屬資料格式。您也可以建立新的使用者定義函數。如需詳細資訊,請參閱使用 Amazon Athena 的新聯合查詢來查詢任何資料來源。
相關資訊
將分類器新增至爬蟲程式
使用 SerDe