Amazon Ion Hive SerDe - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Ion Hive SerDe

您可以使用 Amazon Ion Hive SerDe 查询以 Amazon Ion 格式存储的数据。Amazon Ion 是一种类型丰富、自描述的开源数据格式。Amazon Quantum Ledger Database(Amazon QLDB)等服务和开源 SQL 查询语言 PartiQL 使用Amazon Ion 格式。

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 时,请确保映射密钥类型为 STRINGVARCHAR 或者 CHAR。尽管 Hive 允许您使用任何原始数据类型作为映射密钥,Amazon Ion 符号必须是字符串类型。

  • 联合类型 – Athena 目前不支持 Hive 联合类型

  • 双精度数据类型 – Amazon Ion 目前不支持 double 数据类型。