Amazon SageMaker Feature Store の新機能で ML 特徴パイプラインを加速
Amazon SageMaker Feature Store が Apache Iceberg のメタデータ管理や AWS Lake Formation を活用した詳細なアクセス制御機能を強化し、大規模 ML 運用の課題を解決する新機能を発表しました。
キーポイント
AWS Lake Formation とのネイティブ統合
特徴グループ作成時に AWS Lake Formation を登録することで、手動設定なしで列レベル、行レベル、セルレベルの詳細なアクセス制御を自動的に適用可能になります。
Apache Iceberg メタデータ管理の強化
メタデータの保持期間やスナップショットライフサイクルポリシーを制御する機能を追加し、高頻度ストリーミングワークロードによるメタファイルの蓄積と予想外のコスト増を防ぎます。
SageMaker Python SDK v3.8.0 の新機能
上記の機能をサポートするモダン化された SDK バージョン 3.8.0 がリリースされ、ML パイプラインの開発と運用を効率化するツールセットが提供されます。
影響分析・編集コメントを表示
影響分析
この発表は、大規模な機械学習プラットフォームの運用において長年課題となっていたセキュリティ管理の手間と、ストリーミングデータによるストレージコストの増大という二つのボトルネックを解消する重要な一歩です。特に AWS Lake Formation との統合により、開発者が手動で設定を行わずにガバナンスポリシーを適用できる点は、企業規模での ML 運用の標準化と加速に寄与します。
編集コメント
ML の実験段階から本番運用へ移行する際の典型的な課題である「セキュリティ管理の手間」と「コストの予期せぬ増大」に対して、AWS が具体的な技術的解決策を提示した重要なニュースです。特に Lake Formation との自動連携は、データガバナンスのハードルを下げる画期的な機能と言えます。
Amazon SageMaker Feature Store は、機械学習(ML)モデルの機能(features)を保存、共有、管理するために設計された完全マネージド型の専用リポジトリです。現在では、Apache Iceberg テーブル形式、ストリーミング取り込み(streaming ingestion)、スケーラブルなバッチ取り込み(scalable batch ingestion)、および AWS Lake Formation を介したきめ細かいアクセス制御(fine-grained access control)をサポートしています。
組織が機械学習プラットフォームを実験段階から本番運用へスケールする際、2 つの運用上の課題が常に浮上します。1 つ目は、新しい特徴量グループごとに手動オーバーヘッドを導入することなく、機密性のある特徴量データへのアクセスを確保することです。2 つ目は、高頻度のストリーミングワークロードによって Apache Iceberg メタデータの量が絶えず増加する中で、ストレージコストを予測可能に保つことです。例えば、ある小売分析チームは、Apache Iceberg ベースのオフラインストアが 1 年未満で 50 TB を超えるメタデータファイルを蓄積し、予想外かつ大幅な Amazon Simple Storage Service (Amazon S3) の利用料を発生させたことを発見しました。一方、業界全体のインフラストラクチャチームからは、特徴量グループ作成の時点で自動的に機能する Lake Formation によるアクセス制御が特徴量データに必要であり、反復的な手動設定を要する後付けの機能としてではなく、最初から組み込まれたものとして欲しいという声が寄せられています。
本日、これらの課題に対応するため、SageMaker Python SDK v3.8.0 で利用可能になる 3 つの新機能を発表します。
- ネイティブ 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 統合の場合:アカウント内に少なくとも 1 つのデータレイク管理者が設定されている必要があります。Feature Store はアクセス制御を有効化する前にこれを検証します。
- オフラインストア用の既存の Amazon S3 バケット。
ソリューション概要
これらの機能は、SDK v3 の FeatureGroupManager.create() および FeatureGroupManager.update() コールにおける新しいパラメータを通じて提供されます。LakeFormationConfig は自動アクセス制御セットアップをトリガーし、IcebergProperties はメタデータのライフサイクルを設定します。これらは特徴グループ作成時に設定するか、既存の特徴グループに適用することができます。
SageMaker Python SDK v3 における Feature Store
2026 年 4 月 16 日にリリースされた SageMaker Python SDK v3.8.0 は、本記事で説明する機能の基盤です。近代化された SDK はモジュラーアーキテクチャ、パフォーマンスの向上、および従来のハード依存関係(PyTorch など)の削除を導入しています。これらの変更により、インストールが高速化され、環境サイズが小さくなります。
SDK v3 で利用可能な Feature Store の機能は以下の通りです:
- Feature group のライフサイクル管理:Feature group の作成、説明、更新、削除、および一覧表示。
- レコード操作:PutRecord、GetRecord、BatchGetRecord。
- 学習用データセットの抽出:学習用データセット構築のためのポイントインタイム整合性クエリ。
- DataFrame の取り込み:Pandas および Spark DataFrames からの FeatureGroupManager.ingest() メソッドの使用。
- 新しいオフラインストアのパラメータ:IcebergProperties と LakeFormationConfig は、作成および更新ワークフローで完全にサポートされています。
Feature Store API のインターフェースは SDK v2 と整合しているため、既存のコードは最小限の変更で動作します。SDK の他の領域における破壊的変更の詳細については、SDK v3 チェンジログ を参照してください。
SDK v3 によるクイックスタート
新しい Lake Formation および Iceberg パラメータを使用して Feature group を作成する方法は以下の通りです:
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 は自動的に以下の操作を代行して実行します:
- Lake Formation に S3 データの場所を追加します。オフラインストア用の 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 Identity and Access Management (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,
)
Feature group の設定完了後、Lake Formation コンソールまたは API を使用して、細粒度の権限を付与します。データサイエンスチームに対しては、customer_id、credit_score、region 列のみへの SELECT アクセス(列レベルでのフィルタリング)を付与できます。また、analyst に対しては region = 'us-east-1' の行に限定する(行レベルでのフィルタリング)、あるいは両方を組み合わせてセルレベルのアクセス制御を行うことも可能です。
重要な考慮事項
Online store への影響はありません。 Lake Formation のアクセス制御は Offline store のみに適用されます。Online store は引き続き IAM ベースの認可を使用するため、リアルタイム推論のレイテンシは変更されません。
AWS Glue および Iceberg テーブル形式の両方に対応します。 Offline store に使用するテーブル形式がどちらであっても、Lake Formation のアクセス制御は同じように適用されます。
クロスアカウント対応。 AWS Resource Access Manager (AWS RAM) を使用して Feature Store テーブルをアカウント間で共有している場合でも、Lake Formation による付与は既存のクロスアカウント共有パターンと併用して機能します。なお、テーブル形式が Iceberg の場合、クロスアクセスにはハイブリッドアクセスモードを無効化する必要があります。
前提条件:データレイク管理者。 アクセストレーを有効化する前に、システムはアカウント内に少なくとも 1 つの Data Lake Administrator が設定されていることを検証します。存在しない場合、作成呼び出しは非同期で失敗するのではなく、即座に記述的なエラーを返します。
詳細については、Feature Groups を使用した Lake Formation の有効化 を参照してください。
Iceberg テーブルプロパティを追加してオフラインストアを管理する
Amazon SageMaker Feature Store は、オフラインストアのテーブル形式として Apache Iceberg をサポートしており、コンパクション(圧縮)を通じてクエリパフォーマンスを向上させ、レコードレベルの操作をサポートしています。このセクションでは、Iceberg メタデータのライフサイクルを制御するための新しいパラメータをご紹介します。
高頻度書き込みを必要とするワークロード(数秒ごとにレコードを取り込むストリーミング特徴パイプラインなど)では、Iceberg メタデータファイルは各コミットごとに蓄積されます。ライフサイクル制御がない場合、このメタデータは指数関数的に増加する可能性があります。40 以上のストリーミング特徴グループを持つある顧客では、S3 バケットのサイズが数ギガバイトから 1 年未満で 50 TB を超えるメタデータへと膨れ上がりました。Feature Store はオフラインストアに対して高頻度(コミット間隔は 10 分未満)でコミットを行っており、各コミットで新しいメタデータファイルが生成されていました。スナップショット数やメタデータファイルの保持期間を制限する書き込みプロパティが事前に設定されていなかったため、メタデータは制御不能な状態で蓄積されました。彼らが Amazon Athena を通じて試みたクリーンアップ操作(OPTIMIZE および VACUUM)は、50 TB を超えるテーブルでタイムアウトしました。やむを得ず高コストの Amazon EMR Serverless Spark ジョブに頼り、最終的にはテーブルを完全に書き直す必要がありました。
解決策
Iceberg フォーマットの特徴グループを作成する際に、IcebergProperties 設定を渡すことができるようになりました。これらのプロパティは基盤となる Iceberg テーブルに適用され、作成初日からメタデータライフサイクルの制御が可能になります。また、FeatureGroupManager.update() を使用して既存の特徴グループ上の Iceberg プロパティも更新できます。
サポートされているプロパティの例を以下に示します:
Property | Default | Description
---|---|---
write.metadata.delete-after-commit.enabled | false | 各コミット後に追跡された最古のメタデータファイルを削除
write.metadata.previous-versions-max
100
追跡する以前のバージョンのメタデータファイルの最大数
history.expire.max-snapshot-age-ms
432000000 (5 days)
期限切れ処理中に保持するスナップショットの最大年齢
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 の行グループサイズ(Parquet row group size)
read.split.target-size
134217728 (128 MB)
データ入力スプリットを結合する際の目標サイズ
完全なサポート対象プロパティのリストについては、SageMaker AI ドキュメントの Iceberg メタデータ管理 を参照してください。
コード例
fg = FeatureGroupManager.create(
feature_group_name="streaming-click-features",
record_identifier_feature_name="session_id",
event_time_feature_name="event_time",
feature_definitions=clicks_df,
role_arn=role,
offline_store_config=OfflineStoreConfig(
s3_storage_config=S3StorageConfig(s3_uri=f"s3://{bucket}/feature-store/"),
table_format="Iceberg",
),
iceberg_properties=IcebergProperties(
properties={
"write.metadata.delete-after-commit.enabled": "true",
"write.metadata.previous-versions-max": "10",
"history.expire.max-snapshot-age-ms": "86400000",
"history.expire.min-snapshot
原文を表示
Amazon SageMaker Feature Store is a fully managed, purpose-built repository to store, share, and manage features for machine learning (ML) models. It now supports Apache Iceberg table format, streaming ingestion, scalable batch ingestion, and fine-grained access control through AWS Lake Formation.
As organizations scale their machine learning platforms from experimentation to production, two operational challenges consistently surface. The first is securing access to sensitive feature data without introducing manual overhead for every new feature group. The second is keeping storage costs predictable when high-frequency streaming workloads generate ever-growing volumes of Apache Iceberg metadata. For example, one retail analytics team discovered that their Apache Iceberg-based offline store had accumulated over 50 TB of metadata files in under a year, driving substantial and unexpected Amazon Simple Storage Service (Amazon S3) charges. Meanwhile, infrastructure teams across industries told us they need Lake Formation-enforced access control on feature data that works automatically at the point of feature group creation. They don’t want it as an afterthought requiring repetitive manual configuration.
Today, we’re announcing three new capabilities available in SageMaker Python SDK v3.8.0 that address these challenges:
- Native AWS Lake Formation integration – Register your offline store with Lake Formation during feature group creation, or for existing feature groups, to enforce column-level, row-level, and cell-level access control. No manual Lake Formation setup required.
- Additional Apache Iceberg table properties – Control metadata retention and snapshot lifecycle policies at feature group creation or on existing feature groups to prevent metadata accumulation and reduce storage costs.
- Feature Store support in SageMaker Python SDK v3 – The modernized SDK v3.8.0 brings the full set of Feature Store capabilities, including these new features, into a modular, faster, lighter-weight package.
In this post, we walk through each capability with code examples you can use to get started. For complete end-to-end walkthroughs, see the accompanying notebooks for Lake Formation governance and Iceberg table properties in the SageMaker Python SDK repository.
Prerequisites
To follow along with the examples in this post, you need:
- An AWS account with permissions to create Amazon SageMaker AI resources.
- An Amazon SageMaker AI execution role with access to Amazon S3, AWS Glue, and AWS Lake Formation.
- SageMaker Python SDK v3.8.0 or later. You can use the following command to install SageMaker: pip install --upgrade "sagemaker>=3.8.0"
- For Lake Formation integration: at least one Data Lake Administrator configured in your account. Feature Store validates this before activating access control.
- An existing Amazon S3 bucket for offline store data.
Solution overview
These capabilities are delivered through new parameters in the SDK v3 FeatureGroupManager.create() and FeatureGroupManager.update() calls. The LakeFormationConfigtriggers automatic access control setup, and the IcebergProperties configures metadata lifecycle. Both can be set at feature group creation time or applied to existing feature groups.
Feature Store in SageMaker Python SDK v3
SageMaker Python SDK v3.8.0, released April 16, 2026, is the foundation for the capabilities described in this post. The modernized SDK introduces a modular architecture, improved performance, and removal of legacy hard dependencies (such as PyTorch). These changes result in faster installation and smaller environments.
The following Feature Store capabilities are available in SDK v3:
- Feature group lifecycle management: Create, describe, update, delete, and list feature groups.
- Record operations: PutRecord, GetRecord, and BatchGetRecord.
- Training dataset extraction: Point-in-time–correct queries for building training datasets.
- DataFrame ingestion: FeatureGroupManager.ingest() from both Pandas and Spark DataFrames.
- New offline store parameters: IcebergProperties and LakeFormationConfig are fully supported in the create and update workflows.
The Feature Store API surface is consistent with SDK v2, so existing code works with minimal changes. Review the SDK v3 changelog for details on breaking changes in other areas of the SDK.
Quick start with SDK v3
Here’s how to create a feature group with the new Lake Formation and Iceberg parameters:
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",
}
),
)Govern your offline store with native Lake Formation integration
Configuring AWS Lake Formation on Feature Store data previously required several manual steps: registering S3 locations, revoking the IAMAllowedPrincipals group, and configuring data filters for each feature group. This process was time-consuming, error-prone, and had to be repeated for every new feature group. Organizations in financial services, healthcare, and other regulated industries that need column-level, row-level, and cell-level access control found this particularly burdensome.
You can now activate Lake Formation access control on a feature group’s offline store at creation time by passing a LakeFormationConfig to FeatureGroupManager.create(). You can also activate it on existing feature groups using FeatureGroupManager.enable_lake_formation(). When this configuration is turned on, Feature Store automatically performs the following operations on your behalf:
- Adds the S3 data location to Lake Formation. The offline store S3 prefix is registered as a Lake Formation–governed data lake location. Trusted analytics services (Amazon Athena, AWS Glue, Amazon EMR, Amazon Redshift Spectrum) then receive temporary credentials from Lake Formation to query the data.
- Disables hybrid access mode (optional). When you set hybrid_access_mode_enabled=False, the SDK revokes the IAMAllowedPrincipal grant on the AWS Glue table, so access must go through Lake Formation’s permission model only. With hybrid_access_mode_enabled=True, both AWS Identity and Access Management (IAM) policies and Lake Formation permissions coexist, which is useful for gradual migration. For more information, see hybrid access mode.
- Provides a recommended S3 deny policy. For customers who need end-to-end governance, the SDK logs a recommended bucket policy as a warning message after activation. Review this policy and apply it to your Amazon S3 bucket to block direct S3 reads for unauthorized principals, closing the last path that could bypass Lake Formation.
This is an opt-in, per-feature-group setting. If you omit it, behavior is unchanged and existing feature groups continue to work with IAM-based access.
Code example
The following creates a new feature group with Lake Formation access control activated. For additional configuration options, see Enable Lake Formation with Feature Groups.
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,
),
)To activate Lake Formation on an existing feature group:
fg = FeatureGroupManager.get(
feature_group_name="existing-feature-group",
)
fg.enable_lake_formation(
hybrid_access_mode_enabled=True,
acknowledge_risk=True,
)After the feature group is configured, use the Lake Formation console or API to grant fine-grained permissions. You can grant a data science team SELECT access to only the customer_id, credit_score, and region columns (column-level filtering). You can also restrict an analyst to rows where region = 'us-east-1' (row-level filtering), or combine both for cell-level access control.
Key considerations
Online store isn’t affected. Lake Formation access control applies only to the offline store. The online store continues to use IAM-based authorization, so real-time inference latency is unchanged.
Works with both AWS Glue and Iceberg table formats. Lake Formation access control applies the same way regardless of which table format you use for the offline store.
Cross-account compatible. If you use AWS Resource Access Manager (AWS RAM) to share Feature Store tables across accounts, Lake Formation grants continue to work alongside existing cross-account sharing patterns. Note: you must disable hybrid access mode for cross-account access when the table format is Iceberg.
Prerequisite: Data Lake Administrator. The system validates that at least one Data Lake Administrator is configured in your account before activating access control. If none exists, the create call returns an immediate, descriptive error rather than failing asynchronously.
For more information, see Enable Lake Formation with Feature Groups.
Manage your offline store with additional Iceberg table properties
Amazon SageMaker Feature Store supports Apache Iceberg as a table format for the offline store, which improves query performance through compaction and supports record-level operations. This section introduces new parameters that give you control over Iceberg metadata lifecycle.
For workloads with high-frequency writes (such as streaming feature pipelines that ingest records every few seconds), Iceberg metadata files accumulate with every commit. Without lifecycle controls, this metadata can grow exponentially. One customer with over 40 streaming feature groups saw their S3 bucket grow from a few gigabytes to over 50 TB of metadata in under a year. Feature Store was committing to the offline store at high frequency (under 10 minutes between commits), and each commit produced new metadata files. Without write properties preset to limit snapshots or metadata file retention, the metadata accumulated unchecked. The cleanup operations they attempted through Amazon Athena (OPTIMIZE and VACUUM) timed out on tables exceeding 50 TB. They had to resort to costly Amazon EMR Serverless Spark jobs and eventually rewrite their tables entirely.
The solution
You can now pass an IcebergProperties configuration when creating an Iceberg-format feature group. These properties are applied to the underlying Iceberg table, giving you control over metadata lifecycle from day one. You can also update Iceberg properties on existing feature groups using FeatureGroupManager.update().
Some examples of supported properties are:
Property
Default
Description
write.metadata.delete-after-commit.enabled
false
Delete oldest tracked metadata files after each commit
write.metadata.previous-versions-max
100
Max number of previous version metadata files to track
history.expire.max-snapshot-age-ms
432000000 (5 days)
Max age of snapshots to keep while expiring
history.expire.min-snapshots-to-keep
1
Min number of snapshots to keep while expiring
write.target-file-size-bytes
536870912 (512 MB)
Target size for generated data files
write.parquet.row-group-size-bytes
134217728 (128 MB)
Parquet row group size
read.split.target-size
134217728 (128 MB)
Target size when combining data input splits
For the complete list of supported properties, see Iceberg metadata management in the SageMaker AI documentation.
Code example
fg = FeatureGroupManager.create(
feature_group_name="streaming-click-features",
record_identifier_feature_name="session_id",
event_time_feature_name="event_time",
feature_definitions=clicks_df,
role_arn=role,
offline_store_config=OfflineStoreConfig(
s3_storage_config=S3StorageConfig(s3_uri=f"s3://{bucket}/feature-store/"),
table_format="Iceberg",
),
iceberg_properties=IcebergProperties(
properties={
"write.metadata.delete-after-commit.enabled": "true",
"write.metadata.previous-versions-max": "10",
"history.expire.max-snapshot-age-ms": "86400000",
"history.expire.min-snapshot
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み