

 2026 年 6 月 30 日之后，Amazon Redshift 不再支持使用 Python UDF。我们将分阶段开始执行。有关 Python 生命周期终止和迁移选项详情的更多信息，请参阅 2025 年 6 月 30 日发布的[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 基于 SYS 视图的查询和数据库监控
<a name="metrics-sys-view-based-queries"></a>

本文档介绍 Amazon Redshift 控制台中为查询和数据库监控页面提供数据的 `SYS` 视图，它是一种用于分析查询的组件和性能的工具。有关查询和数据库监控页面的信息，请参阅[查询和数据库监控](metrics-enhanced-query-monitoring.md)。

**查询和数据库监控**页面具有显示由 `SYS` 视图提供的信息的功能。控制台视图包括查询探查器，它显示查询的图形执行计划。要切换到基于 `SYS` 的视图，请按照此处的步骤针对新的**查询和数据库监控**页面授予正确的访问权限和权限。

**查询和数据库监控**页面的基于 `SYS` 的视图功能具有以下功能：
+ **提高安全性** - 您需要提升的权限才能监控其他用户的查询
+ **七天查询历史记录** – 保证可访问七天的查询历史记录
+ **查询探查器** - 用于监控查询性能的图形工具。有关更多信息，请参阅 [查询分析器](using-query-plan-profiler.md)。

默认情况下，您只能查看自己的查询。要查看其他用户拥有的查询，请将 `SYS:MONITOR` 角色授予您的账户。要支持用户结束正在运行的查询，请向该用户授予 `SYS:OPERATOR` 权限。

要向数据库用户或角色授予查看所有用户拥有的查询的权限，请运行以下命令：

```
grant role sys:monitor to "IAM:{{role-name}}";
grant role sys:monitor to "IAM:{{user-name}}";
```

要自动将 `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>}}
```

## 权限
<a name="metrics-sbq-permissions"></a>

要使用查询监控，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"
},
```

## 连接到数据库
<a name="metrics-sbq-connect"></a>

在使用增强型查询监控功能之前，必须先连接到数据库，才能访问基于 `SYS` 视图的信息。要连接到数据库，请使用以下凭证之一：
+ 用户名和密码
+ 与您的 IAM 角色关联的临时凭证
+ 数据库用户

在使用增强型查询监控时，请注意以下几点：
+ 对于预置集群，您必须连接到数据库，因为增强型查询监控使用 `SYS` 视图。这些视图提高了安全性，并且需要提升的权限，才能访问与其他用户拥有的查询有关的数据。
+ 使用基于 `SYS` 视图的查询和数据库监控页面时，如果用户账户没有数据库超级用户角色，则只有 `user_id` 是可见的。对于非超级用户，用户名是隐藏的。
+ 作为基于 SYS 视图的查询和数据库监控页面体验的一部分，查询执行进程 ID (`p_id`) 显示在列标题 `session_id` 下。