データソースを準備する

Vertex AI Feature Store を使用してオンラインで特徴のサービングを開始するには、BigQuery で次のように特徴データソースを設定する必要があります。

  1. 特徴データを使用して BigQuery のテーブルまたはビューを作成します。特徴データを BigQuery のテーブルまたはビューに読み込むには、対象のデータを使用して BigQuery データセットを作成し、BigQuery テーブルを作成して、データセットからテーブルに特徴データを読み込みます。

  2. 特徴データを BigQuery のテーブルまたはビューに読み込んだ後、このデータソースを Vertex AI Feature Store でオンライン サービングに使用できるようにする必要があります。データソースをオンライン サービング リソース(オンライン ショップや特徴ビュー インスタンスなど)に接続するには、次の 2 つの方法があります。

    • 特徴グループと特徴を作成してデータソースを登録する: 特徴グループと特徴をオンライン ショップの特徴ビュー インスタンスに関連付けることができます。データは次のいずれかの方法でフォーマットできます。

      • 特徴のタイムスタンプ列を含めて、データを時系列としてフォーマットします。Vertex AI Feature Store では、この列の特徴のタイムスタンプに基づいて、一意のエンティティ ID ごとに最新の特徴値のみを提供します。

      • 特徴のタイムスタンプ列を含めずにデータをフォーマットします。Vertex AI Feature Store ではタイムスタンプを管理し、一意のエンティティ ID ごとに最新の特徴値のみを提供します。

      特徴グループの作成方法については、特徴グループを作成するをご覧ください。特徴グループ内で特徴を作成する方法については、特徴を作成するをご覧ください。

    • 特徴グループや特徴を作成せずにデータソースから特徴を直接提供する: 特徴ビューにデータソースの URI を指定できます。このシナリオでは、データを時系列としてフォーマットすることや、BigQuery ソースに過去のデータを含めることはできません。各行には、一意の ID に対応する最新の特徴値が含まれている必要があります。異なる行に同じエンティティ ID を複数回指定することはできません。

Vertex AI Feature Store を使用すると、BigQuery で特徴データを維持し、BigQuery データソースから特徴を提供できるため、特徴をオフライン ストアにインポートまたはコピーする必要はありません。

データソース準備ガイドライン

次のガイドラインに沿って、BigQuery でデータソースを準備する際のスキーマと制約を把握しましょう。

  1. データソースに次の列を含めます。

    • エンティティ ID 列: データソースには、string 値または int 値を含むエンティティ ID 列が 1 つ以上必要です。このファイルのデフォルト名は entity_id です。この列には必要に応じて別の名前を使用できます。この列の各値のサイズは 4 KB 未満でなければなりません。

      複数の列の特徴を使用してエンティティ ID を作成し、特徴レコードを指定することもできます。このシナリオでは、データソースに複数のエンティティ ID 列を含められます。各エンティティ ID 列の名前は一意である必要があります。特徴グループを作成してデータソースを登録する場合は、特徴グループごとにエンティティ ID 列を設定します。また、データソースを特徴ビューに直接関連付ける場合は、エンティティ ID 列を指定するように特徴ビューを構成します。

      データソースには複数の ID 列を含めることができます。こうしたシナリオでは、各エンティティ ID 列の名前が一意である必要があります。特徴レコードの各列の値を使用してエンティティ ID を作成するように、特徴グループまたは特徴ビューを構成できます。

    • 特徴のタイムスタンプ列: 省略可。特徴グループと特徴を使用してデータソースを登録し、データを時系列としてフォーマットする必要がある場合は、特徴のタイムスタンプ列を含めます。タイムスタンプ列には timestamp 型の値が含まれます。タイムスタンプ列のデフォルト名は feature_timestamp です。別の列名を使用する場合は、time_series パラメータを使用して特徴グループのタイムスタンプ列を設定します。

      データを時系列としてフォーマットするタイムスタンプ列を指定しない場合は、Vertex AI Feature Store で特徴のタイムスタンプが管理され、最新の特徴値が提供されます。

      BigQuery データソースを特徴ビューに直接関連付ける場合、feature_timestamp 列は必要ありません。このシナリオでは、データソースに最新の特徴値のみを含める必要があります。Vertex AI Feature Store はタイムスタンプを検索しません。

    • エンベディング列とフィルタリング列: 省略可。最適化されたオンライン サービング用に作成されたオンライン ショップでエンべディング管理を使用するには、データソースに次の列が含まれている必要があります。

      • float 型の配列を含む embedding 列。

      • (省略可)string 型または string 配列の 1 つ以上のフィルタリング列。

      • (省略可)int 型のクラウディング列。

  2. データソースの各行は、エンティティ ID に関連付けられた特徴値の完全なレコードです。いずれかの列に特徴値がない場合、その列の値は null 値とみなされます。

  3. BigQuery テーブルまたはビューの各列は特徴を表します。各特徴の値を個別の列に指定します。データソースを特徴グループと特徴に関連付ける場合は、各列を個別の特徴に関連付けます。

  4. 特徴値でサポートされているデータ型には、boolintfloatstringtimestamp、これらのデータ型の配列、バイトなどがあります。なお、データの同期中に、timestamp 型の特徴値は int64 に変換されます。

  5. データソースは、オンライン ショップ インスタンスと同じリージョン、またはオンライン ショップのリージョンを含むか、重複するマルチリージョンに配置する必要があります。たとえば、オンライン ショップが us-central にある場合、BigQuery ソースは us-central または US に配置できます。

  6. オンライン サービングの前に特徴ビューのデータを同期して、最新の特徴値のみを提供するようにします。スケジュール設定されたデータ同期を使用している場合は、特徴ビューでデータを手動で同期することが必要になる可能性があります。ただし、最適化されたオンライン サービングで継続的なデータ同期を使用している場合は、データを手動で同期する必要はありません。

次のステップ