Databricks Online フィーチャーストア
ベータ版
この機能は ベータ版 であり、次の地域で利用できます。
us-east-1
、us-west-2
、eu-west-1
、ap-southeast-1
、ap-southeast-2
、eu-central-1
、us-east-2
、 ap-south-1
Databricks Online Feature Stores は、オンラインアプリケーションやリアルタイムの機械学習モデルに特徴データを提供するための、高性能でスケーラブルなソリューションです。Databricks Lakebase を搭載しているため、オフラインの特徴量テーブルとの一貫性を維持しながら、フィーチャ データへの低遅延アクセスを高スケールで実現できます。
Online Feature Storeの主な使用例は次のとおりです。
- Feature Serving Endpoints を使用して、レコメンデーション システム、不正検出、パーソナライゼーション エンジンなどのリアルタイム アプリケーションに機能を提供します。
- モデルサービング エンドポイントでのリアルタイム推論のための自動特徴検索。
必要条件
Databricks Online Feature Stores には、Databricks Runtime 16.4 LTS ML 以降が必要です。サーバレス コンピュートを使用することもできます。
Databricks Online Feature Stores を使用するには、まずパッケージをインストールする必要があります。次のコード行は、ノートブックが実行されるたびに実行する必要があります。
%pip install databricks-feature-engineering==0.13.0a3
dbutils.library.restartPython()
オンラインストアを作成する
新しいオンライン機能ストアを作成するには:
from databricks.feature_engineering import FeatureEngineeringClient
# Initialize the client
fe = FeatureEngineeringClient()
# Create an online store with specified capacity
fe.create_online_store(
name="my-online-store",
capacity="CU_2" # Valid options: "CU_1", "CU_2", "CU_4", "CU_8"
)
容量オプションは、「CU_1」、「CU_2」、「CU_4」、および「CU_8」のさまざまなパフォーマンス階層に対応しています。各キャパシティー・ユニットは、データベース・インスタンスに約 16GB の RAM を、関連するすべての CPU およびローカル SSD リソースとともに割り当てます。スケールアップすると、これらのリソースは直線的に増加します。詳細については、「 インスタンス容量の管理」を参照してください。
オンラインストアを管理する
次のコードは、オンライン ストアを取得および更新する方法を示しています。
# Get information about an existing online store
store = fe.get_online_store(name="my-online-store")
if store:
print(f"Store: {store.name}, State: {store.state}, Capacity: {store.capacity}")
# Update the capacity of an online store
updated_store = fe.update_online_store(
name="my-online-store",
capacity="CU_4" # Upgrade to higher capacity
)
特徴量テーブルをオンラインストアに公開する
オンラインストアが AVAILABLE 状態になったら、特徴量テーブルを公開して、低遅延アクセスに利用できるようにすることができます。
チェンジデータフィード は、オンラインストアに公開する前に、テーブルで有効にする必要があります。
特徴量テーブルをオンラインストアに公開するには:
from databricks.ml_features.entities.online_store import DatabricksOnlineStore
# Get the online store instance
online_store = fe.get_online_store(name="my-online-store")
# Publish the feature table to the online store
fe.publish_table(
online_store=online_store,
source_table_name="catalog_name.schema_name.feature_table_name",
online_table_name="catalog_name.schema_name.online_feature_table_name"
)
publish_table
操作では、次の処理が行われます。
- オンラインストアにテーブルが存在しない場合は、作成します。
- オフライン特徴量テーブルからオンラインストアに特徴量データを同期します。
- オンラインストアとオフラインテーブルを同期させるために必要なインフラストラクチャを設定します。
オンライン機能を継続的に更新する
publish_table
が streaming=True
で呼び出された場合、オンライン テーブルはストリーミング パイプラインを使用して設定され、オフライン特徴量テーブルに新しいデータが到着するとオンラインストアが継続的に更新されます。
オンライン機能の更新をスケジュールする
オンライン テーブルのフィーチャを定期的に更新するには、 を実行するスケジュール LakeFlow Job を作成します。 publish_table
を実行します。 このジョブは、テーブルを自動的に更新し、オンライン機能を増分更新します。「ジョブLakeFlow」を参照してください。
オンライン機能の探索とクエリ
公開されたテーブルのステータスが "AVAILABLE" と表示されたら、いくつかの方法でフィーチャ データを探索し、クエリを実行できます。
Unity Catalog UI : Unity Catalog のオンライン テーブルに移動して、サンプル データを表示し、UI で直接スキーマを探索します。これにより、フィーチャ データを検査し、公開プロセスが正常に完了したことを確認するのに便利です。
SQLエディター :より高度なクエリとデータ探索のために、SQLエディターを使用して、オンラインの特徴量テーブルに対してPostgreSQLクエリを実行できます。これにより、フィーチャ データに対して複雑なクエリ、結合、および解析を実行できます。オンライン・ストアで SQL エディターを使用する手順について詳しくは、 SQL エディターからのデータベース・インスタンスへのアクセスを参照してください。
リアルタイムアプリケーションでのオンライン機能の使用
リアルタイム アプリケーションやサービスに機能を提供するには、 Feature Serving エンドポイントを作成します。 「Feature Serving エンドポイント」を参照してください。
Databricksの特徴を使用して学習されたモデルは、学習した特徴量に自動的にリネージを追跡します。エンドポイントとしてデプロイすると、これらのモデルは Unity Catalog を使用して、オンライン ストアで適切な機能を見つけます。詳細については、「 オンライン ワークフローで機能を使用する」を参照してください。
オンラインストアを削除する
オンラインストアを削除するには:
fe.delete_online_store(name="my-online-store")
オンラインで公開されたテーブルを削除すると、ダウンストリームの依存関係で予期しないエラーが発生する可能性があります。テーブルを削除する前に、そのオンライン機能がモデルサービングまたは Feature Serving エンドポイントで使用されなくなったことを確認する必要があります。
制限
- Databricks オンライン機能ストアにパブリッシュする場合、
filter_condition
、checkpoint_location
、mode
、trigger
、およびfeatures
のパラメーターはサポートされていません。 - Unity Catalogの特徴量テーブルのみがサポートされています。
- サポートされているパブリッシュモードは「マージ」のみです。
追加のリソース
- Databricks の特徴エンジニアリングの詳細については、こちらをご覧ください。
- Unity Catalog でのデータガバナンスとリネージについて調べます。
- Lakebaseのアーキテクチャと機能を理解します。