既存のオンライン ショップ インスタンス内に特徴ビューを作成できます。特徴ビューの作成中に、次の方法で特徴と特徴ビューを関連付けることができます。
特徴レジストリから特徴グループと特徴を追加する: 特徴レジストリにある特徴グループと特徴に特徴ビューを関連付けます。特徴グループは、BigQuery データソースのロケーションを示しています。特徴グループ内の特徴は、そのデータソース内の特定の特徴列を指しています。1 つの特徴ビューを複数の特徴グループに関連付けることができます。
BigQuery ソースから特徴を追加する: BigQuery データソース(BigQuery テーブルやビューなど)を直接関連付けて、少なくとも 1 つのエンティティ ID 列を指定します。
特徴ビューを作成すると、Vertex AI Feature Store は BigQuery データソースから最新の特徴値を同期します。クエリ パラメータ run_sync_immediately=true
を設定すると、特徴ビューの作成時に Vertex AI Feature Store によって特徴値が同期されます。それ以外の場合は、特徴ビューに指定された同期スケジュールに従って特徴値が同期されます。
始める前に
まだ行っていない場合は、Vertex AI に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
詳細については Set up authentication for a local development environment をご覧ください。
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
特徴ビューで特徴データを同期する
Vertex AI Feature Store は、BigQuery データソースから特徴ビューに特徴値を更新または同期できます。特徴ビューのデータ同期のタイプは、FeatureView.sync_config
パラメータを使用して指定できます。
Vertex AI Feature Store は、次のタイプのデータ同期をサポートしています。
スケジュール設定されたデータ同期: データ同期のスケジュールまたは頻度を指定できます。オンライン ストア インスタンスに指定されたオンライン サービング タイプに関係なく、特徴ビューに対してこのスケジュールされたデータ同期を選択できます。
スケジュールされたデータ同期を使用するように特徴ビューが構成されている場合は、データ同期を手動で開始して、次に予定されている同期オペレーションまでの待機をスキップできます。データ同期を手動でトリガーする方法については、特徴データをオンライン ストアに同期するをご覧ください。
オンライン サービングで、null 値を含む最新の特徴値のみをサービングする場合は、次の設定を使用する必要があります。
dense
パラメータをtrue
に設定して特徴グループを作成して特徴データソースを登録します。オンライン ストア インスタンスを作成するときに、Bigtable オンライン サービングを選択します。
特徴ビューを作成するときに、スケジュールされたデータ同期を選択します。
継続的なデータ同期: BigQuery データソースの特徴データが更新されるたびに特徴データが更新されます。特徴ビューでこのタイプのデータ同期を選択できるのは、次の条件をすべて満たしている場合のみです。
オンライン ストア インスタンスが Bigtable オンライン サービング用に構成されている。
特徴ビューは、特徴グループと特徴リソースに関連付けられます。
BigQuery データソースは、次のいずれかのリージョンにあります。
eu
us
us-central1
継続的データ同期には次の制限があります。
特徴ビューに継続的なデータ同期を選択した場合、特徴ビューを更新することはできません。
BigQuery データソースから同期されるのは、新しい特徴レコードのみです。継続的なデータ同期では、BigQuery で更新または削除した特徴レコードは同期されません。
Feature Registry ソースの特徴グループのソースとして BigQuery テーブルが必要です。
スケジュール設定されたデータ同期中の費用を最適化する
データ同期オペレーションで、BigQuery リソースの使用料金が発生する場合があります。データ同期中にかかる費用を最適化し、パフォーマンスを向上させるには、次のガイドラインに従ってください。
BigQuery ソースで想定される変更頻度を上回らないように同期スケジュールの頻度を構成します。
BigQuery の特徴データソースのサイズを最適化します。特徴ビューを作成するときに、オンライン サービングに必要なデータのみを含めます。
BigQuery では複雑な集計を実行しないようにします。テーブルまたはビューに
SELECT *
クエリを実行して、データ処理の量と所要時間を見積もります。オンライン ストアのスケーリング オプションを設定するときに、データの同期中に発生する負荷に対応できる十分な値を
max_node_count
に設定します。同じオンライン ショップ内の異なる特徴ビューでタイミングが重ならないように同期をスケジュールします。
BigQuery テーブルにかなり古いデータが含まれている場合は、タイムスタンプを使用してテーブルをパーティショニングし、特徴データを取得する期間を指定します。これにより、同期中に古い特徴データの取得を最小限に抑えることができます。
データ同期中に Bigtable の使用率が増加します。オンライン ストア内で Bigtable オンライン サービング用に作成された特徴ビューの場合は、最適なパフォーマンスを得るために、同期ジョブをオフピーク時にスケジュールします。
特徴ビューにサービス アカウントを構成する
特徴ビューは、同期中にサービス アカウントを使用して BigQuery のソースデータにアクセスします。Vertex AI Feature Store は、このサービス アカウントに BigQuery データ閲覧者の Identity and Access Management(IAM)ロールを割り当てます。
デフォルトでは、特徴ビューはプロジェクトに構成されたサービス アカウントを使用します。この構成では、プロジェクトで特徴ビューの作成権限を持つユーザーは BigQuery の特徴データにアクセスできます。
また、独自のサービス アカウントを使用するように機能ビューを構成することもできます。Vertex AI Feature Store は特徴ビュー専用のサービス アカウントを設定します。この構成では、BigQuery の特徴データへのアクセスを制限したり、追加のユーザーにアクセス権を付与できます。サービス アカウントの構成は、FeatureView.service_agent_type
パラメータに指定できます。
特徴ビューにベクトル取得を構成する
最適化されたオンライン サービング用に作成されたオンライン ショップ内の特徴ビューにベクトル取得を構成するには、FeatureView.index_config
パラメータを使用します。embedding
列を追加してエンベディングをサポートするように BigQuery データソースを準備または更新する方法については、データソース準備ガイドラインをご覧ください。
ベクトル取得を構成し、エンベディングを管理できるのは、特徴ビューが特徴レジストリの特徴グループと特徴からではなく、BigQuery ソース URI を指定して作成された場合のみです。
Vertex AI Feature Store でエンベディングを使用して近似最近傍を検索する方法については、エンベディングを使用した検索をご覧ください。
特徴グループから特徴ビューを作成する
特徴グループと特徴を使用して登録された特徴データに基づいて特徴ビューを作成できます。複数の BigQuery データソースを同じ特徴ビューに関連付けるには、複数の特徴グループを指定します。
特徴グループと特徴を指定して特徴ビューを作成する場合:
データソースに
feature_timestamp
列が必要です。また、データソースには過去のデータが含まれていても構いません。Vertex AI Feature Store は、特徴のタイムスタンプに基づいて最新の特徴値のみを提供します。
特徴ビューのエンベディング管理は構成できません。
デフォルトのサービス アカウント構成で特徴ビューを作成する
次のサンプルでは、サービス アカウントの構成を指定せずに複数の特徴グループを関連付けて特徴ビューを作成します。
FeatureView
リソースを作成するには、featureViews.create メソッドを使用して POST
リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: 特徴ビューを作成するリージョン(
us-central1
など)。 - PROJECT_ID: プロジェクト ID。
- FEATUREONLINESTORE_NAME: 特徴ビューを作成するオンライン ショップ インスタンスの名前。
- FEATUREVIEW_NAME: 作成する新しい特徴ビュー インスタンスの名前。
- FEATUREGROUP_NAME_A、FEATUREGROUP_NAME_B: 特徴ビューに特徴を追加する特徴グループの名前。
- FEATURE_ID_A1、FEATURE_ID_A2: 特徴ビューに追加する特徴グループ FEATUREGROUP_NAME_A の特徴 ID。
- FEATURE_ID_B1、FEATURE_ID_B2: 特徴ビューに追加する特徴グループ FEATUREGROUP_NAME_B の特徴 ID。
- SYNC_CONFIG: 特徴ビューの次のいずれかの同期構成を入力します。
- スケジュールされたデータ同期を使用するには、同期スケジュールを次の形式で指定します。
"cron": "cron_schedule_expression"
「cron_schedule_expression」は、データを特徴ビューに同期する頻度を表す cron スケジュール式に置き換えます。詳細については、cron をご覧ください。 - 継続的なデータ同期を使用するには、次のように入力します。
"continuous": true
継続的なデータ同期は、特徴ビューを含むオンライン ストア インスタンスが Bigtable オンライン サービング用に構成されている場合にのみ使用できます。
- スケジュールされたデータ同期を使用するには、同期スケジュールを次の形式で指定します。
HTTP メソッドと URL:
POST https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME
リクエストの本文(JSON):
{ "feature_registry_source": { "feature_groups": [ { "feature_group_id": "FEATUREGROUP_NAME_A ", "feature_ids": [ "FEATURE_ID_A1 ", "FEATURE_ID_A2 " ] }, { "feature_group_id": "FEATUREGROUP_NAME_B ", "feature_ids": [ "FEATURE_ID_B1 ", "FEATURE_ID_B2 " ] } ] }, "sync_config": {SYNC_CONFIG } }
リクエストを送信するには、次のいずれかのオプションを選択します。
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME "
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews/FEATUREVIEW_NAME /operations/OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata", "genericMetadata": { "createTime": "2023-09-15T02:11:29.458820Z", "updateTime": "2023-09-15T02:11:29.458820Z" } } }
サービス アカウントの構成を指定して特徴ビューを作成する
次のサンプルでは、サービス アカウント構成を指定して特徴グループから特徴ビューを作成します。
FeatureView
リソースを作成するには、featureViews.create メソッドを使用して POST
リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: 特徴ビューを作成するリージョン(
us-central1
など)。 - PROJECT_ID: プロジェクト ID。
- FEATUREONLINESTORE_NAME: 特徴ビューを作成するオンライン ショップ インスタンスの名前。
- FEATUREVIEW_NAME: 作成する新しい特徴ビュー インスタンスの名前。
- FEATUREGROUP_NAME_A、FEATUREGROUP_NAME_B: 特徴ビューに特徴を追加する特徴グループの名前。
- FEATURE_ID_A1、FEATURE_ID_A2: 特徴ビューに追加する特徴グループ FEATUREGROUP_NAME_A の特徴 ID。
- FEATURE_ID_B1、FEATURE_ID_B2: 特徴ビューに追加する特徴グループ FEATUREGROUP_NAME_B の特徴 ID。
- SYNC_CONFIG: 特徴ビューの次のいずれかの同期構成を入力します。
- スケジュールされたデータ同期を使用するには、同期スケジュールを次の形式で指定します。
"cron": "cron_schedule_expression"
「cron_schedule_expression」は、データを特徴ビューに同期する頻度を表す cron スケジュール式に置き換えます。詳細については、cron をご覧ください。 - 継続的なデータ同期を使用するには、次のように入力します。
"continuous": true
継続的なデータ同期は、特徴ビューを含むオンライン ストア インスタンスが Bigtable オンライン サービング用に構成されている場合にのみ使用できます。
- スケジュールされたデータ同期を使用するには、同期スケジュールを次の形式で指定します。
- SERVICE_AGENT_TYPE: (省略可)特徴ビューのサービス アカウント構成。サポートされているサービス エージェントのタイプは次のとおりです。
SERVICE_AGENT_TYPE_PROJECT
: 特徴ビューにプロジェクト レベルのサービス アカウントを使用します。これがデフォルトの構成です。SERVICE_AGENT_TYPE_FEATURE_VIEW
: 特徴ビュー専用のサービス アカウントを設定して使用します。
HTTP メソッドと URL:
POST https://LOCATION_ID -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME
リクエストの本文(JSON):
{ "feature_registry_source": { "feature_groups": [ { "feature_group_id": "FEATUREGROUP_NAME_A ", "feature_ids": [ "FEATURE_ID_A1 ", "FEATURE_ID_A2 " ] }, { "feature_group_id": "FEATUREGROUP_NAME_B ", "feature_ids": [ "FEATURE_ID_B1 ", "FEATURE_ID_B2 " ] } ] }, "sync_config": {SYNC_CONFIG }, "service_agent_type": "SERVICE_AGENT_TYPE " }
リクエストを送信するには、次のいずれかのオプションを選択します。
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME "
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews/FEATUREVIEW_NAME /operations/OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureViewOperationMetadata", "genericMetadata": { "createTime": "2023-09-15T02:11:29.458820Z", "updateTime": "2023-09-15T02:11:29.458820Z" } } }
BigQuery ソースから特徴ビューを作成する
特徴グループと特徴を使用して、BigQuery データソースを登録せずに特徴をオンラインで提供する場合は、BigQuery データソースの URI を指定して特徴ビューを作成します。
データソースを指定して特徴ビューを作成する場合:
BigQuery テーブルまたはビューに
feature_timestamp
列を含めることはできません。データソースに過去の特徴値を含めることはできません。すべての行に一意のエンティティ ID が含まれている必要があります。
デフォルトのサービス アカウントを使用して、エンベディングをサポートしない特徴ビューを作成する
次のサンプルでは、サービス アカウントの構成を指定せずに、BigQuery データソースを直接関連付けて、エンベディングをサポートしない特徴ビューを作成します。
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、 Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
project
: プロジェクト ID。location
: 特徴ビューを作成するリージョン(us-central1
など)。existing_feature_online_store_id
: 特徴ビューを作成するオンライン ショップ インスタンスの名前。feature_view_id
: 作成する新しい特徴ビュー インスタンスの名前。bq_table_uri
: BigQuery ソーステーブルまたはビューの URI。entity_id_columns
: エンティティ ID を含む列の名前。1 つまたは複数の列を指定できます。- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
"entity_id_column_name"
- 複数のエンティティ ID 列を指定するには、列名を次の形式で指定します。
["entity_id_column_1_name", "entity_id_column_2_name", ...]
- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
FeatureView
リソースを作成するには、featureViews.create メソッドを使用して POST
リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: 特徴ビューを作成するリージョン(
us-central1
など)。 - PROJECT_ID: プロジェクト ID。
- FEATUREONLINESTORE_NAME: 特徴ビューを作成するオンライン ショップ インスタンスの名前。
- FEATUREVIEW_NAME: 作成する新しい特徴ビューの名前。
- PROJECT_NAME: プロジェクト名。
- DATASET_NAME: BigQuery データセット名。
- TABLE_NAME: BigQuery データセットのテーブルの名前。
- ENTITY_ID_COLUMNS: エンティティ ID を含む列の名前。1 つまたは複数の列を指定できます。
- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
"entity_id_column_name"
- 複数のエンティティ ID 列を指定するには、列名を次の形式で指定します。
["entity_id_column_1_name", "entity_id_column_2_name", ...]
- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
- CRON: データを特徴ビューに同期する頻度を表す cron スケジュール式。詳細については、cron をご覧ください。
HTTP メソッドと URL:
POST https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME
リクエストの本文(JSON):
{ "big_query_source": { "uri": "bq://PROJECT_NAME .DATASET_NAME .TABLE_NAME ", "entity_id_columns": "ENTITY_ID_COLUMNS " }, "sync_config": { "cron": "CRON " } }
リクエストを送信するには、次のいずれかのオプションを選択します。
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME "
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews/FEATUREVIEW_NAME /operations/OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata", "genericMetadata": { "createTime": "2023-09-15T02:11:29.458820Z", "updateTime": "2023-09-15T02:11:29.458820Z" } } }
デフォルトのサービス アカウントを使用して、エンベディングをサポートする特徴ビューを作成する
次のサンプルでは、サービス アカウントの構成を指定せずに、BigQuery データソースを直接関連付けて、エンベディングをサポートする特徴ビューを作成します。
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、 Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
project
: プロジェクト ID。location
: 特徴ビューを作成するリージョン(us-central1
など)。existing_feature_online_store_id
: 特徴ビューを作成するオンライン ショップ インスタンスの名前。feature_view_id
: 作成する新しい特徴ビュー インスタンスの名前。bq_table_uri
: BigQuery ソーステーブルまたはビューの URI。entity_id_columns
: エンティティ ID を含む列の名前。1 つまたは複数の列を指定できます。- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
"entity_id_column_name"
- 複数のエンティティ ID 列を指定するには、列名を次の形式で指定します。
["entity_id_column_1_name", "entity_id_column_2_name", ...]
- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
embedding_column
: ベクトル検索用のインデックスを作成するソースデータを含む列の名前。これは、特徴ビューでエンベディングを管理する場合にのみ必要です。embedding_dimensions
: 省略可。エンベディング列内のエンベディングのサイズ。ディメンション数で表します。
FeatureView
リソースを作成するには、featureViews.create メソッドを使用して POST
リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION_ID: 特徴ビューを作成するリージョン(
us-central1
など)。 - PROJECT_ID: プロジェクト ID。
- FEATUREONLINESTORE_NAME: 特徴ビューを作成するオンライン ショップ インスタンスの名前。
- FEATUREVIEW_NAME: 作成する新しい特徴ビューの名前。
- PROJECT_NAME: プロジェクト名。
- DATASET_NAME: BigQuery データセット名。
- TABLE_NAME: BigQuery データセットのテーブルの名前。
- ENTITY_ID_COLUMNS: エンティティ ID を含む列の名前。1 つまたは複数の列を指定できます。
- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
"entity_id_column_name"
- 複数のエンティティ ID 列を指定するには、列名を次の形式で指定します。
["entity_id_column_1_name", "entity_id_column_2_name", ...]
- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
- CRON: データを特徴ビューに同期する頻度を表す cron スケジュール式。詳細については、cron をご覧ください。
- EMBEDDING_COLUMN: ベクトル検索用のインデックスを作成するソースデータを含む列の名前。これは、特徴ビューでエンベディングを管理する場合にのみ必要です。
- FILTER_COLUMN_1、FILTER_COLUMN_2: 省略可。ベクトル検索の結果のフィルタリングに使用する列の名前。
- CROWDING_COLUMN: 省略可。クラウディング属性を含む列の名前。
- EMBEDDING_DIMENSION: 省略可。エンベディング列内のエンベディングのサイズ。ディメンション数で表します。
HTTP メソッドと URL:
POST https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME
リクエストの本文(JSON):
{ "big_query_source": { "uri": "bq://PROJECT_NAME .DATASET_NAME .TABLE_NAME ", "entity_id_columns": "ENTITY_ID_COLUMNS " }, "sync_config": { "cron": "CRON " }, "index_config": { "embedding_column": "EMBEDDING_COLUMN ", "filter_columns": ["FILTER_COLUMN_1 ", "FILTER_COLUMN_2 "], "crowding_column": "CROWDING_COLUMN ", "embedding_dimension":EMBEDDING_DIMENSION "tree_ah_config": {} } }
リクエストを送信するには、次のいずれかのオプションを選択します。
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME "
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews/FEATUREVIEW_NAME /operations/OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata", "genericMetadata": { "createTime": "2023-09-15T02:11:29.458820Z", "updateTime": "2023-09-15T02:11:29.458820Z" } } }
サービス アカウント構成を指定して、エンベディング管理を使用して特徴ビューを作成する
次のサンプルでは、BigQuery データソースを直接関連付け、サービス アカウントの構成を指定して、エンベディングをサポートする特徴ビューを作成します。
エンベディングのサポートを使用して FeatureView
リソースを作成するには、FeatureView.index_config
パラメータを指定して featureViews.create メソッドで POST
リクエストを送信します。エンベディング管理は、オンライン ショップが最適化されたオンライン サービング用に構成されている場合に限り使用できます。
データをリクエストする前に、次のように置き換えます。
- LOCATION_ID: 特徴ビューを作成するリージョン(
us-central1
など)。 - PROJECT_ID: プロジェクト ID。
- FEATUREONLINESTORE_NAME: 特徴ビューを作成するオンライン ショップ インスタンスの名前。
- FEATUREVIEW_NAME: 作成する新しい特徴ビューの名前。
- PROJECT_NAME: プロジェクト名。
- DATASET_NAME: BigQuery データセット名。
- TABLE_NAME: BigQuery データセットのテーブルの名前。
- ENTITY_ID_COLUMNS: エンティティ ID を含む列の名前。1 つまたは複数の列を指定できます。
- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
"entity_id_column_name"
- 複数のエンティティ ID 列を指定するには、列名を次の形式で指定します。
["entity_id_column_1_name", "entity_id_column_2_name", ...]
- エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
- CRON: データを特徴ビューに同期する頻度を表す cron スケジュール式。詳細については、cron をご覧ください。
- SERVICE_AGENT_TYPE: 特徴ビューのサービス アカウントの構成。サポートされているサービス エージェントのタイプは次のとおりです。
SERVICE_AGENT_TYPE_PROJECT
: 特徴ビューにプロジェクト レベルのサービス アカウントを使用します。これがデフォルトの構成です。SERVICE_AGENT_TYPE_FEATURE_VIEW
: 特徴ビュー専用のサービス アカウントを設定して使用します。
- EMBEDDING_COLUMN: ベクトル検索用のインデックスを作成するソースデータを含む列の名前。これは、特徴ビューでエンベディングを管理する場合にのみ必要です。
- FILTER_COLUMN_1、FILTER_COLUMN_2: 省略可。ベクトル検索の結果のフィルタリングに使用する列の名前。
- CROWDING_COLUMN: 省略可。クラウディング属性を含む列の名前。
- EMBEDDING_DIMENSION: 省略可。エンベディング列内のエンベディングのサイズ。ディメンション数で表します。
HTTP メソッドと URL:
POST https://LOCATION_ID -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME
リクエストの本文(JSON):
{ "big_query_source": { "uri": "bq://PROJECT_NAME .DATASET_NAME .TABLE_NAME ", "entity_id_columns": "ENTITY_ID_COLUMNS " }, "sync_config": { "cron": "CRON " }, "service_agent_type": "SERVICE_AGENT_TYPE ", "index_config": { "embedding_column": "EMBEDDING_COLUMN ", "filter_columns": ["FILTER_COLUMN_1 ", "FILTER_COLUMN_2 "], "crowding_column": "CROWDING_COLUMN ", "embedding_dimension":EMBEDDING_DIMENSION "tree_ah_config": {} } }
リクエストを送信するには、次のいずれかのオプションを選択します。
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME "
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID -aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews?feature_view_id=FEATUREVIEW_NAME " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER /locations/LOCATION_ID /featureOnlineStores/FEATUREONLINESTORE_NAME /featureViews/FEATUREVIEW_NAME /operations/OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureViewOperationMetadata", "genericMetadata": { "createTime": "2023-09-15T02:11:29.458820Z", "updateTime": "2023-09-15T02:11:29.458820Z" } } }
次のステップ
オンラインで特徴を処理する方法を学習する。
特徴ビューの更新方法を確認する。
特徴ビューの削除方法を確認する。