29

我正在评估 Athena 和 Redshift Spectrum。两者都有相同的目的,Spectrum 需要一个 Redshift 集群,而 Athena 是纯无服务器的。Athena 使用 Presto,Spectrum 使用 Redshift 的引擎

Athena 或 Redshift 光谱有什么特定的缺点吗?使用 Athena 或 Spectrum 有什么限制吗?

4

5 回答 5

29

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

Redshift Spectrum 的优势:

  • 允许创建 Redshift 表
  • 能够有效地将 Redshift 表与 Redshift 频谱表连接起来

如果您不需要这些东西,那么您也应该考虑 Athena

雅典娜与红移光谱的区别:

  • 计费。这是主要区别,根据您的用例,您可能会发现一个比另一个便宜得多
  • 表现。我发现雅典娜稍微快一点。
  • SQL 语法和功能。Athena 源自 presto,与源自 postgres 的 Redshift 略有不同。
  • 连接性。使用 API、JDBC 或 ODBC 连接到 Athena 很容易,但更多产品提供与 Redshift 的“开箱即用标准”连接

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

于 2018-05-09T09:56:16.737 回答
15

这个问题已经提出了很长一段时间,但我仍然认为我可以为讨论做出一些贡献。

什么是雅典娜?

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

很直截了当,对吧?

然后是什么是Redshift Spectrum的问题,以及为什么当Athena几乎是外部表查询的解决方案时,亚马逊人会做出它?

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

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

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

  • 您希望将较冷的数据移动到外部表,但在某些情况下仍希望加入 Redshift 表。

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

Athena在以下情况下很有用:

  • 您是新用户并且没有 Redshift 集群。访问 Spectrum 需要一个活动的、正在运行的 Redshift 实例。因此,如果没有 Redshift,Redshift Spectrum 就不是一个选择。
  • 由于 Spectrum 仍然是一个开发工具,他们正在添加一些功能,如交易,以提高效率。
  • 顺便说一句,Athena 带有一个不错的 REST API,所以你想要它就去做吧。

总而言之,Redshift + Redshift Spectrum 确实很强大,有很多承诺。但它距离成熟还有很长的路要走。

于 2019-01-28T19:46:08.043 回答
1

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

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

于 2018-05-15T15:45:59.943 回答
1

我从 Adrian Cantril/LA 的 2019 SA Pro 课程中了解到,Redshift Spectrum 将使用自己的 Redshift 集群来提供比利用 AWS 为 Athena 查询提供的共享容量提供的更一致的性能。我很欣赏这些信息可能只对考试有用,我没有发现他的论点令人信服。

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

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

你为什么使用自己的财产来执行雅典娜在没有你这样的投资的情况下会做的查询?缓存,适合的地方。和一致的表现,如果我相信阿德里安坎特里尔而不是乔恩斯科特的话。这让我怀疑 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 的宝贵见解相反。

频谱图

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

在此处输入图像描述

于 2021-01-06T21:17:17.870 回答
0

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

另一个是 Athena 具有的 GIS 功能以及 lambdas 的可用性,它们有时确实派上用场。

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

于 2018-05-09T19:30:56.153 回答