

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 查询和数据库监控
<a name="metrics-enhanced-query-monitoring"></a>

本文档描述了查询和数据库监控页面，用于分析 Amazon Redshift 预调配集群或无服务器工作组的性能的 AWS 管理控制台功能以及针对它们运行的查询。

您可以使用查询和数据库监控页面调查以下情况：
+ 监控指定时间段内的数据仓库指标
+ 查询会对数据仓库的整体性能产生哪些影响
+ 了解查询运行时间细分为其生命周期事件的情况，例如锁定等待时间、编译时间和执行时间
+ 哪些用户在指定时间段内运行的资源密集型查询最多
+ 监控补丁事件对查询性能产生的影响

**Topics**
+ [权限](#metrics-enhanced-query-monitoring-permissions)
+ [查询和数据库监控控制台](#metrics-enhanced-query-monitoring-console)

## 权限
<a name="metrics-enhanced-query-monitoring-permissions"></a>

用于访问控制台的 AWS 账户的权限会影响**查询和数据库监控**页面显示的查询。默认情况下，您只能查看自己的查询。要查看其他用户拥有的查询，请将 `SYS:MONITOR` 角色授予您的账户。要允许用户从**查询和数据库监控**页面终止正在运行的查询，请向用户授予 `SYS:OPERATOR` 权限。

要自动将 `sys:monitor` 角色分配给 Amazon Redshift Serverless 或预置的 IAM 用户或角色，请运行以下命令：

```
create role monitor;
grant role sys:monitor to role monitor;
```

要更新用于查询监控的 IAM 角色，请执行以下操作：

1. 选择**标签**选项卡。

1. 选择**管理标签**。

1. 添加具有键 **RedshiftDbRoles** 和值 **monitor** 的标签。

1. 保存更改

要将数据库凭证添加到用户，请运行以下命令：

```
grant role sys:monitor to <username>
```

有关使用 GRANT 命令的信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的 [GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html)。

要使用查询监控，IAM 用户需要访问 Amazon Redshift 数据面板的权限。确保 IAM 用户在其权限策略中具有以下权限：

```
{
    "Sid": "DataAPIPermissions",
    "Action": [
        "redshift-data:ExecuteStatement",
        "redshift-data:CancelStatement",
        "redshift-data:GetStatementResult",
        "redshift-data:DescribeStatement",
        "redshift-data:ListDatabases"
    ],
    "Effect": "Allow",
    "Resource": "arn:aws:redshift-serverless:us-west-2:123456789012:workgroup/01234567-89ab-cdef-0123-456789abcdef"
},
```

### 使用您的 IAM 身份的临时凭证
<a name="metrics-enhanced-query-monitoring-permissions-temp-iam"></a>

仅在连接到集群时此选项才可用。使用此方法，查询和数据库监控功能会将用户名映射到您的 IAM 身份并生成临时密码，以便使用您的 IAM 身份连接到数据库。必须允许使用此方法进行连接的用户对 `redshift:GetClusterCredentialsWithIAM` 拥有 IAM 权限。要防止用户使用此方法，请修改其 IAM 用户或角色以拒绝此权限。

## 查询和数据库监控控制台
<a name="metrics-enhanced-query-monitoring-console"></a>

此部分介绍如何使用查询和数据库监控控制台页面。

您可以使用查询和数据库监控控制台来快速了解数据仓库的性能。您可以监控一段时间内的数据仓库性能，并检查数据仓库的预配置集群或单个查询的性能，以便充分识别瓶颈和其他需要改进的方面。

**查询和数据库监控**页面具有以下特征：
+ **提高安全性** – 您需要提升的权限才能监控其他用户的查询。有关更多信息，请参阅 [权限](#metrics-enhanced-query-monitoring-permissions)。
+ **七天查询历史记录** – 保证可访问七天的查询历史记录
+ **查询监控** – 您可以在用户查询级别监控预调配集群和无服务器工作组中的查询。
+ **查询趋势分析** – 您可以比较符合指定条件的相似查询的性能。

要访问查询和数据库监控页面，请执行以下操作：

1. 通过 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/) 登录到 Amazon Redshift 控制台。

1. 从导航窗格中选择**查询和数据库监控**。

**查询和数据库监控**控制台页面如下所示：

![\[Query and database monitoring dashboard showing data warehouse overview, performance summary, and profiler sections.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/metrics_eqm_homepage.png)


**查询和数据库监控**页面具有以下组成部分：
+ **数据仓库概览** – 监控预调配集群和无服务器工作组的平均查询性能。您可以在此页面上查看峰值或高活动期间的统计数据，快速了解特定集群或工作组的性能问题。
+ **查询性能摘要** – 监控特定预调配集群或无服务器工作组的平均查询性能。还可以通过单击**数据仓库概览**列表中的某个集群或工作组来访问**查询性能摘要**页面。

**Topics**
+ [查询性能摘要](#metrics-enhanced-query-monitoring-console-summary)
+ [查询详细信息](#metrics-enhanced-query-monitoring-console-query-details)
+ [查询模式](#metrics-enhanced-query-monitoring-console-query-pattern)

### 查询性能摘要
<a name="metrics-enhanced-query-monitoring-console-summary"></a>

在从**查询和数据库监控**页面中选择**查询性能摘要**，或从**数据仓库概览**页面选择集群或工作组时，控制台会显示单个预调配集群或无服务器工作组的性能摘要。

![\[Query and database monitoring interface showing performance graph and query history for redshift-集群-1.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/metrics_eqm_clusterdetails.png)


此页面包含以下组成部分：
+ **集群或工作组下拉列表** – 选择要分析的集群或工作组。
+ **数据仓库性能** – 此窗格显示指定时间段内的集群或工作组历史记录，并显示每个查询阶段所花费的时间。如果您看到某个查询阶段出现峰值，如上图中所示，1 月 20 日的计划和执行时间已增加，则可以使用此信息来识别查询性能问题。显示的默认时间段为最近七天，但您可以根据分析需求调整时间段。
+ **查询历史记录** – 此窗格显示指定筛选器内每个查询运行的性能历史记录。您可以使用此信息来排查单个查询的性能问题。要进一步分析某个特定查询，可以从此图表或**数据仓库性能**图表中选择该查询。

  将鼠标悬停在图表上的数据点上方时，会出现一个弹出窗口。此弹出窗口显示该数据点的时间指标细分。如果数据点包含查询数据，则可以选择**向下钻取**，将图表的时间范围更新为该数据点的下一个最小时间单位。这些时间单位如下所示：
  + 天
  + 小时
  + 15 分钟
  + 5 分钟
  + 1 minute

  例如，如果您在数据点上选择**向下钻取**，则图表的范围将更改为一天。再次选择**向下钻取**会将图表的范围更改为一小时。
+ **查询探查器** - 用于监控查询性能的图形工具。有关更多信息，请参阅 [查询分析器](using-query-plan-profiler.md)。

### 查询详细信息
<a name="metrics-enhanced-query-monitoring-console-query-details"></a>

在从集群或工作组详细信息页面的**数据仓库性能**或**查询历史记录**窗格中选择查询时，将打开**查询详细信息**页面。

![\[Query details page showing query information, elapsed time breakdown, and SQL details.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/metrics_eqm_querydetails.png)


有关**查询详细信息**页面的信息，请参阅[查询详细信息页面](using-query-plan-profiler.md#using-query-plan-profiler-ui-query-details)。

### 查询模式
<a name="metrics-enhanced-query-monitoring-console-query-pattern"></a>

可以通过在**查询性能摘要**页面的**查询历史记录**窗格中选择**查看查询模式**按钮，查看具有相同模式的查询历史记录。**查询模式**页面显示您指定的 SQL 语句在过去一周内检索到的所有查询。

![\[Query pattern page showing performance trend graph and history table of queries.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/metrics_eqm_querypattern.png)


**查询模式**页面包含以下组成部分：
+ **查询模式** – 检索正在分析的查询的 SQL 语句。
+ **查询性能趋势分析** – 显示查询模式选择的所有查询所用时间的条形图。按天对结果进行分组。
+ **具有相同模式的查询历史记录** – 查询模式选择的查询的每个阶段所花费的时间。

使用**查询模式**页面，可以获得以下洞察：
+ 在每天的特定时间运行的查询的趋势
+ 定期对数据仓库运行的查询的运行时峰值。