为了账号安全,请及时绑定邮箱和手机立即绑定

AWS S3 Tables:对Apache Iceberg及数据生态系统意味着什么?

亚马逊网络服务(AWS)最近宣布了 S3 表,这是一种新的存储桶类型,旨在优化 Apache Iceberg 表 的存储和性能。这一功能使数据湖和湖屋在大规模操作方面有了显著的进步,提供了 S3 内置的原生 Iceberg 支持,使数据生态系统受益更多。让我们一起看看这一发布将如何影响数据工程师、架构师以及整个数据生态系统。

S3 表格是什么?

s3 tables logo

S3 表是 优化存储的桶,用于管理 Apache Iceberg 表的工具。与传统的 S3 桶不同,后者需要手动进行诸如合并和快照清理之类的维护操作,S3 表则自动完成这些任务,并提供了显著的性能提升。

先快速瞄一眼核心价值主张点,再深入讨论。

承诺
  1. 性能增强

比标准S3快3倍的查询速度

10倍的交易吞吐量,使其非常适合高吞吐量工作负载。

2. 自动保养

内置的过程处理压实、维护和优化元数据管理。

3. AWS 原生集成

与诸如 Amazon AthenaEMRGlueQuickSight 等服务的即插即用兼容性

4.: 开放格式兼容性功能

存储在 S3 中的表以 Iceberg 兼容格式(如 Parquet)存储数据,让支持 Iceberg 的第三方查询引擎可以直接访问这些数据。

为什么这对冰山生态系统很重要

Apache Iceberg(https://iceberg.apache.org/)因其能高效管理大规模数据集而广受欢迎,这些功能包括ACID一致性、时间旅行和模式演变

然而,一直以来在 S3 自行管理 Iceberg 表一直颇具挑战性,需要大量的工程工作。

  • 元数据管理、
  • 快照管理、
  • 调整查询和写入的性能、

AWS S3 表消除了其中的许多复杂性,降低了组织采用 Iceberg 的门槛,使组织更容易采用 Iceberg,并加速了整个数据湖屋生态的发展。让我们看看。

  1. 湖屋的采用

凭借S3 Tables,AWS在Lakehouse生态系统(湖house生态系统)中确立了领导地位,有可能超越了依赖Delta Lake的Databricks,以及Snowflake支持Iceberg表作为外部数据层。

2. 操作简便

S3 表的自动管理减少了繁琐的工作,这让团队可以更专注于提供见解,而不是管理基础设施。

3. 更强大的工具兼容性

由于 S3 表遵循 Iceberg 标准,它们可以与数据处理系统(包括 Apache Spark、Flink 和 Dremio、Starburst、Estuary Flow 等)保持互操作性。这种灵活性使得 S3 表可以适应各种分析环境。

成本概览

存储费用.
  • S3 表:每 GB 每月 0.0265 美元。
  • 标准 S3 存储:每 GB 每月 0.023 美元。

对于一个1TB的数据湖,这个差异几乎可以忽略(大约每月$3)。

运营成本
  • 每1,000次请求0.005美元 用于数据访问和维护的请求。
压缩费用:
  • 每处理1GB数据收取0.05美元,这在高频工作负载尤其是实时用例中会累积起来,组织在高吞吐量环境中必须仔细评估这笔费用。
一个真实的定价例子

让我们通过一个典型的使用场景来解释S3 Tables的成本,突出其成本效益和潜在的风险。

场景设定

  • 数据摄入过程:一个每日的ETL作业写入1,000个小文件(每个5 MB)和3个元数据文件(每个10 KB)。
  • 表大小:1 TB的数据,优化后的平均对象大小为100 MB,以提高存储效率。
  • 查询:每月有500,000次GET请求。
  • 数据合并:自动数据合并功能已开启,以优化查询性能。

这里是你在US-West (Oregon)区域每月费用大致如下:

1. 存储费用.
  • 存储费用:0.0265元/GB。
  • 总存储量:1 TB = 1,024 GB。
  • 花费计算如下:1,024 GB × 0.0265元/GB = $27.14
2. 相关费用请求

PUT 请求(用于上传新文件)

  • 1,003 份文件/天 × 30 天 = 30,090 次请求。
  • 费用为:30,090 ÷ 1,000 × $0.005 ≈ $0.15。

GET请求(查询用)

每月请求量:500,000 次。
费用:500,000 除以 1,000 × $0.0004 = $0.20

3. 监控费用
  • 监控费用:每1,000个对象0.025美元。
  • 对象数:1 TB ÷ 100 MB = ~10,240个对象。
  • 费用计算:10,240个对象除以1,000,每千个对象费用0.025美元,共计费用为0.26美元。
4. 压缩费用

处理对象

  • 当月处理了30,000个小文件。
  • 费用计算如下:30,000 ÷ 1,000 × 0.004 美元 = 0.12美元。

数据处理

  • 3万文件 × 5 MB = 150 GB 数据。
  • 费用:150 GB × $0.05 = $7.50
总月成本

27.14(存储)+ 0.15(PUT)+ 0.20(GET)+ 0.26(监控)+ 0.12(对象压缩)+ 7.50(数据压缩费用)= 35.37美元

对于中等数据量的批处理作业团队而言,S3 表的价格非常有竞争力。只需 每月 35.37 美元(每 TB),与自动维护和性能提升带来的价值相比,这笔费用几乎可以忽略不计。

高频率的实时工作负载可能会导致显著的成本增加,原因如下:

  • 频繁的 PUT/GET 操作。
  • 对小且频繁的写入有较高的压缩需求。

例如,一个每月处理 1 PB 数据的管道,在进行数据合并时,仅数据处理费用每天就大约需要 60,000美元。实时场景可能需要替代的成本策略,例如批量写入数据或优化文件大小。

要来的未来

这是显而易见的、必须使用的人工智能生成的图像

S3 Tables的引入表明了AWS的目标是主导开放表格格式领域,挑战现有的专有系统以及Iceberg生态系统中的玩家。

Databricks 可能会感受到压力,因为 AWS 降低了使用 Iceberg(这种技术是 Delta Lake 的主要竞争对手)的门槛。

Snowflake 主要使用 Iceberg 作为外部表格式,因此在数据仓库策略方面,Snowflake 受到的影响可能较小。

S3 表格将会加快 Iceberg 的使用,尤其是已经在使用 AWS 的组织。

这可能会导致:

  • 对兼容 Iceberg 的工具需求增加。
  • 进一步的查询引擎和优化策略创新。
  • 新的成本模型来适应实时工作负载和高频操作。

我打赌这一切都会实现。

使用 AWS S3 的风险点

尽管 AWS S3 表提供了令人兴奋的功能,但正如我们通常看到的,采用它们并非没有风险。了解这些潜在的问题可以帮助组织做出更明智的决定并更好地应对挑战。

如定价示例所示,频繁的写入和合并操作的成本可能快速增加,尤其是对于实时或流式数据处理工作负载。

突然出现的高额账单可能发生在小型文件密集处理的管道流程中,或者在查询生成大量GET请求的情况下。

另一方面,尽管 S3 Tables 遵循 Apache Iceberg 标准,但依赖于 AWS 管理的服务,如 自动合并对象监控功能,会带来部分供应商依赖性。迁移至另一个兼容 Iceberg 的存储系统可能无法无缝复制所有这些功能。

由于依赖于 AWS 原生优化,使用 S3 表确实增加了更换供应商的难度。

权衡利弊得失

虽然 S3 表可以简化运营,组织还需要评估自己的工作量和优先级,以确定是否适合。批处理密集型管道和数据湖仓库中等查询负载将受益最大,而实时和高吞吐量的工作负载可能需要额外调整或不同方案。

如果您有兴趣评估S3表,接下来的步骤是什么?

  • 审核您当前的 Iceberg 用例,并估算 S3 表的成本。
  • 在投入生产工作负载之前,在小范围内试用 S3 表。
  • 建立一个治理和监控体系,以跟踪其技术和财务影响。

S3 表为 Iceberg 的易于采用打开了大门,但当然需要仔细实施以避免意外情况。

关键是平衡他们的简单易管理与对你独特需求的清楚理解。

结论部分

AWS S3 表重新定义了组织管理和查询 Iceberg 表的方式,结合了开放格式的灵活性和便捷性与托管服务的高度性能和易用性。对于数据工程师和架构师来说,这意味着可以节省更多的时间在基础设施上,从而有更多时间去提供洞察。

然而,就像任何新的服务一样,仔细的成本建模和集成测试将至关重要,以实现价值的最大化。无论是 Iceberg 的重度用户,还是正在探索湖仓架构的人,S3 表都值得在你们的下一个项目中进行评估。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
8
获赞与收藏
25

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消