首页 > 解决方案 > AWS Athena 如何设法从 s3 加载 10GB/s?我已经从 c6gn.16xlarge 管理了 230 mb/s

问题描述

在 AWS Athena 上运行此查询时,它设法查询 63GB Traders.csv 文件

SELECT * FROM Trades WHERE TraderID = 1234567

Tt 需要 6.81 秒,这样做扫描 63.82GB(几乎完全是 Trades.csv 文件的大小,因此进行全表扫描)。

令我震惊的是从 s3 中提取数据的速度令人难以置信。似乎 AWS Athena 的策略是使用具有大量 RAM 和令人难以置信的 s3 加载能力的令人难以置信的巨大盒子来解决缺乏索引的问题(尽管在标准 SQL DB 上,您将在 TraderID 上有一个索引并加载数百万倍的数据)。

但在我的实验中,我只设法从 S3 读取这些数据(这仍然令人印象深刻):

实例类型 兆比特/秒 网卡千兆
t2.2xlarge 113 低的
t3.2xlarge 140 最多 5 个
c5n.2xlarge 160 最多 25 个
c6gn.16xlarge 230 100

(这是兆字节而不是兆位)

我正在为 eu-west-1 上的 s3 使用内部 VPC 端点。有人有任何技巧/提示让 s3 快速加载吗?有人从 s3 获得超过 1GB/s 的读取速度吗?这甚至可能吗?

标签: amazon-web-servicesperformanceamazon-s3amazon-ec2bandwidth

解决方案


似乎 AWS Athena 的策略是使用具有大量 RAM 的令人难以置信的巨大盒子

不,它更像是许多小盒子,而不是一个大盒子。Athena 一次在多台服务器上并行运行您的查询。据我所知,具体细节并未在任何地方公布,但它们在文档中非常清楚地表明您的查询是并行运行的。


推荐阅读