经典案例

  • 首页
  • 经典案例
  • 通过API自动化Amazon Redshift Advisor建议并使用电子邮件警报 大数据博客

通过API自动化Amazon Redshift Advisor建议并使用电子邮件警报 大数据博客

  • 2026-01-27 14:54:49
  • 11

自动化 Amazon Redshift Advisor 推荐,并通过 API 设置邮件通知

关键点

使用 Amazon Redshift Advisor API,您可以直接从应用程序中获取优化集群性能的建议。通过 AWS Lambda 和 Amazon SNS,可以实现对 Advisor 推荐的自动邮件通知。本文提供了如何设置此自动化解决方案的详细指南。

Amazon Redshift 是一个快速、可扩展、安全且完全托管的云数据仓库,让您能够大规模分析数据。现在,Amazon Redshift 开放了通过 API 程序化访问 Amazon Redshift Advisor 的推荐,从而使您能够将有关如何提升所配置集群性能的建议集成到自己的应用程序中。

Amazon Redshift Advisor 提供了优化 Redshift 集群性能的建议,这将帮助您节省运营成本。Advisor 根据集群的性能和使用指标分析,生成量身定制的建议,并显示出预计对性能和运营有显著影响的建议。现在,您可以通过 ListRecommendations API 程序化访问这些建议,从而使建议随时可用,可以通过内部应用和工具自动实施,而无需访问 Amazon Redshift 控制台。

在本文中,我们将向您展示如何使用 ListRecommendations API 设置 Redshift 集群 Advisor 推荐的电子邮件通知。这些建议,比如识别需要清理的表,或者找到适合压缩的表列,可以帮助改善性能并节省成本。

如何访问 Redshift Advisor 推荐

要在 Amazon Redshift 控制台访问 Advisor 推荐,请选择导航窗格中的 Advisor。您可以展开每个推荐以查看更多详细信息,并对推荐进行排序和分组。

您也可以使用 ListRecommendations API 自动接收 Advisor 推荐并程序化地实施它们。该 API 会返回一个推荐操作的列表,您可以解析和实施。API 和 SDK 还允许您设置工作流使用 Advisor 进行程序化自动优化。这些使用 Cron 调度的 Advisor 自动周期检查以及实施更改,可以帮助您自动优化 Redshift 集群,而无需手动干预。

您还可以通过 AWS CLI 的 listrecommendations 命令从命令行调用 Advisor 推荐,并通过脚本自动化工作流程。

解决方案概述

以下图示展示了解决方案架构。

解决方案工作流程包括以下步骤:

一个 Amazon EventBridge 计划调用一个 AWS Lambda 函数以检索 Advisor 推荐。Advisor 生成推荐,能够通过 API 访问。可选地,该解决方案将推荐存储在 Amazon Simple Storage Service (Amazon S3) 桶中。Amazon Simple Notification Service (Amazon SNS) 自动向最终用户发送通知。

前提条件

要部署此解决方案,您应具备以下条件:

一个 AWS 账户一个 已配置的 Redshift 集群一个带有 电子邮件订阅 的 SNS 主题管理员权限以启动 AWS CloudFormation 堆栈可选地,一个 S3 桶

部署解决方案

完成以下步骤以部署该解决方案:

选择 Launch Stack。

在 Stack name 中输入堆栈名称,例如,blogredshiftadvisorrecommendations。

在 SnsTopicArn 中输入接收电子邮件警报的 SNS 主题 Amazon 资源名称 (ARN)。在 ClusterIdentifier 中输入您的 Redshift 集群名称,如果您希望仅接收特定集群的 Advisor 通知。如果留空,将接收您账户中所有已配置的 Redshift 集群的通知。在 S3Bucket 中输入 S3 桶名称,以存储详细的 Advisor 推荐 JSON 文件。如果为空,此步骤将跳过。在 ScheduleExpression 中,输入接收 Advisor 推荐警报的频率,使用 Cron 格式。例如,本示例中希望每周日 1400 UTC 接收警报,因此输入 cron(0 14 SUN )。

确保在部署 CloudFormation 堆栈时提供正确的 Cron 时间表达式,以避免任何失败。

保持 配置堆栈选项 下的所有默认选项,然后选择 Next。审查设置,选中确认复选框,并创建堆栈。

如果 CloudFormation 堆栈因任何原因失败,请参考 Troubleshooting CloudFormation。

CloudFormation 模板部署完成后,它将创建以下资源:

飞鱼加速下载一个 Lambda 函数一个 EventBridge 调度规则AWS 身份与访问管理IAM角色和策略,以使服务之间能够相互通信

工作流程细节

让我们更详细地看一下 Lambda 函数和完整的工作流程。

在 CloudFormation 堆栈创建过程中提供的 SnsTopicArn、ClusterIdentifier 和 S3Bucket 输入值将作为环境变量设置在 Lambda 函数中。若 ClusterIdentifier 参数为 None,则将调用 ListRecommendations API,为账户内所有集群同 AWS 区域生成 Advisor 推荐。否则,将传递 ClusterIdentifier 值,仅为指定集群生成推荐。如果提供了输入参数 S3Bucket,该解决方案将创建一个名为 RedshiftAdvisorRecommendations 的文件夹,并在其中生成 Advisor 推荐 JSON 文件。如果没有提供 S3Bucket 的值,则跳过此步骤。

接下来,函数将基于对性能和成本的影响对每个已配置集群根据您的设置,可以为所有集群或者单个集群进行推荐总结,分为高、中、低三个类别,将摘要推荐通过 SNS 通知邮件发送给订阅者。

Advisor 的推荐操作包含 SQL 命令。RecommendedActionTypeSQL 总结了可以使用 SQL 命令应用的 SQL 操作数量。

如果任何集群没有可用的推荐,SNS 通知邮件将发送通知,告知没有 Advisor 推荐。

EventBridge 规则会根据您在堆栈参数中提供的频率调用该 Lambda 函数。默认情况下,设定为每周日 1400 UTC 运行。

以下是示例 SNS 通知邮件的屏幕截图。

清理资源

如果您不再使用该解决方案,建议删除 CloudFormation 堆栈。这将避免因资源创建而产生额外费用。

结论

在本文中,我们讨论了 Redshift Advisor 如何为您提供具体的推荐,以提高 Redshift 集群的性能并降低运营成本。同时我们展示了如何通过 API 程序化访问这些推荐,并使用自己的内部工具按需或自动进行实施,而无需访问 Amazon Redshift 控制台。

通过将这些推荐集成到工作流程中,您可以做出明智的决策,实施最佳实践,从而优化 Redshift 集群的性能和成本,最终提高数据处理操作的整体效率和生产力。

我们鼓励您尝试这种自动化解决方案,以编程方式访问 Advisor 推荐。如果您有任何反馈或问题,请在评论中留下您的意见。

关于作者

Ranjan Burman 是 AWS 的分析专业解决方案架构师,专注于 Amazon Redshift,帮助客户构建可扩展分析解决方案,拥有超过 16 年的数据库和数据仓库技术经验,热衷于利用云解决方案进行自动化和解决客户问题。

Nita Shah 是 AWS 的高级分析专业解决方案架构师,驻纽约,已有20多年构建数据仓库解决方案的经验,专注于 Amazon Redshift,致力于帮助客户设计和建立企业级的分析和决策支持平台。

Vamsi Bhadriraju 是 AWS 的数据架构师,密切与企业客户合作,构建数据湖和分析应用程序。

Sumant Nemmani 是 AWS 的高级技术产品经理,专注于帮助 Amazon Redshift 客户受益于采用机器学习和智能机制的功能,以实现服务的自我调优和优化,确保 Redshift 在使用规模化时保持性价比。

标签 Amazon Redshift

通过API自动化Amazon Redshift Advisor建议并使用电子邮件警报 大数据博客


发表评论

提交
飞鱼加速器feiyu66

飞鱼加速器官方网站,提供全球连线,一键提升网速体验,轻松穿越地域限制,畅享网络世界。实现稳定快捷的互联网连接,解决跨区域网速瓶颈。

网站地图

沟通飞鱼加速下载