【问题标题】:Cost control in Redshift Spectrum when scanning external tables (S3 data)扫描外部表(S3 数据)时 Redshift Spectrum 中的成本控制
【发布时间】:2018-08-05 19:28:21
【问题描述】:

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

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

【问题讨论】:

  • 因此,如果 Athena 中的查询超时,您根本不会被收费吗?这很有趣!

标签: amazon-redshift amazon-athena amazon-redshift-spectrum


【解决方案1】:

Amazon Redshift 允许您使用 WLM Query Monitoring Rules 对 Spectrum 查询执行应用精细控制。

有 2 个 Spectrum 指标可用:Spectrum scan size(查询扫描的 mb 数)和Spectrum scan row count(查询扫描的行数)。

您也可以使用 Query execution time 来强制设置最长持续时间,但这将适用于所有查询类型,而不仅仅是 Spectrum。

请注意,这些是抽样指标。查询不会恰好在超出规则时中止,而是在下一个采样间隔中止。

如果您已经在集群上运行 Spectrum 查询,您可以开始使用 QMR,方法是使用我们的脚本 wlm_qmr_rule_candidates 生成候选规则。生成的规则基于每个指标的第 99 个百分位。

【讨论】:

  • 谢谢@joe。这很有帮助。查询的执行率(例如 #/hour)怎么样?或者它同时运行的查询总数?我没有在指标/规则列表中看到它们。有什么想法吗?
  • Redshift 上的并发查询由集群的 WLM 配置管理。每个 WLM 队列都允许特定数量的并发查询。这适用于与“普通”查询相同的 Spectrum 查询,因为 Spectrum 查询执行在 Redshift 集群和 Spectrum 层之间共享。
  • 每小时查询次数需要在外部计算。
猜你喜欢
  • 2021-03-02
  • 1970-01-01
  • 2019-08-19
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 2020-07-10
  • 2019-08-22
相关资源
最近更新 更多