PythonのAPI
このページでは、Databricks特徴量エンジニアリングと、レガシDatabricks ワークスペース Feature Store のPython APIドキュメントへのリンクと、databricks-feature-engineeringとdatabricks-feature-storeのクライアント パッケージに関する情報を提供します。
バージョン 0.17.0 では、 databricks-feature-store は非推奨になりました。 このパッケージのすべての既存のモジュールは、 databricks-feature-engineering バージョン 0.2.0 以降で利用可能になりました。 databricks-feature-engineeringへの移行に関する情報については、databricks-feature-engineeringへの移行を参照してください。
互換性マトリックス
使用するパッケージとクライアントは、次の表に示すように、特徴量テーブルがどこにあるか、実行している Databricks Runtime ML バージョンによって異なります。
Databricks Runtime ML バージョンに組み込まれているパッケージ バージョンを特定するには、特徴量 エンジニアリング 互換性マトリックスを参照してください。
Databricks Runtimeのバージョン  | 特徴量テーブルの所在  | 使用するパッケージ  | 使用するPythonクライアント  | 
|---|---|---|---|
Databricks Runtime 14.3 ML以降  | Unity Catalog  | 
  | 
  | 
Databricks Runtime 14.3 ML以降  | ワークスペース  | 
  | 
  | 
Databricks Runtime 14.2 ML 以下  | Unity Catalog  | 
  | 
  | 
Databricks Runtime 14.2 ML 以下  | ワークスペース  | 
  | 
  | 
databricks-feature-engineering<=0.7.0はmlflow>=2.18.0と互換性がありません。 MLflow 2.18.0 以降でdatabricks-feature-engineeringを使用するには、databricks-feature-engineeringバージョン 0.8.0 以降にアップグレードしてください。
リリースノート
Databricks 特徴量エンジニアリングと従来のワークスペース特徴量ストアのリリースノートを参照してください。
特徴量エンジニアリング Python API リファレンス
特徴量エンジニアリング Python API リファレンスを参照してください。
ワークスペース Feature Store Python API リファレンス (非推奨)
- バージョン 0.17.0 では、 
databricks-feature-storeは非推奨になりました。 このパッケージの既存のモジュールはすべて、databricks-feature-engineeringバージョン 0.2.0 以降で利用できるようになりました。 
databricks-feature-store v0.17.0については、最新のワークスペースFeature Store APIリファレンスに関して特徴量エンジニアリングPython APIリファレンスのDatabricks  FeatureStoreClientをご覧ください。
v0.16.3 以前の場合は、表のリンクを使用して、Feature Store Python API リファレンスをダウンロードまたは表示してください。 Databricks Runtime ML バージョンのプレインストールされているバージョンを確認するには、 互換性マトリックスを参照してください。
バージョン  | PDFのダウンロード  | オンラインAPIリファレンス  | 
|---|---|---|
v0.3.5 から v0.16.3  | ||
v0.3.5 およびそれ以前  | オンラインAPIリファレンスは利用できません  | 
Pythonパッケージ
このセクションでは、Databricks特徴量エンジニアリングとDatabricks Workspace Feature Store を使用するためのPythonパッケージをインストールする方法について説明します。
特徴エンジニアリング
- バージョン0.2.0以降、
databricks-feature-engineeringには、 Unity Catalog とワークスペースの両方のFeature Storeに特徴量テーブルを操作するためのモジュールが含まれています。databricks-feature-engineeringバージョン 0.2.0 未満 Unity Catalogの特徴量テーブルでのみ機能します。 
Databricks特徴量エンジニアリング APIは、Python クライアント パッケージ databricks-feature-engineeringを通じて入手できます。このクライアントは PyPI で使用でき、Databricks Runtime 13.3 LTS ML 以降にプレインストールされています。
どのクライアント バージョンがどのランタイム バージョンに対応するかについては、 互換性マトリックスを参照してください。
Databricks Runtime にクライアントをインストールするには:
%pip install databricks-feature-engineering
クライアントをローカルの Python 環境にインストールするには、次のようにします。
pip install databricks-feature-engineering
ワークスペース Feature Store (非推奨)
- バージョン 0.17.0 では、 
databricks-feature-storeは非推奨になりました。 このパッケージのすべての既存のモジュールは、databricks-feature-engineeringバージョン 0.2.0 以降で利用できるようになりました。 - 詳細については、「 databricks-feature-engineeringへの移行 」を参照してください。
 
Databricks Feature Store APIは、Python クライアント パッケージ databricks-feature-storeを通じて入手できます。このクライアントは PyPI で使用でき、Databricks Runtime for Machine Learning にプレインストールされています。 どのランタイムにどのクライアント バージョンが含まれているかについては、 互換性マトリックスを参照してください。
Databricks Runtime にクライアントをインストールするには:
%pip install databricks-feature-store
クライアントをローカルの Python 環境にインストールするには、次のようにします。
pip install databricks-feature-store
に移行 databricks-feature-engineering
databricks-feature-engineering パッケージをインストールするには、pip install databricks-feature-storeの代わりに pip install databricks-feature-engineering を使用します。databricks-feature-storeのすべてのモジュールは databricks-feature-engineeringに移動されたため、コードを変更する必要はありません。from databricks.feature_store import FeatureStoreClient などのインポート ステートメントは、databricks-feature-engineeringをインストールした後も引き続き機能します。
Unity Catalogで特徴量テーブルを使用するには、FeatureEngineeringClientを使用します。ワークスペース Feature Store を使用するには、 FeatureStoreClientを使用する必要があります。
サポートされているシナリオ
Databricks Runtime や Databricks Runtime for Machine Learning などの Databricks では、次のことができます。
- 特徴量テーブルの作成、読み取り、書き込みを行います。
 - 特徴データでモデルをトレーニングし、スコア付けします。
 - 特徴量テーブルをオンライン ストアに公開して、リアルタイムで提供します。
 
ローカル環境または Databricks の外部環境から、次のことができます。
- ローカル IDE サポートを使用してコードを開発します。
 - モックフレームワークを使用した単体テスト。
 - Databricks で実行する統合テストを記述します。
 
制限
クライアント ライブラリは、機械学習用の Databricks Runtime や Databricks Runtime など、Databricks でのみ実行できます。 ローカル環境または Databricks 以外の環境からの Unity Catalogでの特徴量エンジニアリングまたは Feature Store API の呼び出しはサポートされていません。
単体テストにクライアントを使用する
Unity Catalogでの特徴量エンジニアリングのクライアント、または Feature Storeクライアントをローカルにインストールして 単体テストの実行に役立てることができます。
たとえば、メソッドが正しく update_customer_features
FeatureEngineeringClient.write_table (またはワークスペース Feature Store の場合、
FeatureStoreClient.write_table)、次のように書くことができます。
from unittest.mock import MagicMock, patch
from my_feature_update_module import update_customer_features
from databricks.feature_engineering import FeatureEngineeringClient
@patch.object(FeatureEngineeringClient, "write_table")
@patch("my_feature_update_module.compute_customer_features")
def test_something(compute_customer_features, mock_write_table):
  customer_features_df = MagicMock()
  compute_customer_features.return_value = customer_features_df
  update_customer_features()  # Function being tested
  mock_write_table.assert_called_once_with(
    name='ml.recommender_system.customer_features',
    df=customer_features_df,
    mode='merge'
  )
クライアントを統合テストに使用する
統合テストは、 Unity Catalogでの特徴量エンジニアリング クライアントまたは Feature Store クライアントを使用して実行できます Databricks。 詳細については、「 開発者ツールとガイダンス: CI/CD の使用」を参照してください。