Athena vs Redshift Spectrum

时间:2018-05-09 09:38:13

标签: amazon-web-services amazon-redshift amazon-athena amazon-redshift-spectrum

我有点评价雅典娜& Redshift Spectrum。两者都有相同的用途,Spectrum需要一个Redshift集群,而Athena则是纯无服务器集群。 Athena使用Presto,Spectrum使用其Redshift的引擎

Athena或Redshift谱有什么特别的缺点吗? 使用Athena或Spectrum的任何限制?

5 个答案:

答案 0 :(得分:9)

我已经在几个不同的用例中使用了两者并得出结论:

Redshift Spectrum的优点:

  • 允许创建Redshift表
  • 能够使用Redshift频谱表加入Redshift表 有效地

如果你不需要那些东西那么你也应该考虑雅典娜

Athena与Redshift谱的差异:

  • 结算。这是主要的区别,取决于您的用例 你可能会发现一个比另一个便宜得多的
  • 性能。我发现雅典娜的速度稍快。
  • SQL语法和功能。雅典娜来自于presto并且有点 与Redshift不同,后者源于postgres。
  • 连接。它很容易使用API​​,JDBC或者连接到Athena ODBC,但更多的产品提供"开箱即用的标准" 连接到Redshift

此外,对于任一解决方案,请确保使用AWS Glue元数据,而不是Athena,因为限制较少。

答案 1 :(得分:1)

这个问题已经有一段时间了,但是我仍然可以为讨论做些贡献。

什么是雅典娜?

  

Amazon Athena是一种交互式查询服务,可使用标准SQL轻松分析Amazon S3中的数据。 Athena是无服务器的,因此无需管理任何基础结构,您只需为运行的查询付费。 (来自文档)

挺直的,对吧?

然后是一个问题,什么是 Redshift Spectrum ,为什么当 Athena 几乎是外部表查询的一种解决方案时,亚马逊的人们才做到这一点?

  

因此,AWS人员希望创建Redshift的扩展(目前,这是作为托管列式数据存储而非常流行的),并使其能够与外部表(通常为S3)对话。但是他们想让Redshift用户(主要是分析人员)的生活更轻松。许多分析工具目前不支持Athena,但支持Redshift。但是创建您的Reshift集群并存储数据是一个瓶颈。同样,Redshift并不是水平可伸缩的,并且在添加新计算机时会花费一些停机时间。如果您是Redshift用户,那么让您的存储更便宜就可以让您的生活变得更加轻松。

在以下情况下,我建议您使用Redshift频谱:

  • 您是Redshift的现有用户,并且想要在Redshift中存储更多数据。

  • 您想将较冷的数据移至“外部”表,但在某些情况下仍希望与Redshift表联接。

  • 火花卸载数据,如果您只想将数据导入 Pandas 或其他任何分析工具。

雅典娜在以下情况下很有用:

  • 您是新用户,并且没有Redshift集群。要访问Spectrum,需要一个活动的,正在运行的Redshift实例。因此,如果没有Redshift,Redshift Spectrum就是不可行的选择。
  • 频谱仍然是一种开发工具,它们正在添加一些功能(如“事务”)以提高效率。
  • 雅典娜(BTW)雅典娜带有一个不错的 REST API ,因此请按自己的意愿去做。

可以说Redshift + Redshift频谱确实功能强大,并且有很多希望。但是要成熟,还有很长的路要走。

答案 2 :(得分:0)

如果您使用的是Redshift数据库,那么使用Spectrum和redshift来获得所需的性能将是明智之举。

但是,如果您开始探索各种选择,那么我们可以将Athena视为继续前进的工具。

答案 3 :(得分:0)

我了解到(从 Adrian Cantril 的/洛杉矶 2019 年 SA 专业课程中)Redshift Spectrum 将使用自己的 Redshift 集群来提供比通过利用 AWS 提供给 Athena 查询的共享容量更一致的性能。我很欣赏这些信息可能只对考试有用,我觉得他的论点没有说服力。

我写这个答案是因为我对领先答案对 Athena 优于 Redshift Spectrum 的处理不满意。该答案的其余部分很好,我并不是要在这里直接复制任何内容(没有参考文献,在我写这篇文章时它没有在我这里注册)。

当我的大部分数据都在 S3 中时,我(同样,完全基于我的不干涉研究)会选择 Spectrum,这通常用于更大的数据集。不过,最近的 RA3 实例似乎与这个细分市场重叠。所以我说 Spectrum 最适合我们拥有长期 Redshift 集群的地方​​,这些集群是 OLAP 节点,有空闲容量来查询 S3。

为什么使用自己的财产来执行 Athena 在没有您的此类投资的情况下会执行的查询?缓存,它适合的地方。和稳定的表现,如果我相信 Adrian Cantrill 比 Jon Scott 更相信的话。这让我怀疑 RA3 可能会淘汰 Spectrum;以及缺乏关于 Spectrum 的体面文献。为什么亚马逊在 Athena 中提供一种性能优于价格更高的 Redshift Spectrum 的无服务器产品?这就是他们选择弃用 RRS 的方式。我不敢相信 Spectrum 已被弃用,因此必须提供此答案来对此进行辩论。看看https://aws.amazon.com/redshift/whats-new/

我认为下面的图片(来自 https://d1.awsstatic.com/events/Summits/AMER2020/May13SummitOnline/Modernize_your_data_warehouse.pdf)相当清楚地表明计算节点在这里具有影响力,并且可能与上面@JonScott 的宝贵见解相反。

Spectrum il

最后一个重大区别是 Athena 仅限于 IAM 进行身份验证,如这张 reinvent 2018 (ANT201-R1) 幻灯片所示:

enter image description here

答案 4 :(得分:-1)

一个很大的限制和不同的因素是使用结构化数据的能力。 Athena支持JSON和Parquet文件格式,而Redshift Spectrum只接受平面数据。

另一个是Athena拥有的GIS功能以及lambdas,它们有时会派上用场。

现在,如果您运行一个独立的新Postgres,那么它可以完成所有工作,但是就Redshift(和Spectrum)之间的比较而言 - 它是一个已经停止发展的工具。