View a markdown version of this page

直播桌的冰山行为 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

直播桌的冰山行为

使用本主题了解流表如何将 Amazon Glue 架构注册表架构中的数据映射到 Apache Iceberg 表,包括类型映射、字段处理、表维护和格式规范。

Amazon Glue 架构注册表到 Iceberg 类型的映射

流式传输表将 JSON 架构类型从 Amazon Glue 架构注册表映射到 Apache Iceberg 类型,如下表所示。

JSON 架构类型 Iceberg 类型 注意
string(纯色) string 默认字符串映射。
string带格式 date-time timestamptz 带时区的时间戳。
string带格式 date date 日历日期。
string带格式 time time 一天中的时间。
string带格式 uuid uuid 通用唯一标识符。
string使用编码byte或 base64 binary 编码为 base64 的二进制数据。
integer(32 位或更低) int 最大值或不包含最大值 <= 2^31 的值。
integer(大于 32 位) long 超过 32 位范围的值。
number 与 multipleOf decimal Fixed-point 十进制,精度源自 multipeOf。
number(纯色) double IEEE 754 双精度浮点数。
boolean boolean 对还是错。
object带有命名属性 struct 命名字段映射到结构字段。
object 与 additionalProperties map Key-value 使用字符串键进行映射。
array list 元素的有序集合。
enum string 存储为字符串的枚举值。

必填列

JSON 架构required数组中列出的字段变为 Iceberg 表中的必填列(不可为空)。如果记录中缺少必填字段,则该记录将被发送到死信队列。

分区键列

您的表必须包含一timestamptz列,该列可用于按小时进行基于时间的分区(TIME_HOUR转换)。在 Amazon Glue Schema Registry 架构中,这是一个date-time格式为的string字段,它映射到 Iceberg timestamptz 类型。

无论分区引用的源列是否出现在架构的数组中,它都会自动标记为必填required列。缺少分区键值的记录将发送到死信队列。

您可以根据表的分区列启用 Amazon S3 表记录过期任务。有关更多信息,请参阅 记录到期。

现场处理

流式传输表处理传入记录与 Iceberg 表架构之间的不匹配情况,如下所示:

  • 额外字段 — 记录中存在但未在架构中定义的字段将被删除且不会写入 Iceberg 表。

  • 缺少可选字段-记录中不存在的可选字段按照 Iceberg 表null中的方式写入。

  • 缺少必填字段-如果记录中缺少必填字段,则整个记录将发送到死信队列。

嵌套限制

Streaming table 支持复杂类型(结构、映射和列表)的最大嵌套深度为 16 级。超过 16 个嵌套级别的架构将在交付创建时被拒绝。

托管表属性

流媒体表会自动管理 Iceberg 表的属性。这些属性是在创建表时设置的,不应在外部进行修改。Streaming table 使用这些属性来控制写入行为、压缩和元数据管理。

由于该表由 Amazon Kinesis Data Streams 管理,因此您不应更新其架构、修改其表属性或直接写入或删除其数据。您可以使用 Amazon 分析服务和任何兼容的 Apache Iceberg 查询引擎来查询该表。有关托管表存储桶的更多信息,请参阅 Amazon S3 用户指南中的使用 Amazon 托管表存储桶。

S3 表类数据存储服务维护

向由 S3 表支持的 Apache Iceberg 上的流式传输表时,将自动处理以下维护操作:

  • 压缩 — 定期将小型数据文件压缩成较大的文件,以提高查询性能并减少元数据开销。

  • 快照过期 — 清理过期的快照以回收元数据存储空间并减小表元数据大小。

  • 未引用的文件清理-删除任何快照都不再引用的孤立数据文件以回收存储空间。

记录到期

您可以为 Iceberg 表配置记录到期时间。启用后,Amazon S3 表会在维护操作期间根据表的timestamptz分区列自动删除早于指定保留期的记录。有关更多信息,请参阅 Amazon S3 用户指南中的管理 Amazon S3 表记录到期时间。

格式规范

直播表对 Iceberg 表使用以下格式规范:

  • Iceberg 格式版本 — v 2

  • 冰山规格版本 — 1.9. 0

  • 文件格式 — Apache 实木复合地板