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

Cost control in Redshift Spectrum when scanning external tables (S3 data)

Athena 有一些默认 service limits 可以帮助 ~ cap 意外 "runaway" 查询的成本S3 中的大型数据湖。它们不是很好(基于~时间,而不是扫描的数据量),但它仍然有帮助。

Redshift Spectrum怎么样? 它提供的哪些机制可以轻松用于 限制成本 或减轻 "accidentally" 在针对 S3 的单个失控查询中扫描过多数据的风险?解决这个问题的好方法是什么?

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 个百分位数。