利用Amazon SageMaker Feature Store新功能加速ML特徵管道
Amazon SageMaker Feature Store發佈了三項新功能:原生AWS Lake Formation集成、額外的Apache Iceberg表屬性以及SageMaker Python SDK v3支持,以簡化機器學習特徵管道的安全治理和成本優化。
Amazon SageMaker Feature Store是一個完全託管的專門存儲庫,用於存儲、共享和管理機器學習模型的特徵。現在,它新增了對Apache Iceberg表格式、流式攝入、可擴展批量攝入以及通過AWS Lake Formation進行細粒度訪問控制的支持。
隨着組織將機器學習平台從實驗階段擴展到生產環境,兩個操作挑戰始終浮現:一是保護敏感特徵數據的訪問,而不為每個新特徵組引入手動開銷;二是在高頻率流式工作負載生成不斷增長的Apache Iceberg元數據時,保持存儲成本可預測。例如,一個零售分析團隊發現,他們的基於Iceberg的離線存儲在不到一年內積累了超過50 TB的元數據文件,導致了大量且意外的Amazon S3費用。同時,跨行業的基礎設施團隊告訴我們,他們需要在特徵數據上實現Lake Formation強制訪問控制,該控制應在創建特徵組時自動生效,而不是事後需要通過重複手動配置。
今天,我們宣佈SageMaker Python SDK v3.8.0中的三項新功能,以應對這些挑戰:
原生AWS Lake Formation集成 – 在創建特徵組時或為現有特徵組註冊離線存儲與Lake Formation,以強制執行列級、行級和單元格級訪問控制。無需手動設置Lake Formation。
額外的Apache Iceberg表屬性 – 在創建特徵組時或對現有特徵組控制元數據保留和快照生命週期策略,以防止元數據累積並降低存儲成本。
SageMaker Python SDK v3中的Feature Store支持 – 現代化的SDK v3.8.0將這些新功能以及全套Feature Store功能整合到一個模塊化、更快、更輕量的包中。
本文將逐一介紹每項功能,並提供代碼示例供您入門。有關完整的端到端演練,請參閲SageMaker Python SDK存儲庫中隨附的Lake Formation治理和Iceberg表屬性筆記。
先決條件
要遵循本文中的示例,您需要:
一個具有創建Amazon SageMaker AI資源權限的AWS賬户。
一個具有訪問Amazon S3、AWS Glue和AWS Lake Formation權限的Amazon SageMaker AI執行角色。
SageMaker Python SDK v3.8.0或更高版本。您可以使用以下命令安裝SageMaker:pip install --upgrade "sagemaker>=3.8.0"
對於Lake Formation集成:賬户中至少配置一個數據湖管理員。Feature Store在激活訪問控制之前會驗證這一點。
一個用於離線存儲數據的現有Amazon S3存儲桶。
解決方案概述
這些功能通過SDK v3中FeatureGroupManager.create()和FeatureGroupManager.update()調用的新參數提供。LakeFormationConfig觸發自動訪問控制設置,IcebergProperties配置元數據生命週期。兩者均可在創建特徵組時設置,或應用於現有特徵組。
SageMaker Python SDK v3中的Feature Store
SageMaker Python SDK v3.8.0(發佈於2026年4月16日)是本文所述功能的基礎。現代化的SDK引入了模塊化架構、改進的性能,並移除了遺留的硬依賴(如PyTorch)。這些變更帶來了更快的安裝速度和更小的環境。
以下是SDK v3中可用的Feature Store功能:
特徵組生命週期管理:創建、描述、更新、刪除和列出特徵組。
記錄操作:PutRecord、GetRecord和BatchGetRecord。
訓練數據集提取:用於構建訓練數據集的點時間正確查詢。
DataFrame攝入:支持從Pandas和Spark DataFrame通過FeatureGroupManager.ingest()進行攝入。
新的離線存儲參數:IcebergProperties和LakeFormationConfig在創建和更新工作流中完全受支持。
Feature Store API表面與SDK v2一致,因此現有代碼只需少量更改即可工作。有關SDK其他區域的重大變更詳見SDK v3變更日誌。
SDK v3快速入門
以下是使用新Lake Formation和Iceberg參數創建特徵組的方法:
fg = FeatureGroupManager.create(
feature_group_name="my-features",
record_identifier_feature_name="user_id",
event_time_feature_name="event_time",
feature_definitions=df,
role_arn=role,
online_store_config={"EnableOnlineStore": True},
offline_store_config=OfflineStoreConfig(
s3_storage_config=S3StorageConfig(s3_uri=f"s3://{bucket}/feature-store/"),
table_format="Iceberg",
),
lake_formation_config=LakeFormationConfig(
enabled=True,
hybrid_access_mode_enabled=True,
acknowledge_risk=True,
),
iceberg_properties=IcebergProperties(
properties={
"write.metadata.delete-after-commit.enabled": "true",
"write.metadata.previous-versions-max": "10",
}
),
)通過原生Lake Formation集成治理您的離線存儲
以前,在Feature Store數據上配置AWS Lake Formation需要多個手動步驟:註冊S3位置、撤銷IAMAllowedPrincipals組、為每個特徵組配置數據過濾器。這一過程耗時、易錯,並且每個新特徵組都必須重複。金融服務、醫療保健和其他受監管行業中需要列級、行級和單元格級訪問控制的組織尤其感到繁瑣。
現在,您可以在創建特徵組時通過向FeatureGroupManager.create()傳遞LakeFormationConfig來激活離線存儲的Lake Formation訪問控制。您也可以使用FeatureGroupManager.enable_lake_formation()在現有特徵組上激活它。啓用此配置時,Feature Store會自動執行以下操作:
將S3數據位置添加到Lake Formation。離線存儲S3前綴被註冊為Lake Formation管理的數據湖位置。受信任的分析服務(Amazon Athena、AWS Glue、Amazon EMR、Amazon Redshift Spectrum)隨後從Lake Formation獲取臨時憑證以查詢數據。
禁用混合訪問模式(可選)。當您設置hybrid_access_mode_enabled=False時,SDK會撤銷AWS Glue表上的IAMAllowedPrincipal授權,因此訪問必須僅通過Lake Formation的權限模型。當hybrid_access_mode_enabled=True時,AWS身份和訪問管理(IAM)策略和Lake Formation權限共存,這對於逐步遷移很有用。有關更多信息,請參閲混合訪問模式。
提供推薦的S3拒絕策略。對於需要端到端治理的客户,SDK在激活後以警告消息形式記錄推薦的存儲桶策略。請審核此策略並將其應用於您的Amazon S3存儲桶,以阻止未授權主體直接讀取S3,從而關閉可能繞過Lake Formation的最後路徑。
這是一個按特徵組選擇加入的設置。如果省略它,行為不變,現有特徵組繼續使用基於IAM的訪問。
代碼示例
以下代碼創建了一個激活Lake Formation訪問控制的新特徵組。有關其他配置選項,請參閲使用Feature Groups啓用Lake Formation。
fg = FeatureGroupManager.create(
feature_group_name="governed-customer-features",
record_identifier_feature_name="customer_id",
event_time_feature_name="event_time",
feature_definitions=customer_df,
role_arn=role,
online_store_config={"EnableOnlineStore": True},
offline_store_config=OfflineStoreConfig(
s3_storage_config=S3StorageConfig(s3_uri=f"s3://{bucket}/feature-store/"),
table_format="Iceberg",
),
lake_formation_config=LakeFormationConfig(
enabled=True,
hybrid_access_mode_enabled=True,
acknowledge_risk=True,
),
)要在現有特徵組上激活Lake Formation:
fg = FeatureGroupManager.get(
feature_group_name="existing-feature-group",
)
fg.enable_lake_formation(
hybrid_access_mode_enabled=True,
acknowledge_risk=True,
)配置特徵組後,使用Lake Formation控制台或API授予細粒度權限。您可以授予數據科學團隊僅訪問customer_id、credit_score和region列的SELECT權限(列級過濾)。您還可以將分析師限制為region = 'us-east-1'的行(行級過濾),或結合兩者實現單元格級訪問控制。
關鍵注意事項
在線存儲不受影響。Lake Formation訪問控制僅適用於離線存儲。在線存儲繼續使用基於IAM的授權,因此實時推理延遲不變。
同時適用於AWS Glue和Iceberg表格式。無論離線存儲使用哪種表格式,Lake Formation訪問控制的應用方式相同。
跨賬户兼容。如果您使用AWS Resource Access Manager (AWS RAM) 跨賬户共享Feature Store表,Lake Formation授權將繼續與現有跨賬户共享模式協同工作。注意:當表格式為Iceberg時,您必須為跨賬户訪問禁用混合訪問模式。
先決條件:數據湖管理員。系統在激活訪問控制之前會驗證您的賬户中是否至少配置了一個數據湖管理員。如果不存在,創建調用會立即返回描述性錯誤,而不是異步失敗。
有關更多信息,請參閲使用Feature Groups啓用Lake Formation。
使用額外的Iceberg表屬性管理您的離線存儲
Amazon SageMaker Feature Store支持Apache Iceberg作為離線存儲的表格式,這通過壓縮提高了查詢性能並支持記錄級操作。本節介紹了讓您控制Iceberg元數據生命週期的新參數。
對於高頻率寫入的工作負載(例如每幾秒攝入記錄的流式特徵管道),Iceberg元數據文件會隨着每次提交而累積。如果沒有生命週期控制,這些元數據可能呈指數級增長。一位擁有超過40個流式特徵組的客户發現,他們的S3存儲桶在不到一年內從幾個GB增長到超過50 TB的元數據。Feature Store以高頻率(提交間隔少於10分鐘)提交到離線存儲,每次提交都會產生新的元數據文件。沒有預設寫入屬性來限制快照或元數據文件保留,元數據就會無限制積累。他們通過Amazon Athena嘗試的清理操作(OPTIMIZE和VACUUM)在超過50 TB的表上超時。最終不得不依賴昂貴的Amazon EMR Serverless Spark作業,並完全重寫他們的表。
解決方案
現在,您可以在創建Iceberg格式的特徵組時傳遞IcebergProperties配置。這些屬性應用於底層Iceberg表,從一開始就讓您控制元數據生命週期。您還可以使用FeatureGroupManager.update()更新現有特徵組的Iceberg屬性。
支持的屬性示例:
| 屬性 | 默認值 | 描述 | |------|--------|------| | write.metadata.delete-after-commit.enabled | false | 每次提交後刪除最舊的跟蹤元數據文件 | | write.metadata.previous-versions-max | 100 | 要跟蹤的先前版本元數據文件的最大數量 | | history.expire.max-snapshot-age-ms | 432000000 (5天) | 過期時快照的最大保留時間 | | history.expire.min-snapshots-to-keep | 1 | 過期時要保留的最少快照數量 | | write.target-file-size-bytes | 536870912 (512 MB) | 生成數據文件的目標大小 | | write.parquet.row-group-size-bytes | 134217728 (128 MB) | Parquet行組大小 | | read.split.target-size | 134217728 (128 MB) | 合併數據輸入分片時的目標大小 |
有關支持的屬性完整列表,請參閲[已截斷]。
總之,這些新功能使Amazon SageMaker Feature Store更加強大和易於管理,幫助組織在擴展ML平台的同時降低成本並提高安全合規性。