如何解決 Athena 中「無法建立輸入格式」的錯誤?

1 分的閱讀內容
0

當我在 Amazon Athena 執行查詢時,收到「無法建立輸入格式」的錯誤訊息。

解決方法

此錯誤有多種原因。以下是一些常見的案例和解決方法:

AWS Glue 爬蟲程式無法對資料格式進行分類

  • 資料儲存在 Amazon Simple Storage Service (Amazon S3) 中。
  • 您可以使用內建的分類器執行 AWS Glue 爬蟲程式,以偵測資料表結構描述。爬行程式會傳回UNKNOWN的分類。至少偵測到一個資料行,但結構描述不正確。
  • 當您從 Athena 查詢資料表時,查詢失敗,並顯示錯誤訊息「HIVE_UNKNOWN_ERROR: 無法建立輸入格式」。

若要解決此錯誤,請使用內建分類器支援的資料類型。如果無法使用內建分類器對資料格式進行分類,請考慮使用自訂分類器

Athena 不支援此資料格式

  • 資料存放在 Amazon S3 中。
  • 您執行爬蟲程式來建立資料表。爬蟲程式會以 Athena 不支援的格式 (例如 ionxml) 來分類資料表。
  • 當您從 Athena 查詢資料表時,查詢失敗,並顯示錯誤訊息「HIVE_UNKNOWN_ERROR: 無法建立輸入格式」。

若要解決此錯誤,請使用 Athena 支援的資料格式

一或多個 AWS Glue 資料表定義屬性為空白

  • AWS Glue 表格不是使用 Athena 或 AWS Glue 爬行程式建立。該資料表是使用任何其他方法建立。例如,資料表是在 AWS Glue 主控台上手動建立
  • 當您從 Athena 查詢資料表時,查詢失敗,並顯示錯誤訊息「HIVE_UNKNOWN_ERROR: 無法建立輸入格式」。

這是因為 AWS Glue 資料表定義中有一或多個下列屬性為空白:

  • 輸入格式
  • 輸出格式
  • Serde 名稱

確認已針對 SerDe 和資料格式正確設定這些屬性。請記住,您指定的 SerDe 會定義資料表結構描述。當您建立資料表時,SerDe 可以覆寫您在 Athena 中指定的 DDL 組態。

若要更新資料表定義屬性,請執行下列動作:

  1. 開啟 AWS Glue 主控台
  2. 選取您要更新的資料表。
  3. 選擇動作,然後選擇檢視詳情
  4. 選擇編輯資料表
  5. 更新輸入格式輸出格式Serde 名稱的設定。
  6. 選擇套用

Athena 查詢中的資料來源不受支援

只有當資料表儲存在 Amazon S3 時,Athena 才支援查詢資料表。如果您查詢 Athena 不支援的資料來源,可能會收到「無法建立輸入格式」的錯誤訊息。

若要解決此錯誤,請使用 Athena 查詢聯合 SDK。SDK 可讓您使用自己的程式碼自訂 Athena。使用 Athena 聯合 SDK,您可以整合不同資料來源和專屬資料格式。您也可以建立新的使用者定義函數。如需詳細資訊,請參閱使用 Amazon Athena 的新聯合查詢來查詢任何資料來源


相關資訊

將分類器新增至爬蟲程式

使用 SerDe

AWS 官方
AWS 官方已更新 3 年前