【问题标题】:Amazon Redshift cache preload?Amazon Redshift 缓存预加载?
【发布时间】:2019-04-03 15:11:20
【问题描述】:

我正在使用 Amazon Redshift 来提高我的应用程序的性能,但在 Redshift 中,性能仅在后续运行时才会提高。

这意味着我无法在第一次运行时获得性能提升,而性能会逐渐提高。因此,我决定在午夜运行所有查询以利用缓存机制。有没有正确的方法来执行缓存预加载?我只想在午夜运行所有查询,以便缓存保留一天,它可以通过每天运行所有页面手动完成,但我想自动化这个过程。谁能提出一个好主意?

尝试使用jmeter 按计划运行所有报告,但正在寻找合适的方法。

【问题讨论】:

  • 您的查询全天都在变化吗?这些查询是全天使用的唯一查询吗?如果是这样,最好将这些结果存储在其他地方,而不是整天运行 Redshift 集群。但是,如果这些只是全天运行的查询的子集,那么您的方法是有效的。
  • 查询本身不会全天变化,但过滤器表达式会发生变化,因此无法将结果存储在其他地方。只是想利用查询编译缓存来实现最大性能

标签: database amazon-web-services amazon-redshift


【解决方案1】:

您可以每晚启动一个 Amazon EC2 实例,该实例运行一个脚本来执行所有查询,然后终止。它只会按秒收费,因此成本相当低。

脚本可以使用psql 在 Redshift 上运行查询。

如果预热脚本的总运行时间少于 15 分钟,您可以改为将其作为 AWS Lambda 函数运行。这可以由 Amazon CloudWatch 事件每天触发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-06
    • 2021-05-27
    • 2017-05-29
    • 2015-07-24
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多