Amazon S3 表格更智能:Intelligent-Tiering 与 Native Replication 解析
Source: Dev.to
Source: …
介绍
随着分析数据集的增长,组织面临两个长期存在的挑战:
- 存储成本上升 – 历史表数据的访问频率降低。
- 运营复杂性 – 在不同地区或 AWS 账户之间维护一致的 Apache Iceberg 表。
Amazon 最近通过为 Amazon S3 表引入 Intelligent‑Tiering 和 原生复制 来解决这两个问题。这些增强功能显著简化了分析工作负载的成本优化和全球数据访问——无需更改应用程序或构建自定义同步流水线。
Amazon S3 表为 Apache Iceberg 表提供了一种 托管存储抽象,直接位于 Amazon S3 中。一个表由以下组成:
- Parquet 数据文件
- Iceberg 元数据文件(快照、清单、模式演进)
S3 表消除了在大规模管理 Iceberg 元数据时通常会遇到的大量运营负担,同时仍与 Spark、Trino、DuckDB 和 PyIceberg 等支持 Iceberg 的查询引擎兼容。
在支持 Intelligent‑Tiering 和复制之前,团队经常面临以下困难:
- 手动生命周期规则以管理存储成本
- 为跨地区或跨账户使用场景构建的自定义复制流水线
- 为保持快照顺序和元数据一致性而编写的复杂逻辑
Source: …
功能 #1:S3 表的智能分层
它是什么
Intelligent‑Tiering for S3 Tables 会根据观察到的访问模式自动在访问层之间移动表数据,从而优化存储成本——对性能没有影响,也无需更改应用程序。
S3 表支持三种低延迟访问层:
| 层级 | 描述 | 与 Frequent Access 相比的成本降低 |
|---|---|---|
| Frequent Access(默认) | 热数据,立即访问 | – |
| Infrequent Access | 温数据,访问频率较低 | 约降低 40 % |
| Archive Instant Access | 冷数据,极少访问 | 比 Infrequent Access 低约 68 % |
对象会自动转换:
- 约 30 天未访问 → Infrequent Access
- 约 90 天未访问 → Archive Instant Access
AWS 估算: 根据访问模式,Intelligent‑Tiering 可将存储成本降低最高 80 %。
好处
- 无需更改应用程序或查询引擎
- 对分析工作负载没有性能影响
- 在 文件级别 自动分层
- 内置维护操作仍可正常工作:
- 压缩
- 快照过期
- 删除未引用的文件
压缩作业会优化为主要处理 Frequent Access 层的数据,避免对冷数据进行不必要的重新分层。
配置(AWS CLI)
# 为表桶启用智能分层
aws s3tables put-table-bucket-storage-class \
--table-bucket-arn $TABLE_BUCKET_ARN \
--storage-class-configuration storageClass=INTELLIGENT_TIERING
# 验证配置
aws s3tables get-table-bucket-storage-class \
--table-bucket-arn $TABLE_BUCKET_ARN
该配置会自动应用于在该桶中创建的所有新表。
Source: …
功能 #2:S3 表的原生复制
Amazon S3 表现在支持 原生复制 Apache Iceberg 表,跨 AWS 区域和账户进行复制。复制会创建 只读副本表,并与源表保持同步,省去使用 Lambda、Step Functions 等自定义同步系统的需求。
复制工作原理
- 目标表存储桶 已指定。
- S3 表创建一个 只读副本表。
- 对已有数据进行 回填。
- 持续 应用后续更新。
复制会保留:
- 快照血统
- 父子关系
- 按时间顺序的提交顺序
副本表通常在 几分钟内 反映源表的更新。
好处
- 为分布式团队提供全局分析能力
- 通过读取区域副本降低查询延迟
- 符合合规性和数据驻留要求
- 灾难恢复与数据保护
- 支持时光旅行查询和审计
启用复制(AWS CLI)
aws s3tables-replication put-table-replication \
--table-arn ${SOURCE_TABLE_ARN} \
--configuration '{
"role": "arn:aws:iam:::role/S3TableReplicationRole",
"rules": [
{
"destinations": [
{
"destinationTableBucketARN": "${DESTINATION_TABLE_BUCKET_ARN}"
}
]
}
]
}'
# 检查复制状态
aws s3tables-replication get-table-replication-status \
--table-arn ${SOURCE_TABLE_ARN}
复制可跨 AWS 区域和账户 进行,查询性能与源表相当。
成本考虑
| 成本组件 | 描述 |
|---|---|
| 存储 | 目标表存储桶的存储(按层级计费) |
| PUT 请求 | 复制过程中的 PUT 操作 |
| 表更新(提交)使用 | 每次提交的元数据写入 |
| 对象监控 | 对复制数据的监控费用 |
| 跨区域数据传输 | 仅针对跨区域复制产生的费用 |
| 无额外配置费用 | 只需为上述资源付费 |
提示: 使用 AWS 成本与使用报告 和 CloudWatch 指标 追踪存储使用情况。
监控
- AWS 成本与使用报告 – 按层级的存储费用
- Amazon CloudWatch 指标 – 表使用情况及维护操作
- AWS CloudTrail – 复制和配置事件
可用性
Intelligent‑Tiering 与 Amazon S3 表的原生复制已在 所有支持 S3 表的 AWS 区域 提供。
入门指南
- 启用 Intelligent‑Tiering 在表‑桶级别,以实现持续的成本优化。
- 测试维护操作(压缩、快照过期)在分层数据上。
- 启动复制,使用小型试点表以了解成本和延迟。
- 监控使用模式,在扩展到全生产复制之前。
这些功能对以下场景尤其有价值:
- 数据密集型分析平台
- 拥有分布式团队的全球组织
- 合规驱动的工作负载
- 具有混合访问模式的大型历史数据集
它们在保留 Iceberg 语义和查询性能的同时,显著 降低运营开销。
结论
借助 Intelligent‑Tiering 和 native replication,Amazon S3 Tables 使在 Apache Iceberg 之上构建 成本高效、全局一致、且 低维护 的分析平台更加容易。这些增强功能消除了传统上管理存储、分层和跨区域数据同步所需的大量手动工作。
Posts and cross‑region consistency — 让团队能够专注于分析而不是基础设施。
资源
- AWS News Blog: Announcing replication support and Intelligent‑Tiering for Amazon S3 Tables
- Amazon S3 Tables 文档
- Amazon S3 定价页面
- Apache Iceberg 文档
- AWS 分析服务: Athena, EMR, Glue, Redshift