すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:特徴量データベース FeatureDB

最終更新日:Jun 22, 2026

FeatureDB は、Alibaba Cloud PAI のフィーチャーストア (PAI-FeatureStore) プラットフォームが提供するデータベースサービスです。フィーチャーストアのオンラインストアとして機能し、検索、レコメンデーション、広告などのサービス向けに、パフォーマンス専有型のオンライン特徴量ストレージと最適化された読み書き操作を提供します。このトピックでは、FeatureDB の概要と、その特徴およびメリットについて説明します。

FeatureDB とは

FeatureDB は、フィーチャーストアが提供するパフォーマンス専有型の分散ストレージデータベースです。KV および KKV データ形式をサポートし、配列を Array 型、キーと値のペアを Map 型として構造化ストレージを可能にします。データを Array 型および Map 型で格納することで、後続の読み書き操作や推論サービスのパフォーマンスが向上します。FeatureDB は、ユーザー行動シーケンス特徴量を含む、オフライン特徴量とリアルタイム特徴量の両方について、生成、更新、消費のパイプラインを完全にサポートします。

有効化の方法

新しい FeatureDB データソースを作成する際に、画面の指示に従って FeatureDB を有効化します。詳細については、「オンラインデータソースの作成:FeatureDB」をご参照ください。

プロダクトの特徴

FeatureDB は、フィーチャーストアの特徴データ読み取り特性に合わせて、以下の機能と最適化を実装しています。

  • KV および KKV 型の特徴量の読み書きをサポートします。

  • MaxCompute の複雑な型 (Array、Map) の特徴量の読み書きをサポートします。

  • 特徴量ビュー配下のすべての特徴量データを一括でプルすることをサポートします。

  • リアルタイム特徴量データを更新するためのミリ秒レベルのポーリングをサポートします。

  • 秒レベルの TTL をサポートし、期限切れのデータを自動的にクリーンアップします。

  • 実際の読み書きデータ量に基づく従量課金制を採用しています。

FeatureDB は、特徴量ビューのデータを複数のパーティションにわたってシャード化します。シャード数を調整することで、さまざまなシナリオの読み書きパフォーマンス要件を満たすことができます。データの安定性と安全性を確保するために、レプリカもサポートされています。シャード数は、選択した [推定データ規模] に基づいて設定されます。

  • [数千万未満] (デフォルト):5 シャード。

  • [数千万から数億]:10 シャード。

  • [数億以上]:20 シャード。

[特徴量ビューの作成] ダイアログボックスで、[推定データ規模] ドロップダウンリストから適切な規模を選択します。

メリット

  • 高いコストパフォーマンス

    FeatureDB を使用することで、小規模な特徴量ストレージを利用するお客様はコストを削減できます。

  • 高頻度の更新要件に対応

    リアルタイム統計特徴量を使用する場合、数秒ごとに複数の EasyRec Processor (モデル推論サービス) インスタンスにリアルタイム特徴量を更新する必要があります。これには高頻度の更新が求められますが、FeatureDB はこれをサポートします。

  • 複雑な型の特徴量に対応

    検索や広告のシナリオでは、Array 型や Map 型の特徴量、長いユーザー行動シーケンス、およびそれらの SideInfo が広く使用されます。複雑な型の特徴量を文字列として格納すると、使用時に Map 型へのシリアル化が必要となり、パフォーマンスが低下します。

    FeatureDB は、複雑な型のデータをネイティブに格納することをサポートし、MaxCompute 2.0 の複雑な型データを FeatureDB に同期して、パフォーマンス専有型の読み取りを可能にします。

  • 弾力的なスケールアウトに対応

    大規模なお客様は、特徴量ビューごとのシャード数を柔軟に増やして、読み書きのパフォーマンスを向上させることができます。

  • モニタリングの死角を排除

    サードパーティのデータソースを統合すると、特にリアルタイム特徴量において、エンドツーエンドのデータパイプラインのモニタリングが困難になります。FeatureDB は、読み書きの QPS、RT、データ更新のレイテンシ、ストレージ使用量などの主要なパフォーマンスメトリクスを、各ビューの粒度でモニタリングします。

プロダクトの機能

高速 VPC 接続

FeatureDB は、PrivateLink を介した高速 VPC 接続を提供します。設定が成功すると、フィーチャーストアは PrivateLink を使用してご利用の VPC を FeatureDB サービスに接続します。その後、FeatureStore SDK を使用して VPC 内からプライベート接続経由で FeatureDB にアクセスでき、データの読み書きパフォーマンスを向上させ、アクセスレイテンシを削減できます。

高速 VPC 接続は、次のように設定します。

  • 方法 1:FeatureDB データソースをまだ作成していない場合は、[データソースの管理] をクリックします。[データソースの管理] ページで、[データソースの作成] をクリックします。FeatureDB データソースを作成する際に、VPC Direct Connection Configurations セクションに、ご利用の VpcZone and vSwitch を入力します。詳細な手順については、「オンラインデータソースの作成:FeatureDB」をご参照ください。

  • 方法 2:すでに FeatureDB データソースを作成している場合は、[データソースの管理] をクリックします。[データソースの管理] ページで、既存の feature_db データソースをクリックして、その製品ページに移動します。VPC Direct Connection Configurations をクリックし、ご利用の VpcZone and vSwitch を入力してから、Confirm をクリックします。

注意事項

  • 一度設定すると、Vpc は変更できません。設定した VPC が、フィーチャーストアのオンラインサービスで使用している VPC と一致していることを確認してください。

  • クロスゾーンのネットワーク遅延を避け、アクセスパフォーマンスを最大化するために、推奨ゾーンにサービスをデプロイしてください。

    エリア

    リージョン

    推奨ゾーン

    アジアパシフィック

    中国 (杭州)

    ゾーン G

    中国 (上海)

    ゾーン L

    中国 (北京)

    ゾーン F

    中国 (深セン)

    ゾーン F

    香港 (中国)

    ゾーン B

    シンガポール

    ゾーン C

    インドネシア (ジャカルタ)

    ゾーン B

    ヨーロッパおよびアメリカ

    ドイツ (フランクフルト)

    ゾーン A

    米国 (シリコンバレー)

    ゾーン B

  • Zone and vSwitch:オンラインサービスのインスタンスと同じゾーンにある vSwitch を選択してください。高可用性と安定性を確保するために、少なくとも 2 つのゾーン (できればオンラインサービスが実行されているゾーンと上記の推奨ゾーン) の vSwitch を選択してください。

  • 設定が成功すると、他のゾーンの vSwitch を追加することしかできなくなります。既存の設定を変更または削除することはできません。

特徴量の書き込み

オフライン特徴量の場合、FeatureStore Python SDK と DataWorks を使用して、MaxCompute から FeatureDB にデータを同期する日次の定期タスクを実行します。

デフォルトでは、リアルタイム特徴量の書き込みは行全体の更新を実行します。書き込まれたデータに一部のフィールドしか含まれていない場合、欠落しているフィールドは空に設定されます。指定されたフィールドのみを更新し、既存のデータにマージするには、次のように設定します。

  • Java SDK を介して書き込む場合:InsertMode を InsertMode.PartialFieldWrite として指定します。

    for (int i = 0; i < 100;i++) {
        featureView.writeFeatures(writeData, InsertMode.PartialFieldWrite);
    }
  • Flink コネクタを介して書き込む場合:パラメーター insert_mode を partial_field_write に設定します。

特徴量の読み取り

FeatureStore SDK (Go/Java) または EasyRec Processor を使用して特徴量を読み取ります。

FeatureStore SDK (Go/Java) は、オフライン特徴量とリアルタイム特徴量の KV ポイントインタイム結合をサポートします。特徴量の JoinID (プライマリキー) と特徴量名を指定して KV クエリを完了し、ミリ秒単位でターゲットの特徴量データを取得します。SDK は、行動シーケンス特徴量の KKV クエリもサポートします。UserID を指定して、アセンブルされたシーケンス特徴量の結果を取得します。

EasyRec Processor は FeatureStore C++ SDK を統合しており、FeatureDB の特徴量データをすべてメモリに完全に取り込み、ミリ秒レベルのポーリングでメモリ内のリアルタイム特徴量を更新することで、より高い読み取りパフォーマンスを実現します。

モニタリングメトリクス

FeatureDB をオンラインストアとして使用する場合、特徴量ビューを作成した後、ターゲットビューの横にある Data Monitoring をクリックして、読み書きの QPS や RT などのメトリクスを表示します。(注:オフライン特徴量ビューのデータ同期からの書き込みは、これらのメトリクスには表示されません。)

リアルタイム特徴量パイプライン

フィーチャーストアのストレージサービスは、Feature Service (アクセス層)、メッセージキュー (DataHub)、および FeatureDB の 3 つのコンポーネントで構成されます。

リアルタイム特徴量の場合、FeatureStore Java SDK または Flink コネクタを介して Feature Service を呼び出し、特徴量データを FeatureDB に書き込むことができます。Feature Service を介して書き込まれたデータは、リアルタイム特徴量サンプルのエクスポートとさらなるモデルトレーニングのために、ご利用の MaxCompute テーブルにも同期されます。

FeatureDB に保存されている特徴量データは、FeatureStore Java/Go SDK を使用して読み取るか、EasyRec Processor を介してすべての特徴量をローカルキャッシュにプルして、より高い読み取りパフォーマンスを実現できます。リアルタイム特徴量は、最新の特徴量情報をミリ秒単位で配信します。

リアルタイム特徴量データのライフサイクル設定

リアルタイム特徴量ビューを作成する際に、[特徴量ライフサイクル] を使用して FeatureDB テーブルのデータライフサイクルを設定します。行は、ライフサイクル期間に達してから数秒以内に期限切れとなり、自動的にクリーンアップされます。

データの生存時間 (TTL) は、現在 2 つの設定方法をサポートしています。

  • 方法 1:イベント時間 フィールドを指定しません。この場合、ライフサイクルはデータの書き込み時間から開始され、行は有効期限が切れると自動的にクリーンアップされます。

  • 方法 2:特徴量フィールドを イベント時間 フィールド (単位:ミリ秒) として選択します。event_time を イベント時間 フィールドの値、time_now を現在時刻、time_ttl = time_now - ttl を有効期限切れのしきい値 event_time とします。FeatureDB は書き込まれたデータを次のように処理します。

    • PartialFieldWrite モードを使用して部分的なフィールド更新を行う場合、ライフサイクルは実際の書き込み時間から計算されます。

    • event_time > time_now + 15 分の場合:データは書き込まれません。(これにより、15 分のバッファーを設けることで、システム間のタイムスタンプの不一致を防ぎます。)

    • time_ttl < event_time <= time_now + 15 分の場合:データは正常に書き込まれます。ライフサイクルは event_time から開始され、行は有効期限が切れると自動的にクリーンアップされます。

    • 0 < event_time < time_ttl の場合:データは書き込まれますが、すぐにクリーンアップされます。注:event_time はミリ秒単位です。ご利用の イベント時間 フィールドが秒を使用している場合、データはこのケースに該当し、永続化に失敗します。

    • event_time <= 0 の場合:ライフサイクルは実際の書き込み時間から計算されます。

    • 値が無効な場合 (整数に変換できない場合):データは書き込まれません。

    • イベント時間 フィールドは登録されていますが、 イベント時間 フィールドに値が指定されていない場合、データは正常に書き込まれ、そのライフタイムは実際の書き込み時間に基づいて計算されます。

    • イベント時間 フィールドが登録されていない場合:データは正常に書き込まれ、ライフサイクルは実際の書き込み時間から計算されます。

    • さらに、FeatureDB は event_time の値をその行のタイムスタンプ (ts) として使用します。特定のキーのデータを更新するには、新しい イベント時間 の値が以前の値以上である必要があります。新しい event_time が元の値より小さい場合、そのキーのデータは更新されません。

パフォーマンス テスト

以下は、VPC 環境で FeatureStore Go SDK を使用して FeatureDB データを読み取る際のストレステスト結果の例です。テストデータは、レコメンデーションシナリオのユーザー側テーブルから取得したもので、合計 17,689,586 行です。テストは 4 コア、8 GiB のマシンで実行されました。結果は参考用です。

  • [VPC ネットワーク高速接続] が設定され、オンラインサービスが [推奨ゾーン] にデプロイされている場合:

    特徴量フィールド数 (列数)

    読み取りキー数 (行数)

    平均レイテンシ

    TP95

    TP99

    260

    1

    0.89 ms

    1.20 ms

    1.45 ms

    260

    10

    1.17 ms

    1.52 ms

    1.87 ms

    260

    50

    1.91 ms

    2.56 ms

    2.92 ms

    260

    100

    2.87 ms

    3.58 ms

    3.93 ms

    260

    200

    4.43 ms

    5.25 ms

    5.80 ms

  • VPC ネットワーク高速接続が設定されているが、オンラインサービスが非推奨ゾーンにデプロイされている場合:

    特徴量フィールド数 (列数)

    読み取りキー数 (行数)

    平均レイテンシ

    TP95

    TP99

    260

    1

    2.54 ms

    2.86 ms

    3.15 ms

    260

    10

    2.75 ms

    3.12 ms

    3.56 ms

    260

    50

    3.95 ms

    4.75 ms

    5.19 ms

    260

    100

    4.82 ms

    5.66 ms

    6.21 ms

    260

    200

    6.84 ms

    7.75 ms

    8.25 ms

  • VPC ネットワーク高速接続が設定されていない場合:

    特徴量フィールド数 (列数)

    読み取りキー数 (行数)

    平均レイテンシ

    TP95

    TP99

    260

    1

    3.62 ms

    3.83 ms

    4.27 ms

    260

    10

    3.82 ms

    4.11 ms

    4.61 ms

    260

    50

    4.54 ms

    5.19 ms

    5.60 ms

    260

    100

    5.40 ms

    6.13 ms

    6.56 ms

    260

    200

    7.15 ms

    7.93 ms

    8.47 ms

課金

詳細については、「フィーチャーストアの課金」をご参照ください。