

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Feature Store 存储配置
<a name="feature-store-storage-configurations"></a>

Ama SageMaker zon Feature Store 由在线商店和线下商店组成。在线存储支持实时查找用于推理的特征，而离线存储则包含用于模型训练和批量推理的历史数据。创建特征组时，您可以选择启用在线存储和/或离线存储。当两者都启用时，它们会进行同步，以避免训练数据和提供数据之间出现差异。有关在线和离线存储以及其他 Feature Store 概念的更多信息，请参阅 [Feature Store 概念](feature-store-concepts.md)。

以下主题讨论在线存储的存储类型和离线存储的表格格式。

**Topics**
+ [

# 在线存储
](feature-store-storage-configurations-online-store.md)
+ [

# 离线存储
](feature-store-storage-configurations-offline-store.md)
+ [

# 吞吐量模式
](feature-store-throughput-mode.md)

# 在线存储
<a name="feature-store-storage-configurations-online-store"></a>

在线存储是一种低延迟、高可用性数据存储，支持实时查找特征。它通常用于机器学习 (ML) 模型处理。创建特征组时，您可以在标准在线存储 (`Standard`) 或内存层在线存储 (`InMemory`) 之间进行选择。这样，您就可以在考虑性能和成本的同时，选择与特定应用程序的读取和写入模式最匹配的存储类型，有关定价的更多详情，请参阅 [Amazon SageMaker 定价](https://aws.amazon.com/sagemaker/pricing/)。

在线存储包含以下 `StorageType` 选项。有关在线存储内容的更多信息，请参阅 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html)。

## 标准层存储类型
<a name="feature-store-storage-configurations-online-store-standard-tier"></a>

`Standard` 层是在线存储特征组的托管低延迟数据存储。它为您的应用程序提供机器学习模型服务的快速数据检索。`Standard` 是默认存储类型。

## 内存层存储类型
<a name="feature-store-storage-configurations-online-store-in-memory-tier"></a>

`InMemory` 层是在线存储特征组的托管数据存储，支持极低延迟检索。它为用于高吞吐量应用程序的机器学习模型处理提供大规模实时数据检索。该`InMemory`等级由亚马逊 ElastiCache （Redis OSS）提供支持。有关更多信息，请参阅[什么是亚马逊 ElastiCache （Redis OSS）](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html)？ 。

在线存储 `InMemory` 层支持集合类型，即列表、集和向量。有关 `InMemory` 集合类型的更多信息，请参阅 [集合类型](feature-store-collection-types.md)。

Feature Store 提供对在线存储的低延迟读取和写入。应用程序延迟主要由两个部分组成：基础设施或网络延迟以及 Feature Store API 延迟。降低网络延迟有助于以极低的延迟读取和写入 Feature Store。您可以通过部署 AWS PrivateLink 到功能存储运行时端点来减少功能存储的网络延迟。借助 AWS PrivateLink，您可以使用接口 VPC 终端节点，以可扩展的方式从您的亚马逊虚拟私有云 (VPC) 私有访问所有功能商店运行时 API 操作。`privateDNSEnabled`选项设置为 true 的 AWS PrivateLink 部署：
+ 它将所有功能存储 read/write 流量保留在您的 VPC 内。
+ 使用 Feature Store 时，它会将流量保留在与发起流量的客户端相同的 AZ 中。这样可以避免在 AZs 减少网络延迟之间的 “跳跃”。

按照[使用接口 VPC 终端节点访问 AWS 服务](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)中的步骤设置 AWS PrivateLink 功能存储。中的 Feature Store Runtime 的服务名称 AWS PrivateLink 为`com.amazonaws.region.sagemaker.featurestore-runtime`。

`InMemory` 层在线存储可根据存储使用情况和请求自动扩展。如果新的使用模式变化很快，自动扩缩可能需要几分钟时间才能适应。在自动扩缩期间：
+ 对特征组的写入操作可能会收到节流错误。应在几分钟后重试您的请求。
+ 对特征组的读取操作可能会收到节流错误。标准重试策略适用于这种情况。
+ 读取操作可能会导致延迟增加。

默认 `InMemory` 层特征组的最大大小为 50 GiB。

请注意，`InMemory` 层目前仅支持在线特征组，不支持在线\$1离线特征组，因此 `InMemory` 层的在线和离线存储之间无法进行复制。此外，`InMemory` 层目前不支持客户托管的 KMS 密钥。

# 离线存储
<a name="feature-store-storage-configurations-offline-store"></a>

当不需要亚秒级检索时，使用离线存储来存储历史数据。它通常用于数据探索、模型训练和批量推理。

为特征组同时启用在线和离线存储时，两个存储会同步，以避免训练数据和提供数据之间存在差异。请注意，启用了 `InMemory` 存储类型的在线存储特征组目前不支持离线存储中的相应特征组（不支持在线到离线复制）。有关在 Amazon Feature Store SageMaker 中提供机器学习模型的更多信息，请参阅[在线存储](feature-store-storage-configurations-online-store.md)。

离线存储包含以下 `TableFormat` 选项。有关线下商店内容的信息，请参阅 Amazon SageMaker API 参考[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OfflineStoreConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OfflineStoreConfig.html)中的。

## Glue 表格式
<a name="feature-store-storage-configurations-offline-store-glue-table-format"></a>

`Glue` 格式（默认）是 AWS Glue的标准 Hive 类型表格式。使用 AWS Glue，您可以发现、准备、移动和整合来自多个来源的数据。它还包括用于编写、运行任务和实施业务工作流程的额外生产力和数据操作工具。有关的更多信息 AWS Glue，请参阅[什么是 AWS Glue？](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) 。

## Iceberg 表格式
<a name="feature-store-storage-configurations-offline-store-iceberg-table-format"></a>

`Iceberg` 格式（建议）是适用于超大型分析表的开放表格式。使用 `Iceberg` 可以将分区中的小数据文件压缩成较少的大文件，从而显著加快查询速度。此压缩操作是并发的，不会影响特征组上正在进行的读取和写入操作。有关优化 Iceberg 表格的更多信息，请参阅 [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-data-optimization.html) 和 [AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/data-compaction.html) 用户指南。

`Iceberg` 以表的形式管理大量文件并支持现代分析数据湖操作。如果您在创建新功能组时选择该`Iceberg`选项，Amazon SageMaker Feature Store 将使用 Parquet 文件格式创建`Iceberg`表，并将这些表注册到中 AWS Glue Data Catalog。有关 `Iceberg` 表格格式的更多信息，请参阅[使用 Apache Iceberg 表格](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html)。

**重要**  
请注意，对于 `Iceberg` 表格式的特征组，您必须指定 `String` 作为事件时间的特征类型。如果指定任何其他类型，则无法成功创建特征组。

# 吞吐量模式
<a name="feature-store-throughput-mode"></a>

Ama SageMaker zon Feature Store 提供两种定价模式可供选择：按需 (`On-demand`) 和预配置 (`Provisioned`) 吞吐量模式。 `On-demand`最适合可预测性较低的流量，而最`Provisioned`适合一致且可预测的流量。

您可以选择在给定特征组的 `On-demand` 和 `Provisioned` 吞吐量模式之间切换，以适应应用流量规律不断变化或较难预测的时期。24 小时内只能将特征组吞吐模式更新为 `On-demand` 一次。可以使用 [UpdateFeatureGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html)API 或通过控制台 UI 以编程方式更新吞吐量模式。有关如何使用控制台的更多信息，请参阅[在控制台中使用 A SageMaker mazon Feature Store](feature-store-use-with-studio.md)。

您可以将 `Provisioned` 吞吐量模式用于离线特征组或具有 `Standard` 存储类型的特征组。对于其他存储配置，则使用 `On-demand` 吞吐量模式。有关联机和离线存储配置的信息，请分别参阅 [在线存储](feature-store-storage-configurations-online-store.md) 和 [离线存储](feature-store-storage-configurations-offline-store.md)。

有关定价的更多详情，请参阅 [Amazon SageMaker 定价](https://aws.amazon.com/sagemaker/pricing/)。

**Topics**
+ [

## 按需吞吐量模式
](#feature-store-throughput-mode-on-demand)
+ [

## 预配置吞吐量模式
](#feature-store-throughput-mode-provisioned)
+ [

## 吞吐量模式指标
](#feature-store-throughput-mode-metrics)
+ [

## 吞吐量模式限制
](#feature-store-throughput-mode-limits)

## 按需吞吐量模式
<a name="feature-store-throughput-mode-on-demand"></a>

当使用工作负载未知、应用流量不可预测且无法预测容量需求的特征组时，`On-demand`（默认）吞吐量模式最为有效。

`On-demand` 模式对应用程序在特征组上执行的读写操作收费。您无需指定应用程序的读写吞吐量，因为当工作负载增加或减少时，特征存放区可立即满足您的需求。您只需支付您使用的费用，费用以 `ReadRequestsUnits` 和 `WriteRequestsUnits` 为单位。

您可以使用[CreateFeatureGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFeatureGroup.html)或[UpdateFeatureGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html) APIs 或通过控制台 UI 启用`On-demand`吞吐量模式。有关使用管理控制台用户界面的更多信息，请参阅 [在控制台中使用 A SageMaker mazon Feature Store](feature-store-use-with-studio.md)。

**重要**  
24 小时内只能将特征组吞吐模式更新为 `On-demand` 一次。

## 预配置吞吐量模式
<a name="feature-store-throughput-mode-provisioned"></a>

当使用具有可预测工作负载的特征组时，`Provisioned` 吞吐量模式效果最佳，而且可以预测容量需求以控制成本。对于某些可以提前预测吞吐量要求的工作负载，这可以使其更具成本效益。

将特征组设置为 `Provisioned` 模式时，会指定容量单位，即应用程序可从特征组中消耗的最大容量。如果您的应用程序超过了该 `Provisioned` 吞吐能力，就会受到请求节流的限制。

以下是有关读写容量单位的信息。
+ 通过 `GetRecord` API 检索单条记录（最多 4 KB）将*至少*消耗 1 个 RCU（读取容量单位）。回收较大的有效载荷可能需要更多时间。所需的读取容量单位总数取决于项目大小，包括特征存放区服务为每条记录添加的少量元数据。
+ 通过 `PutRecord` API 发出的单个写入请求，如果有效载荷为 1 KB，将*至少*消耗 1 个 WCU（写入容量单位），且小于 1 KB 的有效载荷会按最近的 KB 向上取整。根据事件时间、记录的删除状态和有效时间 (TTL) 状态，消耗的时间可能会更长。有关 TTL 的更多信息，请参阅 [记录的生存时间 (TTL) 持续时间](feature-store-time-to-live.md)。

**重要**  
在设置容量单位时，请考虑以下几点：  
即使您没有完全使用 `Provisioned` 容量，也将按照您为特征组提供的读写能力收费。
如果读取或写入容量设置过低，请求可能会出现节流。
在某些情况下，由于特征存放区服务会添加记录级元数据以启用各种功能，因此记录可能会消耗额外的容量单位。
仅使用`GetRecord`或仍`BatchGetRecord` APIs 会消耗与整条记录相对应的 RCU 来检索要素子集。
对于写入容量，应提供近期峰值容量的 2 倍，以避免在执行回填或批量摄取时出现节流，因为这可能会导致大量历史记录写入。这是因为写入历史记录会消耗额外的写入容量。
特征存放区目前不支持 `Provisioned` 模式的自动扩缩。

您可以使用[CreateFeatureGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFeatureGroup.html)或[UpdateFeatureGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html) APIs 或通过控制台 UI 启用`On-demand`吞吐量模式。有关使用管理控制台用户界面的更多信息，请参阅 [在控制台中使用 A SageMaker mazon Feature Store](feature-store-use-with-studio.md)。

下面介绍启用 `Provisioned` 模式后如何增加或减少特征组的 RCU 和 WCU 吞吐量。

**增加预配置吞吐量**

您可以根据需要使用 [UpdateFeatureGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html)API 或控制台用户界面增加 RCU 或 WCU。

**减少预配置吞吐量**

您可以使用 [UpdateFeatureGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateFeatureGroup.html)API 或控制台用户界面减少功能组的 RCU 和 WCU（或两者兼而有之）。

每天可对特征组执行的 `Provisioned` 容量递减次数有一个默认配额。天依据协调世界时 (UTC) 定义。在某一天，您可以在一小时内执行最多四次减少，只要您在当天未执行任何其他减少。随后，只要前一小时没有减少，每小时就可以再减少一次。这实际上将每日的减小操作的最大次数设置为 27 次（在前 1 个小时内为 4 次减小操作，对于一天内的每个后续 1 小时时段，为 1 次减小操作）。

## 吞吐量模式指标
<a name="feature-store-throughput-mode-metrics"></a>

处于 `On-demand` 模式的特征组将发出 `ConsumedReadRequestsUnits` 和 `ConsumedWriteRequestsUnits` 指标。处于 `Provisioned` 模式的特征组将发出 `ConsumedReadCapacityUnits` 和 `ConsumedWriteCapacityUnits` 指标。有关特征存放区指标的更多信息，请参阅 [亚马逊 SageMaker 精选商店指标](monitoring-cloudwatch.md#cloudwatch-metrics-feature-store)。

## 吞吐量模式限制
<a name="feature-store-throughput-mode-limits"></a>

每个 AWS 账户 都有默认的服务配额或限制，用于帮助确保可用性并管理账单风险。有关默认配额和限制的信息，请参阅 [配额、命名规则和数据类型](feature-store-quotas.md)。

在某些情况下，这些限制可能低于文件中的规定。如果您需要更高的限额，可以提交增加限额的申请。最好在达到当前限制之前进行操作，以避免作业中断。有关服务配额以及如何请求增加配额的更多信息，请参阅 [AWS 服务配额](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)。