在扫描外部表(S3数据)时控制Redshift Spectrum的成本

3
Athena具有一些默认服务限制,可帮助封顶意外的大数据湖中“失控”的查询成本(基于时间而非扫描的数据量),尽管这些限制并不十分出色,但它仍然很有帮助。Redshift Spectrum方面,它提供了哪些机制可以轻松地限制成本或减少“意外”扫描S3中过多数据的风险?解决这个问题的好方法是什么?

那么如果 Athena 中的查询超时,您根本不会被收费?知道这一点很有趣! - Alessandro Cosentino
1个回答

5
Amazon Redshift允许您使用WLM Query Monitoring Rules对Spectrum查询执行应用细粒度控制。
有2个Spectrum指标可用:Spectrum scan size(查询扫描的MB数量)和Spectrum scan row count(查询扫描的行数)。
您还可以使用Query execution time来强制执行最长持续时间,但这将适用于所有查询类型,而不仅仅是Spectrum。
请注意,这些是采样指标。当查询超过规则时,查询不会在准确的点中止,而是在下一个采样间隔中止。
如果您已经在集群上运行Spectrum查询,则可以使用我们的脚本wlm_qmr_rule_candidates生成候选规则来开始使用QMR。生成的规则基于每个指标的第99个百分位数。

谢谢 @joe。这很有帮助。那查询执行速率(例如每小时#次)之类的东西呢?或者同时运行的查询总数呢?我在指标/规则列表中没有看到它们。对此有什么想法吗? - Amelio Vazquez-Reina
1
Redshift上的并发查询受到集群的WLM配置的控制。每个WLM队列允许特定数量的并发查询。这适用于Spectrum查询和“正常”查询,因为Spectrum查询执行在Redshift集群和Spectrum层之间共享。 - Joe Harris
1
每小时的查询次数需要在外部计算。 - Joe Harris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接