メインコンテンツまでスキップ

宣言的機能を具体化して提供する

備考

ベータ版

この機能はベータ版であり、次のリージョンで利用できます: us-east-1およびus-west-2

Unity Catalogに保存される宣言的な機能定義を作成したら、機能定義を使用して ソース テーブルから機能データを生成できます。 このプロセスは、機能の具体化と呼ばれます。Databricks 、 LakeFlow Spark宣言型パイプラインを作成および管理し、モデルのトレーニングとバッチ スコアリングまたはオンライン サービスのためにUnity Catalogにテーブルを設定します。

要件

  • 機能は宣言型機能APIを使用して作成し、 Unity Catalogに保存する必要があります。
  • バージョン要件については、 「要件」を参照してください。

APIデータ構造

OfflineStoreConfig

マテリアライズされた機能が書き込まれるオフラインストアの構成。 マテリアライゼーション パイプラインは、このストアに新しいテーブルを作成します。

Python
OfflineStoreConfig(
catalog_name: str, # Catalog name for the offline table where materialized features will be stored
schema_name: str, # Schema name for the offline table
table_name_prefix: str # Table name prefix for the offline table. The pipeline may create multiple tables with this prefix, each updated at different cadences
)
Python
from databricks.feature_engineering.entities import OfflineStoreConfig

offline_store = OfflineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features"
)

OnlineStoreConfig

モデルサービングで使用される機能を保存するオンラインストアの設定。 マテリアライゼーションにより、 catalog.schema.table_name_prefixを持つDeltaテーブルが作成され、テーブルが同じ名前の Lakebase テーブルにストリームされます。

Python
from databricks.feature_engineering.entities import OnlineStoreConfig

online_store = OnlineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features_serving",
online_store_name="customer_features_store"
)

MaterializedFeature

マテリアライズされた、つまりUnity Catalogで使用できる事前計算済みの表現を持つ宣言型機能を表します。 オフライン テーブルとオンライン テーブルには、別個のマテリアライズド フィーチャがあります。通常、ユーザーはMaterializedFeatureを直接インスタンス化しません。

API関数呼び出し

materialize_features()

宣言的機能のリストをオフラインDeltaテーブルまたはオンラインFeature Storeに具体化します。

Python
FeatureEngineeringClient.materialize_features(
features: List[Feature], # List of declarative features to materialize
offline_config: OfflineStoreConfig, # Offline store config if materializing offline
online_config: Optional[OnlineStoreConfig] = None, # Online store config if materializing online
pipeline_state: Union[MaterializedFeaturePipelineScheduleState, str], # Materialization pipeline state - currently must be "ACTIVE"
cron_schedule: Optional[str] = None, # Materialization schedule, specified in quartz cron syntax. Currently must be provided.
) -> List[MaterializedFeature]:

このメソッドは、具体化された機能のリストを返します。これには、機能値が更新されたときの cron スケジュールなどのメタデータと、機能が具体化されたUnity Catalogテーブルに関する情報が含まれます。

OnlineStoreConfigOfflineStoreConfigの両方が指定されている場合は、指定された機能ごとに 2 つの具体化された機能が返され、ストアの種類ごとに 1 つずつになります。

list_materialized_features()

ユーザーのUnity Catalogメタストア内のすべての具体化された機能のリストを返します。

デフォルトでは、最大 100 個の機能が返されます。この制限は、 max_results問題を使用して変更できます。

返された具体化された機能を機能名でフィルタリングするには、オプションのfeature_name問題を使用します。

Python
FeatureEngineeringClient.list_materialized_features(
feature_name: Optional[str] = None, # Optional feature name to filter by
max_results: int = 100, # Maximum number of features to be returned
) -> List[MaterializedFeature]:

マテリアライズドフィーチャを削除する方法

マテリアライズドフィーチャを削除するには、 list_materialized_features()を使用します。table_name属性を確認し、 Unity Catalog内のそのテーブルに移動して、その機能を含むテーブルを削除します。 [リネージ] タブを使用して、関連するパイプラインを特定し、それらも削除します。 最後に、オンライン テーブルの場合は、オフライン パイプラインとテーブルも削除されていることを確認します。

ベータ版では、削除APIsサポートされていません。 必要に応じて、 Databricks UI を使用してフィーチャ パイプラインと特徴量テーブルを手動で削除できます。

リアルタイムアプリケーションでのオンライン特徴量の使用

リアルタイム アプリケーションやサービスに特徴量を提供するには、 特徴量サービングエンドポイントを作成します。 特徴量サービング エンドポイントを参照してください。

Databricksの特徴量を使用して学習されたモデルは、学習した特徴量に自動的にリネージを追跡します。エンドポイントとしてデプロイすると、これらのモデルは Unity Catalog を使用して、オンライン ストアで適切な特徴量を見つけます。詳細については、オンライン ワークフローで特徴量を使用するを参照してください。

制限事項

  • 連続したフィーチャを具体化することはできません。
  • マテリアライズド フィーチャーは、それが作成されたワークスペース内でのみ操作できます。
  • 機能の削除と一時停止は、パイプライン レベルで手動で管理する必要があります。