

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配適用 SDK for Python (Boto3) 使用功能存放區
<a name="feature-store-create-feature-group"></a>

功能群組是主要功能儲存資源，其中包含儲存在 Amazon SageMaker 功能儲存中的機器學習 (ML) 資料和中繼資料。 功能群組是功能和記錄的邏輯分組。功能群組的定義由其線上和離線存放區的組態以及用於描述記錄值的功能定義清單組成。功能定義必須包含記錄識別碼名稱和事件時間名稱。 如需特徵商店概念的更多資訊，請參閱[功能儲存概念](feature-store-concepts.md)。

在使用功能儲存之前，您通常會載入資料集、執行轉換，以及設定要擷取的功能。這個過程有很多變化，並且高度依賴於您的資料。下列主題中的範例程式碼分別參考[特徵商店簡介](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/feature_store_introduction.html) 和 [使用 Amazon SageMaker Feature Store 進行詐騙偵測](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.html)範例筆記本。兩者都使用 適用於 Python (Boto3) 的 AWS SDK。如需更多特徵存放區範例和資源，請參閱 [Amazon SageMaker Feature Store 資源](feature-store-resources.md)。

Feature Store 支援以下功能類型：`String`，`Fractional` (IEEE 64 位元浮點值)，和 `Integral` (Int64 - 64 位元有符號整數值)。預設設定為 `String`。這意味著，如果資料集中的欄不是 `float` 或 `long` 功能類型，則特徵商店中的預設值為 `String`。

您可以使用架構來描述資料的欄和資料類型。您可以將這個結構描述傳遞到 `FeatureDefinitions`，`FeatureGroup` 的必需參數。您可以使用 SDK for Python (Boto3)，當您使用 `load_feature_definitions` 函式時，它會自動偵測資料類型。

使用已存在的記錄 ID 加入新功能記錄時，預設行為如下。在離線儲存中，將附加新記錄。線上儲存中，如果新記錄的事件時間小於現有事件時間，則什麼都不會發生，但是如果新記錄的事件時間大於或等於現有事件時間，則該記錄將被覆寫。

建立新的功能群組時，可選擇下列資料表格式的其中一個：
+ AWS Glue （預設）
+ Apache Iceberg

擷取資料 (尤其是串流時) 可能會導致大量小型檔案存放至離線存放區。這可能會對查詢效能造成負面影響，因為所需的檔案作業數目較多。若要避免潛在的效能問題，請在建立新特徵群組時使用 Apache Iceberg 資料表格式。使用 Iceberg，您可以將小資料文件壓縮為分區中較少的大文件，從而導致查詢速度顯著更快。此壓縮操作是並發的，並且不會影響功能組上正在進行的讀寫操作。如果您在建立新特徵群組時選擇 Iceberg 選項，Amazon SageMaker Feature Store 將使用 Parquet 檔案格式建立 Iceberg 資料表，並將這些表註冊到 AWS Glue Data Catalog。

**重要**  
請注意，對於 Iceberg 資料表格式的特徵群組，您必須指定 `String` 為事件時間的值。如果指定任何其他類型，則無法成功建立功能群組。

在下面我們列出了一些可用的功能儲存託管資源。

**Topics**
+ [功能儲存範例筆記本簡介](feature-store-introduction-notebook.md)
+ [利用功能儲存範例筆記本偵測詐騙](feature-store-fraud-detection-notebook.md)