AWS S3 Select和AWS Athena有什么区别?

67

我正在尝试了解AWS Athena服务和新发布的S3 Select(仍在预览中)之间的区别。

这两者的用例有何不同?它们似乎都帮助从S3中选择部分数据。


2
请注意,使用 Athena 进行查询之前,您需要定义数据模式。S3 SELECT 查询是临时的。 - Jason
7个回答

42

看起来我们缺少一个重要的东西:

S3 Select仅对一个对象进行操作,而Athena可以在多个路径上运行查询,这将包括该路径下的所有文件。


我认为这是最根本的区别。使用Athena,您可以执行整个存储桶的搜索,而S3 Select则需要您知道要查询的特定对象。我认为S3 Select可能会在某些无服务器应用程序中找到它的应用(当然不适用于Athena),但这将高度取决于此类查询的性能。 - Dmitry Kankalovich

17

您可以将AWS S3 Select视为一种成本效益的存储优化,它允许在S3和冰川中检索与谓词匹配的数据,也称作下推过滤。

AWS Athena是完全托管的分析服务,允许运行任意符合ANSI SQL标准的查询——包括group by、having、window、geo函数、SQL DDL和DML。


10

亚马逊Athena: 亚马逊 Athena 是一个查询服务,可以通过标准 SQL 对存储在 S3 中的数据进行分析,使用起来非常方便。 Athena 是一种无服务器的服务,无需设置或管理基础架构,只需为查询支付费用。它会自动扩展 - 并行执行查询,这使得即使在处理大型数据集和复杂查询时也能快速生成结果。

使用案例: Athena 可用于处理日志,执行临时分析和运行交互式查询和连接操作。 它可以跨多个路径运行查询,包括该路径下的所有文件。

S3 Select : S3 Select 是 S3 的一个特性,旨在检索对象数据的子集(使用简单的 SQL 表达式),而不是整个大小可达 5TB 的对象。 S3 Select 在 S3 存储桶中一次只能运行单个对象上的查询。

结论 : Athena 可用于对多个文件执行复杂查询,并跨 S3 存储桶下的多个文件夹。 S3 Select 可用于基于单个对象运行简单查询。


7

Athena是一个以S3为后台支持的商业报告或分析工具(从我所使用的有限情况来看)。

S3 Select似乎使用了相同类型的技术,但我猜它更适用于直接由应用程序使用来过滤或分割其数据集。


5
S3 Select 通过简单的 SQL 表达式,轻松地从对象内容中检索特定数据。无需检索整个对象。它可与 Lambda 结合使用构建无服务器应用,并可与 Apache Spark 和 Presto 等大数据框架集成。能够将性能提高多达 400%。
Amazon Athena 是一种交互式查询服务。它是无服务器的。无需将数据加载到 Athena 中。基于 Presto 构建并运行标准 SQL。主要用于分析大数据。

3
根据我的理解,Amazon Athena是一种交互式查询服务,使用标准SQL轻松分析Amazon S3中的数据。Athena是无服务器的,因此无需管理基础架构,并且您只支付运行的查询费用。
目前的主要优势是:
Athena与AWS Glue数据目录直接集成,您还可以使用Glue的完全托管的ETL功能转换数据或将其转换为列格式以优化成本并提高性能。
现在就S3 Select而言:
  • 目前,在S3 Select处于预览阶段时,使用是免费的,没有明确的定价。但是,您需要在此处申请。

  • S3 Select在预览期间支持CSV、JSON和Parquet文件,包括有或没有GZIP压缩的文件。在预览期间,不支持加密的对象。

  • 由于S3 Select仍处于预览阶段,AWS没有内部案例来验证该服务的使用情况。但是,我可以找到一篇博客的参考资料,可能会对您有所帮助。

我认为,您可以观看这个Twitch视频,它可以帮助您很多。


你知道有没有任何链接可以展示每个产品的详细能力对比吗?亚马逊和许多其他公司都使用了无意义的名称来命名服务...谢谢。 - NoChance

3
除了@abc123的回答之外,AWS S3 Select仅支持SELECT
参考:SELECT Command

Amazon S3 Select仅支持SELECT SQL命令。以下ANSI标准子句适用于SELECT:

  • SELECT列表
  • FROM子句
  • WHERE子句
  • LIMIT子句

注意:Amazon S3 Select查询目前不支持子查询或连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接