我试图了解 AWS Athena 服务和新发布的 S3 select(仍处于预览状态)之间的区别。
两者的用例有何不同?似乎都有助于从 S3 中选择部分数据。
我试图了解 AWS Athena 服务和新发布的 S3 select(仍处于预览状态)之间的区别。
两者的用例有何不同?似乎都有助于从 S3 中选择部分数据。
看起来我们还缺少一件重要的事情:
S3 Select 仅对一个对象进行操作,而 Athena 则跨多个路径运行查询,这将包括该路径中的所有文件。
您可以将 AWS S3 Select 视为一种经济高效的存储优化,它允许检索与 S3 中的谓词匹配的数据,以及 glacier aka 下推过滤。
AWS Athena 是完全托管的分析服务,允许运行任意符合 ANSI SQL 的查询 - 分组、拥有、窗口和地理函数、SQL DDL 和 DML。
Athena (从我用过它的时候开始)更倾向于作为 S3 支持的业务报告或分析工具。
S3 select 似乎使用了相同类型的技术,但我猜它的目标更多是应用程序直接使用来过滤或分片其数据集。
S3 Select 可以使用简单的 SQL 表达式轻松地从对象的内容中检索特定数据。无需检索整个对象。这可以与 Lambda 一起使用来构建无服务器应用程序,并且可以与 Apache Spark 和 Presto 等大数据框架结合使用。可将性能提升高达 400%。
Amazon Athena 是一种交互式查询服务。它是无服务器的。无需将数据加载到 Athena。基于 Presto 构建并运行标准 SQL。主要用于分析大数据。
Amazon Athena: Amazon Athena 是一种查询服务,可以使用标准 SQL 轻松分析存储在 S3 中的数据。Athena 是无服务器的,因此无需设置或管理基础设施,只需为查询付费。它可以自动扩展——并行执行查询,这使得它能够产生更快的结果,即使是大型数据集和复杂的查询。
用例: Athena 可用于处理日志、执行临时分析以及运行交互式查询和连接。它跨多个路径运行查询,其中包括该路径下的所有文件。
S3 Select : S3 Select 是一项设计的 S3 功能,它通过检索对象数据的子集(使用简单的 SQL 表达式)而不是整个对象(最大可达 5 TB)来工作。s3 select 一次对 s3 存储桶中的单个对象运行查询。
结论:
Athena 可用于对文件进行复杂查询,并跨越 S3 存储桶下的多个文件夹。
S3 Select 可用于基于单个对象的简单查询。
根据我的理解给出一个概述:
Amazon Athena 是一种交互式查询服务,可以使用标准 SQL 轻松分析 Amazon S3 中的数据。Athena 是无服务器的,因此无需管理基础架构,您只需为运行的查询付费。
到目前为止,它的主要优点是:
Athena 开箱即用地与 AWS Glue 数据目录集成,您还可以使用 Glue 的完全托管的 ETL 功能来转换数据或将其转换为列格式,以优化成本并提高性能。
现在就 S3 Select Goes 而言:
目前,在预览版中使用 S3 Select 是免费的,也没有定价的定义。但是,您需要在参考处申请
在预览版中,S3 Select 支持带或不带 GZIP 压缩的 CSV、JSON 和 Parquet 文件。在预览期间,不支持静态加密的对象。
由于 S3 Select 仍处于预览阶段,AWS 没有内部案例来验证服务的使用方式。但是,我可以从您可能感兴趣的博客中找到参考。
在我看来,你可以观看这个对你有很大帮助的Twitch 视频。
除了@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 标准子句: