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

特徴量ビューのマテリアライズ

備考

プレビュー

この機能は パブリック プレビュー段階です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。

Unity Catalogに格納されているFeature View定義を作成した後、特徴量定義を使用して、ソーステーブルから特徴量データを生成できます。このプロセスは「特徴量のマテリアライズ」と呼ばれます。Databricksは、モデルのトレーニングとバッチスコアリングまたはオンラインサービングのためにUnity Catalogのテーブルにデータを入力するLakeFlow Pipelinesを作成および管理しています。

Feature Views のサービングに関する情報については、「Serve Feature Views」を参照してください。

要件​

  • 特徴量は特徴量ビューとして作成され、Unity Catalog に格納される必要があります。
  • バージョン要件については、 「要件」を参照してください。

特徴量タイプ別のマテリアライゼーションのサポート​

特徴量をマテリアライズできるかどうか、およびどこにマテリアライズできるかは、そのタイプによって異なります。

オンラインストアにのみマテリアライズされる特徴量も、オフラインで使用可能です。create_training_set と compute_features はソースから直接ポイントインタイムの値をコンピュートするため、オフラインのマテリアライズは不要です。

列選択の具体化​

ColumnSelection この機能は、集計を行わずに、エンティティキーごとに単一の列の最新値を選択します。それらはオンラインストアでのみ販売可能です。オフラインでの使用例(トレーニングおよびバッチ推論)では、 ColumnSelection特徴量はクエリ時にソースデータから直接取得されるため、オフラインでの具体化は不要です。

具現化挙動​

  • このパイプラインは、集計ウィンドウを使用せずに、エンティティキーごとに最新の行をオンラインテーブルに書き込みます。
  • オンラインマテリアライゼーションは、エンティティキーごとに、オンラインテーブルに最新の値を入力します。

例​

Python
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
DeltaTableSource, Feature, ColumnSelection, TableTrigger, OnlineStoreConfig,
)

fe = FeatureEngineeringClient()

delta_source = DeltaTableSource(
catalog_name="catalog",
schema_name="schema",
table_name="transactions",
)

amount_feature = Feature(
source=delta_source,
function=ColumnSelection("amount"),
entity=["user_id"],
timeseries_column="transaction_time",
name="latest_transaction_amount",
)

# Register before materializing
amount_feature = fe.register_feature(
feature=amount_feature,
catalog_name="catalog",
schema_name="schema",
)

mfs = fe.materialize_features(
features=[amount_feature],
online_config=OnlineStoreConfig(
catalog_name="catalog",
schema_name="feats_online",
table_name_prefix="txn_",
online_store_name="lb_usw2"
),
trigger=TableTrigger(),
)

ColumnSelection この機能では、ソース Delta テーブルが新しいコミットを受け取るたびにパイプラインが実行されるTableTriggerを使用します。オフライン使用ケース(トレーニングおよびバッチ推論)では、 ColumnSelection特徴がソースから直接読み込まれるため、 offline_configは必要ありません。

注記

RequestSource 特徴量は具体化できません。これは、推論時に呼び出し元によって提供されるデータ(またはトレーニング時にラベル付けされたDataFrameから抽出されるデータ)を表しているためです。読み込むソーステーブルがありません。値はリクエストペイロードまたはトレーニングDataFrameのみに存在します。

鮮度境界のある最新値を具体化する​

バッチ Last 集計と RollingWindow を組み合わせることで、オンライン特徴量に有効期間 (TTL) が付与されます。ソース値がウィンドウ内に存在しない場合、その値はオンラインストアから期限切れになります。これは、値の経過時間によって提供しても安全かどうかが決まる場合に便利です。たとえば、過去 1 時間のデバイス状態を提供できる一方で、より古い状態は無期限で利用可能なままでいる代わりに null に解決されます。

RollingWindowは、特徴量にTTLのような動作を与える明示的な期間を定義します。たとえば、ソースが毎日値を公開し、過去7日間の値のみを保持したい場合は、7日間の期間を持つRollingWindowを使用します。Triggerごとに、マテリアライゼーションによってオンラインテーブルが完全に置き換えられるため、ウィンドウ外となった値は予測可能なスケジュールで削除されます。これは、RollingWindowを持つストリーミングLastと同じ結果をもたらしますが、コンピュートを継続的にランしないためコストが低くなります。

This publish pattern is similar to a 特徴量テーブル with a TTL that is published in スナップショット mode.一連の特徴量テーブルを維持し、それらを他のフィーチャビューと並行して使用する場合は、それらをフィーチャビューのオータリングフレームワークに適応させることができます。Use a バッチ Last with a RollingWindow and a TableTrigger.

この組み合わせには、次の要件を持つ特別なオンライン専用マテリアライゼーションモードがあります。

  • ソースは DeltaTableSource である必要があります。
  • 集計関数は Last であり、そのウィンドウは RollingWindow でなければなりません。
  • マテリアライゼーションでは、 OnlineStoreConfig を指定し、 OfflineStoreConfig を省略し、 TableTrigger を使用する必要があります。

次の例では、latest_device_state_1h はこれらの要件を満たす登録済み機能です。

Python
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import OnlineStoreConfig, TableTrigger

fe = FeatureEngineeringClient()

materialized = fe.materialize_features(
features=[latest_device_state_1h],
online_config=OnlineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="latest_device_state_serving",
online_store_name="device_state_store",
),
trigger=TableTrigger(),
)

For offline トレーニング and バッチ scoring, the feature エンジニアリング client コンピュートs the point-in-time value directly from the ソース.この特徴量のオフラインマテリアライズは読み取られません。

考慮事項​

  • 有効期限はTriggerでのみ進行します。 オンライン値とその有効期限は、ソース テーブルのcommitがマテリアライゼーションの更新をTriggerしたときに進行します。時間の経過だけでは更新はTriggerされません。ソースの発行が停止した場合、後続のcommitが更新をTriggerするまで、最後にマテリアライズされた値はオンラインストアに残ります。
  • 時系列列をソースの公開時刻に合わせます。 時系列列には、ソースがデータを公開した時刻が反映されている必要があります。そうしないと、オンラインストアはTrigger時刻に結合し、オフライン読み取りは時系列時刻に結合するため、オンラインとオフラインの値が乖離します。
  • ウィンドウの継続時間を公開ケイデンスの倍数に設定します。 RollingWindowの継続時間がソースの公開ケイデンスの倍数でない場合、一部の値はオフラインのトレーニング中は期限切れとして扱われますが、オンラインでは引き続き表示されます。

オンデマンド特徴量とマテリアライゼーション​

RequestSource 値はトレーニングの DataFrame または推論リクエストから取得されるため、実体化するソーステーブルはありません。FeatureViewSource 特徴量は、トレーニングまたはサービング中に、アップストリームの特徴量値に CustomUDF を適用します。これらは事前計算された結果を保存しません。Delta テーブルによってサポートされる CustomUDF フィーチャのマテリアライズもサポートされていません。

revenue_sum_7d や cost_sum_7d が margin フィーチャーにデータを供給する依存関係グラフの場合:

  • オフラインのトレーニングを行うには、marginを指定してcreate_training_setを呼び出します。利用可能な場合は互換性のあるオフラインのマテリアライゼーションを使用して、アップストリームの特徴量を解決し、ポイントインタイムの値をコンピュートします。
  • オンラインサービングのために、サポートされている収益とコストの特徴量をオンラインストアにマテリアライズします。The Endpoint looks them up and コンピュート margin for each request.
  • サポートされている上流の特徴量のみを materialize_features に渡し、margin やリクエストベースの特徴量は渡さないでください。マテリアライズでは、派生特徴量の依存関係は再帰的にマテリアライズされません。

リクエストベースの特徴量のみを使用するグラフには、オンラインストアは必要ありません。Train with FeatureViewSource features および Serve derived features を参照してください。

権限​

マテリアライゼーションには、機能に対する権限、およびソースリソースと宛先リソースに対する権限が必要です。Unity Catalog の権限の詳細については、Unity Catalog の権限リファレンスを参照してください。

  • 機能をマテリアライズするには MANAGE が必要です。 materialize_features を呼び出すと、バッキング LakeFlow Pipelines と Unity Catalog テーブルが作成および管理されるため、これは管理操作になります。マテリアライズされる機能定義を読み取るには、機能に対する MANAGE と、READ FEATURE が必要です。

  • マテリアライズされた機能の削除は、その作成者に制限されています。 マテリアライズされた機能を作成したユーザーのみが、delete_materialized_feature を使用してそれを削除できます。この制限は Unity Catalog の権限とは無関係です。機能またはその親スキーマに対する MANAGE があっても、他のユーザーがそれを削除することはできません。

  • ソースデータの読み取りには SELECT が必要です。 Delta テーブルソースを使用する機能の場合、ソーステーブルに SELECT が存在する必要があります。ストリームソースを使用する機能の場合、ストリームの取り込みテーブルに SELECT が存在する必要があります。

    ストリームの認証設定に必要なその他の権限については、Kafka の場合はKafka 認証を、Kinesis の場合はKinesis 認証を参照してください。

  • 送信先テーブルを作成するには、CREATE TABLEが必要です。 OfflineStoreConfig または OnlineStoreConfig で指定されたすべてのスキーマに対して CREATE TABLE を持っている必要があります。オフラインおよびオンラインの送信先は異なるスキーマまたはカタログに配置でき、マテリアライズベーションには各送信先に対する権限が必要です。

  • オンラインストアへのマテリアライズには CAN USE が必要です。 オンラインストアで使用される Lakebase インスタンスまたはプロジェクトに CAN USE がある必要があります。Lakebase の権限に関する情報については、プロジェクト権限の付与を参照してください。

  • マテリアライズされた特徴量を一覧表示するには、親特徴量に対する READ FEATURE が必要です。 list_materialized_features を使用するには、マテリアライズされた特徴量に対して READ FEATURE を持っている必要があります。

  • マテリアライズドデータ読み取りには SELECT が必要です。 アクセスするオフラインまたはオンラインの出力テーブルごとに、SELECT が存在している必要があります。親機能上の READ FEATURE では、これらのテーブルへのアクセス権は付与されません。

マテリアライズベーションに関与するすべての Unity Catalog リソースについて、親カタログに対する USE CATALOG および親スキーマに対する USE SCHEMA も必要です。この要件は、機能、各ソースまたはストリームの取り込みテーブル、および構成された各送信先(宛先)に適用されます。スキーマまたはカタログに対して付与された READ FEATURE および MANAGE は、それが含まれる現在および将来のすべての機能に適用されます。

APIデータ構造​

OfflineStoreConfig​

具体化された機能が書き込まれるオフラインストアの設定。materialize_featuresが呼び出されると、Feature Storeのバックエンドはこのプレフィックスを使用してテーブルを作成します。 各パイプライン実行時に、最新のフィーチャー値が実装スケジュールに従ってテーブルに実装されます。

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テーブルが作成され、同じ名前でオンラインFeature Storeにテーブルがストリーム配信されます。

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​

マテリアライズされた Feature View、つまり Unity Catalog で事前計算された表現が利用可能な Feature View を表します。オフラインテーブルとオンラインテーブルには、個別のマテリアライズド特徴量があります。通常、ユーザーが MaterializedFeature を直接インスタンス化することはありません。

API関数呼び出し​

materialize_features()​

Feature Views のリストを、オフライン Delta テーブル、またはオンライン Feature Store のいずれかにマテリアライズします。この関数を呼び出す前に、特徴量は Unity Catalog に登録されている必要があります(たとえば、create_feature または register_feature を使用して)。登録されていないローカルで構築された特徴量は動作しません。

Python
FeatureEngineeringClient.materialize_features(
*, # Arguments are keyword-only
features: List[Feature], # List of Feature Views to materialize
offline_config: Optional[OfflineStoreConfig] = None, # Offline store config (aggregation features only)
online_config: Optional[OnlineStoreConfig] = None, # Online store config
trigger: Union[CronSchedule, TableTrigger, StreamingMode], # Materialization trigger
tags: Optional[Dict[str, str]] = None, # Custom tags for cost attribution
budget_policy_id: Optional[str] = None, # Serverless usage policy for cost attribution
) -> List[MaterializedFeature]:

このメソッドは、具体化された機能のリストを返します。このリストには、機能の値が更新された日時や、機能が具体化されているUnity Catalogテーブルに関するメタデータが含まれています。

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

trigger問題は、いつ実体化パイプラインを実行するかを制御します。

  • CronSchedule :特徴量のタイミングから派生したスケジュール、または呼び出し元が提供する Quartz cron スケジュールに従って実行されます。バッチ集計特徴量(DeltaTableSource の AggregationFunction)でサポートされています。
  • TableTrigger :上流側のDeltaテーブルがcommitを受信したときに実行されます。DeltaTableSourceによってバックアップされる、 ColumnSelection の機能および集約機能(AggregationFunction)でサポートされています。集約機能の場合、パイプラインは、機能の粒度の半分に1回以下(スライディング ウィンドウのスライド期間、またはタンブリング ウィンドウのウィンドウ長)、最大1時間、かつ5分に1回より高頻度にならないように実行がスロットルされます。たとえば、1時間の粒度に対して30分に1回以下、または2時間以上の粒度に対して1時間に1回以下となります。間隔は前のランから計測されるため、その経過後に到着したcommitでも、引き続き速やかにランがトリガーされます。
  • StreamingMode : 継続的なストリーミングパイプラインとして実行されます。StreamSource がベースとなる機能に必要です。

単一の materialize_features 呼び出しで、異なるトリガータイプを必要とする特徴量を混在させることはできません。代わりに、個別の呼び出しを実行してください。

マテリアライゼーションのコストを配分するには、tags、budget_policy_id、またはその両方を渡します。Databricks は作成されるジョブまたはパイプラインにこれらを適用するため、その支出には課金利用システムテーブルでの貴社の帰属情報が引き継がれます。両方とも作成時に適用されるため、既存のマテリアライゼーションを異なる方法で属性付けするには、新しいマテリアライズドビューを作成する必要があります。budget_policy_id は、Serverless 使用ポリシーの ID を受け取ります。作成して ID を取得するには、Serverless 使用ポリシーの作成を参照してください。タグの制限、各値が到達するリソース、および帰属する支出をクエリーする方法については、Feature Store のコスト管理を参照してください。

オフラインストアに具体化​

Python
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
CronSchedule, OfflineStoreConfig,
)

fe = FeatureEngineeringClient()

materialized = fe.materialize_features(
features=features,
offline_config=OfflineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features"
),
trigger=CronSchedule(
quartz_cron_expression="0 0 * * * ?", # Hourly
timezone_id="UTC",
),
)

オンラインストアに具体化​

注記

ほとんどの集約特徴量をオンラインストアにマテリアライズするには、オフラインストアにもマテリアライズする必要があります。offline_configとonline_configの両方が必要です。online_store_nameは、既存のオンライン Feature Store を参照している必要があります。作成手順については、Databricks Online Feature Storeをご覧ください。

ColumnSelection 機能にはOfflineStoreConfigは必要ありません。ColumnSelection の具体化を参照してください。

RollingWindow の特殊ケースを持つバッチ Last も、オンライン専用です。See Materialize freshness-bounded latest values.

Python
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
CronSchedule, OfflineStoreConfig, OnlineStoreConfig,
)

fe = FeatureEngineeringClient()

materialized = fe.materialize_features(
features=features,
offline_config=OfflineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features"
),
online_config=OnlineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features_serving",
online_store_name="customer_features_store"
),
trigger=CronSchedule(
quartz_cron_expression="0 0 * * * ?", # Hourly
timezone_id="UTC",
),
)

ストリーミング特徴量をマテリアライズする​

ストリーミング特徴量はオンラインストアにのみマテリアライズできます。offline_configパラメーターはサポートされていません。オフラインのマテリアライズはサポートされていません。ストリーミング特徴量は、サブ秒の鮮度を確保するためにリアルタイムパイプラインを必要とするためです。オフラインのトレーニングまたは評価の場合、特徴量エンジニアリングクライアントは、評価された各データポイントに基づいて特徴量値を再計算します。

ストリーミング特徴量を同じ materialize_features 呼び出しでバッチ特徴量と混在させることはできません。

Python
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
OnlineStoreConfig, StreamingMode,
)

fe = FeatureEngineeringClient()

materialized = fe.materialize_features(
features=[streaming_feature],
online_config=OnlineStoreConfig(
catalog_name="my_catalog",
schema_name="my_schema",
table_name_prefix="streaming_features_serving",
online_store_name="feature_store_online"
),
trigger=StreamingMode(),
)

list_materialized_features()​

完全な名前によって識別される、単一の特徴量のマテリアライズを返します。feature_name は必須であり、キーワードのみです。多くの特徴量にわたるマテリアライズをレビューするには、まずカタログまたはスキーマ内の特徴量を一覧表示し、次に返された各特徴量に対して list_materialized_features を呼び出します。

defaultでは、最大100個のマテリアライゼーションが返されます。max_results パラメーターを使用して、この制限を変更できます。

Python
FeatureEngineeringClient.list_materialized_features(
*, # Arguments are keyword-only
feature_name: str, # Required: full name of the feature whose materializations to list
max_results: int = 100, # Maximum number of materializations to return
) -> List[MaterializedFeature]:

delete_materialized_feature()​

具体化された機能を削除する前に、その機能を参照しているモデルや機能仕様をすべて削除または更新してください。

具体化されたフィーチャを削除します。渡すべき機能は、機能の種類によって異なります。

  • Aggregation features : Pass the offline materialized feature.If there is an online materialized feature for the same feature, both are deleted.For an online-only バッチ Last feature with a RollingWindow, pass the online materialized feature.
  • ColumnSelection機能 : オンライン具体化機能を渡す。ColumnSelection機能はオンラインストアにのみ実装されるため ( ColumnSelection の実装を参照)、対応するオフライン機能はありません。

マテリアライゼーションの一環として、特徴量は効率化のためにデータソースと集計ウィンドウごとにグループ化されます。ColumnSelection の特徴量には集約ウィンドウがないため、データソースごとにのみグループ化されます。すべてのグループ化された特徴量が削除されるまで、マテリアライゼーションパイプライン、オフラインテーブル、オンラインテーブルは削除されません。グループ内の最後のマテリアル化された特徴が削除されると、Feature Store は、バックグラウンドプロセスによる自動クリーンアップのために、関連付けられたリソースをスケジュールします。バックグラウンドのリソースクリーンアップを参照してください。

マテリアライズドフィーチャーをクリーンアップするには、マテリアライズドフィーチャーに関連付けられているテーブルを参照してください。コンピュートおよびDeltaテーブル リソースがクリーンアップされる前に、テーブル内の各フィーチャ (列ごとに 1 つ) を削除する必要があります。

list_materialized_features()を使用してmaterialized_feature引数を取得します。

Python
FeatureEngineeringClient.delete_materialized_feature(
materialized_feature: MaterializedFeature, # Required: The materialized feature to delete
) -> None
Python
from databricks.feature_engineering import FeatureEngineeringClient

fe = FeatureEngineeringClient()

feature_names = [
"main.feature_store.amount_sum_sliding_7d_1d",
"main.feature_store.amount_sum_sliding_30d_1d",
"main.feature_store.transaction_count_sliding_7d_1d",
"main.feature_store.latest_transaction_amount",
"main.feature_store.latest_user_tier",
]

for name in feature_names:
mfs = fe.list_materialized_features(feature_name=name) # required, keyword-only
offline = [mf for mf in mfs if not mf.is_online]
for mf in (offline or mfs):
fe.delete_materialized_feature(materialized_feature=mf)
fe.delete_feature(full_name=name)

バックグラウンド リソースのクリーンアップ​

マテリアライズド特徴を削除すると、Databricks は特徴量メタデータをすぐに削除します。関連付けられているインフラストラクチャ(テーブル、パイプライン、およびジョブ)は、バックグラウンドプロセスによって非同期でクリーンアップされます。

複数のマテリアライズされたフィーチャーが同じテーブルとパイプラインを共有できるため、それらを参照するすべてのマテリアライズされたフィーチャーが削除されるまで、これらの共有リソースは削除されません。テーブルセットを共有する最後の具現化された機能が削除されると、バックグラウンドプロセスは、次のリソースを自動的に削除します:

  • オフラインのDeltaテーブルには、マテリアライズされた特徴量データが格納されています。
  • 特徴がオンラインストアにマテリアライズされた場合のオンラインテーブル
  • マテリアライズ化パイプライン
  • オーケストレーション ジョブ

このバックグラウンドプロセスは、Databricks管理のシステムサービスプリンシパルを使用して、お客様に代わって、お客様のワークスペースにあるテーブル、パイプライン、およびジョブの削除などのクリーンアップアクションを実行します。対応は必要ありません。クリーンアップは Feature Store によってフルマネージド型で管理されます。

注記

グループ内で最後にマテリアライズされた特徴量を削除してから、関連するテーブルやその他のリソースが削除されるまでに、短い遅延が生じる場合があります。

マテリアライゼーションステータスを表示​

Databricks UI で Feature Views のマテリアライズ状況を表示し、マテリアライズのエラーをデバッグするには、「Unity Catalog での Feature Views の探索」を参照してください。

制限事項​

バッチ特徴量​

  • バッチマテリアライゼーションパイプラインは、Serverless LakeFlow Pipelinesとして実行されます。
  • バッチローリングウィンドウ特徴量は、最新性の制限付き最新値のマテリアライズで説明されているオンライン専用の Last 特殊ケースを除き、マテリアライズできません。オフラインのトレーニングまたはバッチ推論の場合、ローリングウィンドウ特徴量は、ポイントインタイムルックアップごとにソースデータからコンピュートされます。
  • ColumnSelection これらの機能はオンラインストアでのみ実現可能です。
  • RequestSource, FeatureViewSource、およびCustomUDFの機能はマテリアライズできません。オンデマンド特徴量とマテリアライズを参照してください。
  • マテリアライズドフィーチャーは、作成されたワークスペース内でのみ削除できます。
  • 機能またはその親スキーマに対する Unity Catalog の権限に関係なく、マテリアライズされた機能を作成したユーザーのみがそれを削除できます。
  • 具体化された集計機能の場合、オンラインの具体化された機能を直接削除することはできません。ペアになっているオフラインのマテリアライズドフィーチャーを削除すると、その変更は両方に反映されます。
  • 2026年4月20日より前に作成されたマテリアライズド集計機能については、パイプライン内のすべてのマテリアライズド機能が削除されるまで、マテリアライズドパイプラインは新しい機能値を生成し続け、その後リソースのクリーンアップがトリガーされます。機能ごとの削除をサポートする更新されたパイプラインを作成するには、機能を削除して再マテリアライズします。
  • 具体化されたColumnSelectionのフィーチャについては、パイプライン内のすべての具体化されたフィーチャが削除されるまで、具体化パイプラインは新しいフィーチャ値を生成し続け、削除されるとリソースのクリーンアップがトリガーされます。

ストリーミング特徴量​

  • ストリーミング特徴量はオンラインストアにのみマテリアライズできます。オフラインのマテリアライゼーションは必要ありません。なぜなら、トレーニング時のストリーミング機能は、ミリ秒レベルの精度を提供するために、データポイントごとの履歴イベントから再計算されるように設計されているからです。
  • ストリーミング機能は、単一のmaterialize_features呼び出しでバッチ機能と混在させることはできません。
  • compute_features ストリーミング特徴量はサポートしていません。
  • ワークスペースは、Lakebaseインスタンスをサポートしているリージョンにある必要があります。
  • JSONシリアル化されたKafkaメッセージのみがサポートされています。メッセージスキーマは、JSON Schema形式で直接提供される必要があります。スキーマレジストリ(Confluent、Glue)はプレビュー期間中は正式にはサポートされていませんが、スキーマを直接提供する場合、パイプラインはスキーマレジストリによって管理されるトピックから読み取ることができます。
  • ストリーミング集約機能には、RollingWindow のみがサポートされています。TumblingWindow と SlidingWindow はバッチ特徴量と併用する必要があります。
  • ストリーミング特徴量に対してサポートされている集計関数は、Count、Avg、Sum、StddevPop、Max、Min、First、Last、FirstN、LastN、FirstDistinct、および LastDistinct のみです。
  • ストリーミングソースからの列選択機能は、順不同のメッセージに対応していません。時系列列の値が以前に受信したイベントよりも早い場合でも、Kafka ストリームの最新のイベントが表示されます。
  • ストリーミングパイプラインは週に2回再起動されます。再起動ごとに、処理の遅延と最大1分間の起動時間が発生する可能性があります。再起動を除くと、p99 鮮度は 200ms です。
  • マテリアライズの特徴量バックフィルはサポートされていません。特徴量がマテリアライズされると、その時点から計算されます。オンラインストアで新しく作成された集計は、それらの時間枠が経過するまで不正確です。
  • Databricks Online Feature Storeのみがサポートされています。
  • ストリーミングマテリアライゼーションパイプラインは、Serverless Lakeflow Pipelinesとして実行されます。
  • Enterprise 層ワークスペースのみです。