Athena和Redshift Spectrum性能最佳实践的问题

0

【以下的问题经过翻译处理】 一个客户正在进行一个验证Athena和Redshift Spectrum的PoC。请帮助回答以下问题:

1.使用小的Redshift集群(例如2节点dc2.large集群),并将几乎所有数据存储在S3中、通过Redshift Spectrum进行查询是否可行?这是否是推荐方法?使用Redshift Spectrum的最小推荐集群大小是多少? 2.数据存储在S3中的大小与性能之间的相关性如何?我们有没有数据可以分享,以便了解使用Athena和Redshift Spectrum查询特定大小数据的大致查询性能。 3.Athena和Redshift Spectrum之间的查询语法是否有大的差异。他们希望了解能否方便地在Athena和Redshift Spectrum之间进行切换。如有明确的差异,我们是否知道一种过渡层来同时支持它们?

profile picture
专家
已提问 5 个月前3 查看次数
1 回答
0

【以下的回答经过翻译处理】 我准备阅读Redshift Spectrum最佳实践博客(https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/)并计划运行一些测试。由于每个客户的工作负载都不同,很难量化这些指标。

关于您的问题:

1、跟最佳实践博客中提到的各种因素有关。例如Parquet文件格式、Snappy压缩、在S3上进行正确的分区来提升查询访问模式/过滤器、无法推送到Spectrum计算层的查询类型(例如ORDER BY、DISTINCT)等。Amazon Redshift Spectrum拥有独立于Redshift集群的托管计算层。查询使用的Redshift Spectrum计算节点数量取决于Redshift节点类型和整体工作负载。根据查询需求和Redshift集群的配置,Redshift Spectrum会以智能的方式自动扩展。

2、与第1个问题相同。

3、关于Athena和Redshift Spectrum之间的查询语法差异,确实有的。

Athena的查询引擎是Apache Presto,因此它遵循Apache Presto的查询语法。我会参考Presto文档(http://prestodb.github.io/docs/current/)中的“SQL Language”和“SQL Statement Syntax”。就Spectrum而言,您会发现Spectrum的语法与Redshift几乎相同,除了不能在外部表上执行DML操作。

对于问题的第二部分,我会确保客户明白何时使用Athena和Spectrum。它们不是用来取代彼此,而是用于不同的工作负载。Athena像是有需要租了一辆车一样来做临时数据查询,而不需要启动集群。而Redshift Spectrum更像是家里的备用汽车,而Redshift是家里的主要汽车。 Redshift Spectrum 的常见模式是查询既涵盖 Amazon Redshift 本地存储的频繁访问的“热”数据、又涵盖 Amazon S3 中经济高效存储的“热/冷”数据。 这种模式便于分离计算和存储,使两者能够独立扩展以匹配使用场景,而不必付出与价值不成比例的代价。 Athena 和 Redshift Spectrum 查询优化器完全不同。 还有一些差异,例如您可以获得与 Amazon Redshift 一致的丰富的合规性标准。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则