使用 Amazon Redshift Serverless 监控查询和工作负载 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon Redshift Serverless 监控查询和工作负载

使用 Amazon Redshift Serverless 监控查询和工作负载

您可以使用提供的系统视图监控 Amazon Redshift Serverless 查询和工作负载。

授予监控查询的访问权限

超级用户可以向不是超级用户的用户提供访问权限,以便他们可以对所有用户执行查询监控。首先,您可以为用户或角色添加策略以提供查询监控访问权限。然后,您可以授予用户或角色查询监控权限。

添加查询监控策略
  1. 选择 https://console.aws.amazon.com/iam/

  2. 访问管理下,选择策略

  3. 选择创建策略

  4. 选择 JSON,然后粘贴以下策略定义。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListDatabases" ], "Resource": "*" }, { "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": "*" } ] }
  5. 选择查看策略

  6. 对于名称,输入策略的名称,如 query-monitoring

  7. 选择创建策略

创建策略后,您可授予相应的权限。

要提供访问权限,请为您的用户、组或角色添加权限:

授予用户查询监控权限

具有 sys:monitor 权限的用户可以查看所有查询。此外,具有 sys:operator 权限的用户可以取消查询、分析查询历史记录和执行 vacuum 操作。

  1. 输入以下命令以提供系统监控访问权限,其中 user-name 是您想要为其提供访问权限的用户的名称。

    grant role sys:monitor to "IAM:user-name";
  2. (可选)输入以下命令以提供系统操作员访问权限,其中 user name 是您想要为其提供访问权限的用户的名称。

    grant role sys:operator to "IAM:user-name";
授予角色查询监控权限

具有 sys:monitor 权限的角色的用户可以查看所有查询。此外,具有 sys:operator 权限的角色的用户可以取消查询、分析查询历史记录和执行 vacuum 操作。

  1. 输入以下命令以提供系统监控访问权限,其中 role-name 是您想要为其提供访问权限的角色的名称。

    grant role sys:monitor to "IAMR:role-name";
  2. (可选)输入以下命令以提供系统操作员访问权限,其中 role-name 是您想要为其提供访问权限的角色的名称。

    grant role sys:operator to "IAMR:role-name";

监控视图

监控视图是 Amazon Redshift Serverless 中用于监控查询和工作负载使用情况的系统视图。这些视图位于 pg_catalog 架构中。可用的系统视图旨在为您提供监控 Amazon Redshift Serverless 所需的信息,这比预置集群所需的信息简单得多。SYS 系统视图旨在与 Amazon Redshift Serverless 配合使用。要显示这些视图提供的信息,请运行 SQL SELECT 语句。

系统视图的定义是为了支持以下监控目标。

工作负载监控

您可以随时间推移监控查询活动,以便:

  • 了解工作负载模式,这样您就可以了解正常运行状况(基准)以及业务服务级别协议 (SLA) 中的内容。

  • 快速识别偏离正常运行的状况,这可能是个暂时性问题,或是需要采取进一步操作的问题。

数据加载和卸载监控

进出 Amazon Redshift Serverless 的数据移动是一项关键功能。您可以使用 COPY 和 UNLOAD 来加载和卸载数据,并且必须密切监控传输的字节/行数和文件的完成进度,以跟踪遵守业务 SLA 的情况。这通常是通过频繁运行系统表查询(即每分钟)来完成,以便跟踪进度,并在检测到重大偏差时发出调查/纠正操作的提示。

故障和问题诊断

某些情况下,必须对查询或运行时故障采取措施。开发人员依靠系统表自行诊断问题,并确定正确的纠正补救措施。

性能优化

您可能需要优化从一开始就不符合 SLA 要求的查询或随时间推移而降级的查询。要进行优化,您必须具有运行时详细信息,包括运行计划、统计数据、持续时间和资源占用情况。您需要用于违规查询的基准数据,以确定偏差的原因并指导您如何改进性能。

用户对象事件监控

您需要监控用户对象上的操作和活动,例如刷新实体化视图、VACUUM 和分析。这包括系统管理的事件,例如实体化视图的自动刷新。如果事件是用户启动的,您想监控事件结束时间,或者如果事件是系统启动的,则监控最后一次成功运行。

计费的使用情况跟踪

您可以随时间转移监控您的使用情况趋势,以便:

  • 告知预算计划和业务扩展估计值。

  • 确定潜在的成本节约机会,例如删除冷数据。

使用 SYS 系统视图监控 Amazon Redshift Serverless。有关 SYS 监控视图的更多信息,请参阅 SYS 监控视图