那么Athena和Redshift Spectrum有什么具体的缺点吗?在使用Athena或Spectrum时有哪些限制吗?
我在不同的应用场景下都使用过两种技术,并得出以下结论:
Redshift Spectrum 的优势:
如果你不需要这些功能,也可以考虑 Athena。
Athena 与 Redshift Spectrum 的区别:
此外,无论选择哪种解决方案,请确保使用 AWS Glue 元数据,而非 Athena,因为前者限制较少。
这个问题已经存在了相当长的时间,但我认为我可以为讨论做出一些贡献。
Athena是什么?
Amazon Athena是一个交互式查询服务,使用标准SQL语句可以轻松分析存储在Amazon S3中的数据。Athena是无服务器的,因此无需管理基础设施,并且您只需要支付运行的查询费用。(来自文档)
非常简单明了,对吧?
那么接下来就是什么是 Redshift Spectrum 以及为什么亚马逊的人们要创建它,当时 Athena 已经很好地解决了外部表查询的问题?
因此,AWS的开发人员想要创建Redshift的扩展功能(目前作为托管列式数据存储库非常流行),并赋予其与外部表格(通常是S3)通信的能力。但他们希望为Redshift用户(主要是分析人员)提供更简单的方式。很多分析工具在当时不支持Athena,但支持Redshift。但是创建自己的Reshift群集和存储数据成为了瓶颈。再加上Redshift的横向扩展能力不是很强,增加新机器时需要一些停机时间。如果您是Redshift用户,则使存储更便宜可以使您的生活轻松得多。
我建议您在以下情况下使用Redshift Spectrum:
您是现有的Redshift用户,并且想要在Redshift中存储更多的数据。
您希望将冷数据转移到外部表中,但仍然希望在某些情况下与Redshift表进行连接。
而且Athena在以下情况下很有用:
总之,Redshift + Redshift Spectrum确实非常强大,具有许多优势。但它仍有很长的路要走才能成熟。
explain
计划中看到它。理想的用例是当你有大量数据时 - 将其便宜地存储在 s3 上 - 但不需要扩展计算。对于普通的 Redshift,存储与计算是绑定在一起的,因此两者必须同时扩展。 - Davos一个重要的限制和不同之处是使用结构化数据的能力。 Athena 支持 JSON 和 Parquet 文件格式,而 Redshift Spectrum 只接受扁平数据。
另一个区别是 Athena 有 GIS 函数和 Lambda,有时非常方便。
如果您运行一个独立的新 Postgres,则可以实现更多功能,但就 Redshift(和 Spectrum)之间的比较而言-它是一种已经停止演进的工具。