amazon-web-services - 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 的读取速度吗?这甚至可能吗?
解决方案
似乎 AWS Athena 的策略是使用具有大量 RAM 的令人难以置信的巨大盒子
不,它更像是许多小盒子,而不是一个大盒子。Athena 一次在多台服务器上并行运行您的查询。据我所知,具体细节并未在任何地方公布,但它们在文档中非常清楚地表明您的查询是并行运行的。
推荐阅读
- javascript - 在 Angular 中,当我不知道扩展名时如何加载图像?
- r - 使用 %in% 根据染色体和位置过滤行
- recurrence - 基本递归函数的运行时复杂性
- c# - 使用 MySql 数据库文件 (XAMPP) 发布 Visual Studio 软件
- python - 将字典列表转换为字典
- c# - 有没有办法在 Azure Data Lake Store 上使用 SSIS 处理“任何文件”?
- html - 如何使用 Bootstrap 4 垂直对齐列内的内容
- git - 在远程分支中查找文件的最后提交 ID
- python - 如何在 Tkinter 中将按钮连接到字典
- c - PThread 初始化二维数组