Redshift 计划查询错误通知

问题描述 投票:0回答:2

我正在使用 Redshift 计划查询来运行 UNLOAD 命令。如果查询失败,我想收到通知。我启用了 SNS,但无论作业是成功还是失败,消息都是一样的。如何仅在作业失败时收到通知?

更新: 我可以使用以下命令获得错误消息的响应。我如何设置 CloudWatch 或其他一些服务来对此进行监控并发送通知?

aws redshift-data describe-statement --id {id} --region us-west-2

amazon-web-services logging amazon-redshift amazon-cloudwatch amazon-sns
2个回答
0
投票

有几种选择:

  • 您可以使用带有 boto3 的 lambda 函数来检查 redshift 上的查询是否成功运行

  • 您还可以使用 lambda 函数来检查 cloudwatch 中的日志


0
投票

我们在 python lambda 函数中实现的解决方案:

  1. 列出所有 EventBridge 规则:
    aws events list-rules
    .
  2. 对于每个规则,获取目标并过滤那些具有 Redshift 集群目标的目标:
    aws events list-targets-by-rule
  3. 对于每个 Redshfit 目标,通过将 SQL 语句和 CRON 定义与列
    STL_QUERY
    querytxt
    匹配,尝试在
    starttime
    中找到它。您可以使用 pyawscron 将您的 CRON 转换为时间戳。
  4. 如果记录不存在则发出警报

此解决方案可以根据您的需要轻松增强。

STL_QUERY
中促进查找的提示:为您的预定查询使用特定的
user

希望对您有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.