View a markdown version of this page

直播桌的冰山行为 - Amazon Kinesis Data Streams

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

直播桌的冰山行为

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

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

流式表将 JSON 架构类型从架 AWS Glue 构注册表映射到 Apache Iceberg 类型,如下所示:

架构注册表到 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 十进制,精度源自 multipleOF。
number(普通) double IEEE 754 双精度浮点运算。
boolean boolean 对还是错。
object带有命名属性 struct 命名字段映射到结构字段。
object 与 additionalProperties map Key-value 使用字符串键进行地图。
array list 元素的有序集合。
enum string 枚举值存储为字符串。

必填列

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

分区键列

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

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

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

现场处理

流式表按如下方式处理传入记录与 Iceberg 表架构之间的不匹配:

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

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

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

嵌套限制

流媒体表支持复杂类型(结构、地图和列表)的最大嵌套深度为 16 级。超过 16 个嵌套级别的架构在交付创建时会被拒绝。

托管表的属性

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

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

S3 表类数据存储服务维护

在由 S3 Tables 支持的 Apache Iceberg 上传输到流媒体表时,将自动处理以下维护操作:

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

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

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

记录到期

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

格式规范

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

  • 冰山格式版本 — v2

  • 冰山规格版本 — 1.9.0

  • 文件格式 — Apache Parquet