本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon 離子蜂巢 SerDe
您可以使用 Amazon 離子蜂巢 SerDe 查詢存儲在 Amazon 離子
Amazon Ion 具有可互換的二進位格式和文字格式。此功能結合了文字的易用性和二進位編碼的效率。
要查詢來自 Athena 的 Amazon 離子數據,您可以使用 Amazon 離子蜂巢 SerDeCREATE 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 時,請確認映射金鑰類型是
STRING
、VARCHAR
或CHAR
。雖然 Hive 允許您使用任何基本資料類型作為映射金鑰,但 Amazon Ion 符號必須是字串類型。 -
Union 類型 – Athena 目前不支援 Hive Union 類型
。 -
雙精確度資料類型 – Amazon Ion 目前不支援資
double
料類型。