Amazon 離子蜂巢 SerDe - Amazon Athena

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

Amazon 離子蜂巢 SerDe

您可以使用 Amazon 離子蜂巢 SerDe 查詢存儲在 Amazon 離子格式的數據。Amazon Ion 是一種豐富類型、自行描述、開放原始碼資料格式。Amazon 離子格式被服務,如 Amazon Quantum 賬本數據庫(AmazonQLDB)和開源SQL查詢語言 PartiQL 使用。

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

要查詢來自 Athena 的 Amazon 離子數據,您可以使用 Amazon 離子蜂巢 SerDe序列化和反序列化 Amazon 離子數據。反序列化允許您在 Amazon Ion 數據上運行查詢或讀取它以寫出成不同的格式,如實木複合地板或. ORC 序列化可讓您使用 CREATE TABLE AS SELECT (CTAS) 或INSERT INTO查詢從現有資料表複製資料,以 Amazon Ion 格式產生資料。

注意

由於 Amazon Ion 是的超集合JSON,因此您可以使用 Amazon 離子蜂巢 SerDe 查詢非 Amazon 離子JSON資料集。與其他JSON SerDe庫不同,Amazon Ion SerDe 不希望每行數據都位於一行中。如果您要查詢「漂亮打印」格式的JSON數據集,或者以其他方式將字段與換行符分解,則此功能非常有用。

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

序列化程式庫名稱

Amazon 離子的序列化庫名稱 SerDe 是com.amazon.ionhiveserde.IonHiveSerDe。有關源代碼信息,請參閱 GitHub .com SerDe 上的 Amazon 離子蜂巢

考量與限制

  • 重複的欄位 – 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 料類型。