跳至內容

如何解決 Athena 中的「unable to create input format」錯誤?

2 分的閱讀內容
0

當我在 Amazon Athena 中執行查詢時,出現「unable to create input format」錯誤。

簡短說明

發生「unable to create input format」錯誤的原因如下:

  • 您在 Athena 查詢中的資料來源不受支援
  • Athena 不支援該資料格式
  • AWS Glue 編目程式無法分類資料格式
  • 一或多個 AWS Glue 資料表定義屬性為空

解決方法

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

Athena 只能查詢儲存在 Amazon Simple Storage Service (Amazon S3) 中的資料表。如果您查詢未儲存在 S3 中的資料來源,就會收到「unable to create input format」錯誤。

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

Athena 不支援該資料格式

您可以執行 AWS Glue 編目程式,從 S3 中的檔案在 Athena 建立資料表,但 Athena 不支援部分檔案類型。例如,Athena 不支援 .ion 或 .xml 等檔案類型。

如果您在 Athena 中從不支援的檔案類型查詢資料表,就會收到「HIVE_UNKNOWN_ERROR: Unable to create input format」錯誤。若要解決此錯誤,請使用 Athena 支援的資料格式。

AWS Glue 編目程式無法分類資料格式

如果您的 AWS Glue 編目程式無法從資料表結構描述辨識欄資料類型,編目程式會將該欄分類為未知。當您查詢包含 未知資料類型欄的 Athena 資料表時,就會收到「HIVE_UNKNOWN_ERROR:Unable to create input format」錯誤。當您為 Glue 編目程式使用的內建分類器無法辨識結構描述中的資料類型時,就會發生此分類錯誤。

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

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

當您在 Athena 中查詢未由 AWS Glue 建立的資料表時,也可能會收到輸入格式錯誤。例如,如果您在 AWS Glue 主控台上手動建立資料表,就可能發生錯誤。如果 AWS Glue 資料表定義中的下列任一屬性為空,您就會收到「HIVE_UNKNOWN_ERROR: Unable to create input format」錯誤:

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

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

若要更新資料表定義屬性,請完成下列步驟:

  1. 開啟 AWS Glue console (AWS Glue 主控台)。
  2. 選取您要更新的資料表。
  3. 選擇 Action (動作),然後選擇 View details (檢視詳細資訊)。
  4. 選擇 Edit table (編輯資料表)。
  5. 更新 Input format (輸入格式)、Output format (輸出格式) 或 Serde name (Serde 名稱) 的設定。
  6. 選擇 Apply (套用)。

相關資訊

定義與管理分類器

使用 SerDes

連線至資料來源

使用 Amazon Athena 聯合查詢

AWS 官方已更新 2 年前