特徴ビューを更新する

特徴ビューを更新して、関連付けられている特徴データソースのリストを変更できます。たとえば、次のような更新を行いたいことがあります。

  • 異なる特徴グループと特徴を関連付ける。または同じ特徴グループの異なる特徴セットを関連付ける。

  • 特徴データを含む異なる BigQuery テーブルまたはビューを指定する。この場合、更新されたデータソースから 1 つ以上のエンティティ ID 列を指定する必要もあります。

  • 同じ BigQuery データソースから、一連の別のエンティティ ID 列を指定する。

特徴ビューを作成または更新する際、ユーザー定義メタデータをラベルの形式で特徴ビューに追加するオプションがあります。特徴ビューのユーザー定義ラベルを更新する方法については、特徴ビューのラベルを更新するをご覧ください。

始める前に

まだ行っていない場合は、Vertex AI に対する認証を行います。

このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

特徴グループに基づいて特徴ビューを更新する

既存の特徴グループの特徴を指定して特徴ビューを更新するには、次のサンプルを使用します。

REST

FeatureView リソースを更新するには、featureViews.patch メソッドを使用して PATCH リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION_ID: オンライン ストアがあるリージョン(us-central1 など)。
  • PROJECT_ID: プロジェクト ID。
  • FEATUREONLINESTORE_NAME: 特徴ビューを含むオンライン ショップの名前。
  • FEATUREVIEW_NAME: 更新する特徴ビューの名前。
  • FEATUREGROUP_NAME: 特徴ビューに関連付ける特徴グループの名前。
  • FEATURE_ID_1FEATURE_ID_2: FEATUREGROUP_NAME 特徴グループから特徴ビューに追加する特徴 ID。

HTTP メソッドと URL:

PATCH https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME

リクエストの本文(JSON):

{
  "feature_registry_source":
    { "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME",
        "feature_ids": [ "FEATURE_ID_1", "FEATURE_ID_2" ]
      }
    ]
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X PATCH \
-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/FEATUREVIEW_NAME"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-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/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.UpdateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T04:53:22.794004Z",
      "updateTime": "2023-09-15T04:53:22.794004Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.FeatureView",
    "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
  }
}

BigQuery ソースに基づいて特徴ビューを更新する

次のサンプルを使用して、BigQuery テーブルまたはビューの特徴列を指定して特徴ビューを更新します。

REST

BigQuery データソースに基づいて FeatureView インスタンスを更新する場合は、featureViews.patch メソッドを使用して PATCH リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION_ID: オンライン ストアがあるリージョン(us-central1 など)。
  • PROJECT_ID: プロジェクト ID。
  • FEATUREONLINESTORE_NAME: 特徴ビューを含むオンライン ショップの名前。
  • FEATUREVIEW_NAME: 更新する特徴ビューの名前。
  • BIGQUERY_SOURCE_URI: 特徴データを含む BigQuery テーブルまたはビューの URI。
  • ENTITY_ID_COLUMNS:
  • ENTITY_ID_COLUMNS: エンティティ ID を含む列の名前。1 つまたは複数の列を指定できます。
    • エンティティ ID 列を 1 つだけ指定するには、列名を次の形式で指定します。
      "entity_id_column_name"
    • 複数のエンティティ ID 列を指定するには、列名を次の形式で指定します。
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]

HTTP メソッドと URL:

PATCH https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME

リクエストの本文(JSON):

{
  "big_query_source":
  {
    "uri": "BIGQUERY_SOURCE_URI",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X PATCH \
-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/FEATUREVIEW_NAME"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-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/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.UpdateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T04:53:34.832192Z",
      "updateTime": "2023-09-15T04:53:34.832192Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.FeatureView",
    "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
  }
}

次のステップ