本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
直播桌的冰山行为
使用本主题了解流式表如何将数据从 AWS Glue 架构注册表架构映射到 Apache Iceberg 表,包括类型映射、字段处理、表维护和格式规范。
AWS Glue 架构注册表到 Iceberg 类型映射
流式表将 JSON 架构类型从架 AWS 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 十进制,精度源自 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