AWS S3 Select 和 AWS Athena 有啥区别?

Posted

技术标签:

【中文标题】AWS S3 Select 和 AWS Athena 有啥区别?【英文标题】:What is difference between AWS S3 Select and AWS Athena?AWS S3 Select 和 AWS Athena 有什么区别? 【发布时间】:2018-08-12 15:25:51 【问题描述】:

我正在尝试了解 AWS Athena 服务与新发布的 S3 select(仍处于预览阶段)之间的区别。

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

【问题讨论】:

请注意,Athena 需要先定义您的数据架构,然后才能发出查询。 S3 SELECT 查询是临时的。 【参考方案1】:

看起来我们还缺少一件重要的事情:

S3 Select 仅对一个对象进行操作,而 Athena 则跨多个路径运行查询,这将包括该路径中的所有文件。

【讨论】:

我认为这是他们最根本的区别。使用 Athena,您可以执行存储桶范围的搜索,而 S3 Select 则需要您知道要查询的特定对象。我在想 S3 Select 可能会在某些无服务器应用程序中找到它的应用程序(虽然 Athena 肯定不会在那里),但这在很大程度上取决于此类查询的性能。【参考方案2】:

您可以将 AWS S3 Select 视为一种具有成本效益的存储优化,它允许检索与 S3 中的谓词匹配的数据,以及 glacier aka 下推过滤。

AWS Athena 是完全托管的分析服务,允许运行任意符合 ANSI SQL 的查询 - 分组、拥有、窗口和地理函数、SQL DDL 和 DML。

【讨论】:

【参考方案3】:

Athena(从我用过它的时候开始)更倾向于作为 S3 支持的业务报告或分析工具。

S3 select 似乎使用了相同类型的技术,但我猜它的目标更多是应用程序直接使用来过滤或分片其数据集。

【讨论】:

【参考方案4】:

S3 Select 可以使用简单的 SQL 表达式轻松地从对象的内容中检索特定数据。无需检索整个对象。这可以与 Lambda 一起使用来构建无服务器应用程序,并且可以与 Apache Spark 和 Presto 等大数据框架结合使用。可将性能提升高达 400%。

Amazon Athena 是一种交互式查询服务。它是无服务器的。无需将数据加载到 Athena。基于 Presto 构建并运行标准 SQL。主要用于分析大数据。

【讨论】:

【参考方案5】:

根据我的理解给出一个概述:

Amazon Athena 是一种交互式查询服务,可让您轻松 使用标准 SQL 分析 Amazon S3 中的数据。 Athena 是无服务器的,所以 无需管理基础设施,您只需为查询付费 你跑的。

到目前为止,它的主要优势是:

Athena 与 AWS Glue 数据目录开箱即用集成,您还可以使用 Glue 的完全托管的 ETL 功能来转换数据或将其转换为列格式,以优化成本并提高性能。强>

现在 S3 Select 已经完成了:

目前,使用 S3 Select 是免费的 预览,并且没有定价的定义。然而,你会 需要申请the reference

在预览版中,S3 Select 支持带或不带 GZIP 压缩的 CSV、JSON 和 Parquet 文件。预览期间不支持静态加密的对象。

由于 S3 Select 仍处于预览阶段,AWS 没有内部 案例以验证服务的使用方式。但是,我可以找到 来自a blog 的您可能感兴趣的参考资料。

在我看来,你可以查看this Twitch Video,对你有很大帮助。

【讨论】:

您是否知道任何链接可以详细地并排显示每个产品的功能。亚马逊为服务(以及许多其他公司)使用了无意义的名称......谢谢。【参考方案6】:

亚马逊雅典娜: Amazon Athena 是一种查询服务,可以使用标准 SQL 轻松分析存储在 S3 中的数据。 Athena 是无服务器的,因此无需设置或管理基础设施,只需为查询付费。它可以自动扩展 - 并行执行查询,这使它能够产生更快的结果,即使是大型数据集和复杂查询。

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

S3 选择: S3 Select 是 S3 设计的功能,它通过检索对象数据的子集(使用简单的 SQL 表达式)而不是整个对象(最大可达 5 TB)来工作。 s3 select 一次对 s3 存储桶中的单个对象运行查询。

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

【讨论】:

【参考方案7】:

除了@abc123的回答,S3 Select只支持SELECT

https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference-select.html

Amazon S3 Select 和 S3 Glacier Select 仅支持 SELECT SQL 命令。 SELECT 支持以下 ANSI 标准子句:

【讨论】:

以上是关于AWS S3 Select 和 AWS Athena 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Athena 可以更新或插入存储在 S3 中的数据吗?

AWS S3

在 Geoserver 和 S3 AWS 之间建立连接时出现问题

多个 AWS Lambda 中的 AWS::S3::Bucket LambdaConfiguration

从上传到 S3 的文件触发的无服务器框架和 AWS Step Functions(AWS 状态机)

我如何通过AWS SNS设置有关上传事件的AWS S3?