本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 Ion HiveSerDe
你可以使用亚马逊 Ion HiveSerDe查询存储在中的数据亚马逊 Ion
Amazon Ion 具有可互换的二进制格式和文本格式。此功能结合了文本的易用性和二进制编码的效率。
要从 Athena 查询 Athena 的亚马逊 Ion 数据,你可以使用亚马逊 Ion HiveSerDeCREATE TABLE AS
SELECT
(CTAS)或 INSERT INTO
查询从现有表中复制数据来生成 Amazon Ion 格式的数据。
注意
因为亚马逊 Ion 是 JSON 的超集,所以你可以使用亚马逊 Ion HiveSerDe查询非亚马逊 Ion JSON 数据集。不像其他JSONSerDe图书馆,亚马逊 IonSerDe不期望每行数据都在一行上。如果您想查询“漂亮打印”格式的 JSON 数据集,或以其他方式采用换行符将字段拆分为一行,则此功能非常有用。
有关使用 Athena 查询 Amazon Ion 的更多信息和示例,请参阅使用亚马逊 Athena 分析亚马逊 Ion 数据集
SerDe名称
注意事项和限制
-
重复的字段 – Amazon Ion 结构是有序的并支持重复字段,而 Hive
STRUCT<>
和MAP<>
不支持。因此,当您将 Amazon Ion 结构中的重复字段反序列化时,将不确定地选择单个值,而忽略其他值。 -
不支持外部符号表— 目前,Athena 不支持外部符号表或以下亚马逊 Ion HiveSerDe属性:
-
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 符号必须是字符串类型。 -
联合类型 – Athena 目前不支持 Hive 联合类型
。