

 从补丁 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="serverless-billing-reserved"></a>

Amazon Redshift Serverless 支持您运行和扩展分析，而无需使用即用即付定价模式来预置和管理集群。现在，通过无服务器预留，您可以进一步优化计算成本，并提高 Redshift Serverless 上现有和新工作负载的成本可预测性。

Amazon Redshift 在 AWS 付款人账户级别管理无服务器预留，预留可以在多个 AWS 账户之间共享，可让您在 AWS 账户中的所有 Redshift Serverless 工作负载上降低高达 24% 的计算成本。Amazon Redshift 按小时对无服务器预留计费，按秒对预留进行计量，提供每周七天、每天 24 小时的一致计费模式，同时保持 Redshift Serverless 提供的灵活性。Amazon Redshift 按标准按需费率，对任何超过指定 RPU 水平的使用量收取费用。

**注意**  
如果您要限制按需使用量，可以使用**最大容量**设置来为工作组设置资源使用限制。有关更多信息，请参阅 [Amazon Redshift Serverless 的计费](serverless-billing.md)。

## 无服务器预留的优势
<a name="serverless-billing-reserved-benefits"></a>

无服务器预留是 Amazon Redshift Serverless 的折扣定价选项。无服务器预留让您可以选择在一年内以按需（OD）费率的折扣承诺指定数量的 Redshift 处理器（RPU），而无需预付款。通过预付款，您可以获得更大的折扣。通过无服务器预留，您可以优化计算成本，并提高无服务器上现有和新工作负载的成本可预测性。

每个无服务器预留都是在 AWS 账户级别购买的，可以在同一个付款人账户中的多个 Amazon Redshift Serverless 工作组之间共享。这使您能够灵活地应用折扣。具有不同工作负载模式的多个工作组可以共享预留。

## 无服务器预留的工作原理
<a name="serverless-billing-reserved-works"></a>

预留 RPU 是一个简单的过程，只需几分钟即可完成。它包括指定要预留的 RPU 级别和付款类型。Amazon Redshift Serverless 使用标准 AWS 账单与成本管理工具，有助于您确定所需的预留级别并持续监控您的使用情况。无服务器预留在 AWS 付款人账户级别进行管理，可以在同一个付款人账户下共享，这样您就可以将您 AWS 账户中所有 Redshift Serverless 工作负载的计算成本降低多达 24%。无服务器预留按小时计费，按秒计量，提供每周七天、每天 24 小时的一致计费模式，同时保持 Redshift Serverless 提供的灵活性。任何超过指定 RPU 级别的使用量均按标准 Redshift Serverless 按需费率收费。

您可以在同一个 AWS 账户中购买多个无服务器预留。当您购买额外的无服务器预留时，它们会相互叠加。例如，如果您购买了两个预留并为每个预留选择了 100 个 RPU，则可以按折扣费率获得总共 200 个 RPU。

**注意**  
如果要设置按需使用的限制，则可以在 Amazon Redshift Serverless 控制台中选择**限制**选项卡，然后选择**管理使用量限制**，来为工作组设置最大 RPU。

购买无服务器预留后，它会立即生效，并显示在 Redshift 控制台的无服务器预留控制面板中。

## 分析您的 RPU（Redshift 处理器）使用情况，以确定所需的预留级别
<a name="serverless-billing-reserved-analyzing"></a>

Redshift Serverless 预留可让您通过承诺在一年内使用特定数量的 Redshift 处理器（RPU），为您提供比按需定价更低的折扣，从而锁定可预测、更低的计算成本。如果使用无预付选项，则这些折扣可高达 20%；如果您预付全额费用，则折扣可高达 24%。由于您在 AWS 付款人账户级别购买 Redshift Serverless 预留，并且节省自动应用于任何 AWS 关联账户中的任何 Redshift Serverless 工作组，因此您可以在支持多个团队的同时集中管理预算。Redshift Serverless 以每秒的粒度计量使用量，按每小时计算平均值，然后按小时计费，确保您只为您使用的容量付费。Redshift Serverless 预留将跨账户的灵活应用与基于期限的节省相结合，在不牺牲 Redshift Serverless 敏捷性的前提下为您提供可预测的分析价格。

### 分析预留的 RPU 使用量
<a name="serverless-billing-reserved-analyzing-howto"></a>

可以通过以下两种方式之一来确定 RPU 使用量级别：可以使用 Redshift Serverless 控制面板来查看七天视图，也可以使用 Cost Explorer 成本管理服务来进行长期分析。以下过程演示了如何分析 RPU 使用量：

**方法 1：Redshift Serverless 控制面板（7 天视图）**

1. 登录到 AWS 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 打开 Serverless 控制面板。

1. 选择您的工作组。

1. 查看从最后一小时到一周的 RPU 容量使用情况。

**方法 2：AWS Cost Explorer（长期分析）**

1. 登录 AWS 管理控制台 并打开 Cost Explorer 控制台，网址为 [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/)。

1. 将粒度设置为**每小时**

1. 按**使用类型**分组

1. 应用以下筛选条件：
   + 服务：Redshift
   + 区域：您的本地区域
   + 使用类型：**Redshift:ServerlessUsage** 的筛选条件

1. 查看成本和使用情况图表，来了解您所选区域的每小时无服务器使用情况

## 使用控制台购买无服务器预留
<a name="serverless-billing-reserved-setting"></a>

 购买预留时，您可以选择可享受折扣的 RPU 级别。在选择 RPU 级别之前，最好先了解您的基本容量和随时间推移使用的按需容量。本接向您展示如何确定容量和预留无服务器预留。

首先，在 Redshift 控制台中，选择**无服务器**，然后从菜单中选择**无服务器预留**。

![\[Amazon Redshift console showing Serverless dashboard with Serverless reservations option highlighted.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/capacity-reservations-menu-selection.png)


控制台显示该功能的描述和现有预留的列表。您可以从此处购买预留，也可以使用所提供的报告和监控工具来查看当前使用量。这些信息有助于您确定 RPU 级别以及适合预留的 RPU 数量。

要购买预留，请完成以下步骤：

1. 选择**购买无服务器预留**。  
![\[Reservation overview showing 1 RPU total, 0 expiring, with option to purchase Serverless reservations.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/capacity-reservations-list-purchase.png)

1. 此时会出现一个演练，其中包含一系列选择。输入要预留的**无服务器预留** RPU 级别。如果您不确定这个级别应该是什么，可以使用本节中进一步描述的工具。  
![\[Input field for entering reserved RPU capacity, with a range from 1 to any number.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/capacity-reservations-RPU-level.png)

1. 设置付款类型。您可以选择为预留的 RPU 进行预付款，也可以按月付款。如果您选择预付款，则可以获得更大的折扣。  
![\[Payment type options: All Upfront with 24% discount or No Upfront with 20% discount.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/capacity-reservations-payment-type.png)

1. 完成选择后，选择**购买无服务器预留**，然后选择**确认**。

确认预留后，它将出现在预留列表中。

![\[Serverless reservations table showing one payment-pending reservation with details.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/capacity-reservations-list-created.png)


## 使用说明
<a name="serverless-billing-reservations-notes"></a>


+ 您无法更改或删除预留。但您可以创建额外的预留以覆盖更多范围。
+ Redshift Serverless 在使用按需 RPU 之前，使用预留 RPU 来处理工作负载，以确保节省成本。如果您超出预留的 RPU 数量，则将以 Redshift Serverless 按需费率为这些额外的 RPU 计费。
+ Amazon Redshift Serverless 的免费服务抵扣金不适用于无服务器预留，仅适用于按需计费的 RPU。

## 无服务器预留示例
<a name="serverless-billing-reserved-examples"></a>

在这种情况下，您的 AWS 付款人/关联账户有两个 Amazon Redshift 工作组：
+ 工作组 1 具有稳态使用量，例如用于商业智能团队。
+ 工作组 2 的工作负载不可预测，使用量会出现激增，例如用于 ETL 操作。

您想优化这些工作组的成本，因此，您可以购买为期一年的无服务器预留。根据历史数据，您可以确定两个工作组在稳定状态下要消耗 64 个 RPU。但是，工作组 2 偶尔会从 32 个 RPU 增加到 48 个 RPU，并在短时间内下降到 24 个 RPU。开始时，您可以将预留的 RPU 级别设置为 64 个 RPU，这与历史趋势一致。按小时计费的详细信息如下：
+ 与历史使用趋势类似，在第一个小时内，两个工作组都使用 32 个 RPU，账户总使用量为 64 个 RPU。在这个小时内，所有 RPU 均按无服务器预留折扣费率收费。这是因为 64 个 RPU 的使用量级别等于 64 个 RPU 的无服务器预留。
+ 在第二小时内，工作组 1 继续使用 32 个 RPU。但是，工作组 2 激增至 48 个 RPU，账户总使用量为 80 个 RPU。在这个小时内，64 个 RPU 按无服务器预留折扣费率收费，而 16 个 RPU 按照 Redshift Serverless 按需费率收费。
+ 在第三个小时内，工作组 1 继续使用 32 个 RPU，而工作组 2 减少到 8 个 RPU。在这个小时内，尽管账户总数为 40 个 RPU，但仍按照 64 个 RPU 无服务器预留费率向该账户收费。

有关工作组使用量演变以及按需和无服务器预留费率账单详情，请参阅下图：

![\[Graph showing total account usage, on-demand usage, and workgroup trends over three time periods.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/capacity-reservation-example.png)


## 使用 AWS CLI 或 Amazon Redshift API 购买无服务器预留
<a name="serverless-billing-reservations-api"></a>

您使用 `create-reservation` 创建 RPU 预留。下面显示了此命令：

```
create-reservation
--capacity
--offering-id
```

您将 `capacity` 设置为要预留的 RPU 数量。