- 최신
- 최다 투표
- 가장 많은 댓글
【以下的回答经过翻译处理】 我准备阅读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 一致的丰富的合规性标准。