Amazon Ion Hive SerDe - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon Ion Hive SerDe

您可以使用 Amazon Ion Hive SerDe 來查詢以 Amazon Ion 格式存放的資料。Amazon Ion 是一種豐富類型、自行描述、開放原始碼資料格式。Amazon Ion 格式由 Amazon Quantum Ledger Database (Amazon QLDB) 等服務和開放原始碼 SQL 查詢語言 PartiQL 使用。

Amazon Ion 具有可互換的二進位格式和文字格式。此功能結合了文字的易用性和二進位編碼的效率。

要從 Athena 查詢 Amazon Ion 資料,您可以使用 Amazon Ion Hive SerDe,且其可將 Amazon Ion 資料序列化和還原序列化。還原序列化允許您對 Amazon Ion 資料執行查詢,或讀取資料以便寫出至 Parquet 或 ORC 等不同格式。藉助序列化,您可以透過使用 CREATE TABLE AS SELECT (CTAS) 或 INSERT INTO 查詢從現有資料表中複製資料,以產生 Amazon Ion 格式的資料。

注意

由於 Amazon Ion 是 JSON 的超集,因此您可以使用 Amazon Ion Hive SerDe 來查詢非 Amazon Ion JSON 資料集。與其他 JSON SerDe 程式庫不同,Amazon Ion SerDe 不期望每一資料列都位於單獨一行上。如果您想查詢使用「美化顯示」格式的 JSON 資料集,或以其他方式用新行字元分解資料列中的欄位,則此功能非常有用。

如需使用 Athena 查詢 Amazon Ion 的其他資訊和範例,請參閱使用 Amazon Athena 分析 Amazon Ion 資料集

SerDe 名稱

考量與限制

  • 重複的欄位 – Amazon Ion 結構井然有序並支援重複的欄位,而 Hive 的 STRUCT<>MAP<> 並非如此。因此,當您從 Amazon Ion 結構中將重複的欄位還原序列化時,將非確定性地選擇一個值,而忽略其他值。

  • 不支援外部符號資料表 – 目前,Athena 不支援外部符號資料表或以下 Amazon Ion Hive SerDe 屬性:

    • ion.catalog.class

    • ion.catalog.file

    • ion.catalog.url

    • ion.symbol_table_imports

  • 檔案副檔名 – Amazon Ion 使用檔案副檔名來確定用於還原序列化 Amazon Ion 檔案的壓縮轉碼器。因此,壓縮檔案必須具有與所使用的壓縮演算法相對應的檔案副檔名。例如,如果使用 ZSTD,則相應的檔案應該具有副檔名 .zst

  • 同質資料– Amazon Ion 對可用於特定欄位中的值的資料類型沒有限制。例如,兩個不同的 Amazon Ion 文件可能包含一個具有不同資料類型及相同名稱的欄位。但是,由於 Hive 使用結構描述,所以擷取到單一 Hive 資料欄的所有值都必須具有相同的資料類型。

  • 映射金鑰類型限制 – 將其他格式的資料序列化為 Amazon Ion 時,請確認映射金鑰類型是 STRINGVARCHARCHAR。雖然 Hive 允許您使用任何基本資料類型作為映射金鑰,但 Amazon Ion 符號必須是字串類型。

  • Union 類型 – Athena 目前不支援 Hive Union 類型

  • 雙精確度資料類型 – Amazon Ion 目前不支援資 double 料類型。