オンライン ストア インスタンスを作成する

オンライン サービングを設定するには、まず Bigtable オンライン サービングまたは最適化されたオンライン サービング用のオンライン ストア インスタンスを作成する必要があります。 Bigtable オンライン サービングと最適化されたオンライン サービングの違いについては、オンライン サービングのタイプをご覧ください。

オンライン ストアの作成中に Bigtable オンライン サービングまたは最適化されたオンライン サービングを選択した後に、オンライン サービングの種類を変更することはできません。ただし、最適化されたオンライン サービング用に作成されたオンライン ストア インスタンスのサービス エンドポイントの構成は変更できます。

オンライン ストアを作成したら、特徴ビューを追加し、それらの特徴ビューを BigQuery の特徴データソースに関連付けることができます。

オンライン ストア インスタンスを作成するときに顧客管理の暗号鍵(CMEK)を指定すると、オンライン ストア インスタンスを暗号化できます。CMEK を使用した暗号化は、Bigtable オンライン サービングでのみサポートされています。CMEK を使用する利点と、オンライン ストアに CMEK が役立つかどうかについては、CMEK の利点をご覧ください。

CMEK を使用すると、使用される鍵の種類によっては追加の使用料金が発生する場合があります。料金の詳細については、Cloud Key Management Service の料金をご覧ください。

始める前に

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

Select the tab for how you plan to use the samples on this page:

Console

When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

Python

ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. 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

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

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

    gcloud init

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

Bigtable オンライン サービング用のオンライン ストアを作成する

Bigtable オンライン サービングを使用する場合は、CMEK を使用してオンライン ストアを暗号化できます。

CMEK を使用しない Bigtable オンライン サービング用のオンライン ストアを作成する

CMEK を指定せずに、自動スケーリングで Bigtable オンライン サービング用のオンライン ストア インスタンスを作成するには、Google Cloud コンソールまたは REST API を使用します。

コンソール

Google Cloud コンソールで Bigtable オンライン サービング用のオンライン ストアを作成するには、次の操作を行います。

  1. Google Cloud コンソールの [Vertex AI] セクションで、[Feature Store] ページに移動します。

    [Feature Store] ページに移動

  2. [オンライン ストア] をクリックして、[オンライン ストア] セクションに移動します。

  3. [作成] をクリックして [オンライン ストアを作成] ページを開きます。

  4. オンライン ストアの名前を指定します。

  5. 省略可: ラベルを追加するには、[ラベルを追加] をクリックし、ラベル名と値を指定します。オンライン ストアには複数のラベルを追加できます。

  6. [オンライン ショップ用のストレージ ソリューションの選択] フィールドで、[Bigtable] をクリックします。

  7. 最小ノード数最大ノード数CPU 使用率の目標値を必要に応じて変更します。

  8. [作成] をクリックします。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store


def create_bigtable_feature_online_store_sample(
    project: str,
    location: str,
    feature_online_store_id: str,
):
    aiplatform.init(project=project, location=location)
    fos = feature_store.FeatureOnlineStore.create_bigtable_store(
        feature_online_store_id
    )
    return fos

  • project: プロジェクト ID。
  • location: オンライン ストアがあるリージョン(us-central1 など)。
  • feature_online_store_id: 新しい FeatureOnlineStore インスタンスの名前。

REST

FeatureOnlineStore リソースを作成するには、featureOnlineStores.create メソッドを使用して POST リクエストを送信します。

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

  • LOCATION_ID: オンライン ストアを作成するリージョン(us-central1 など)。
  • PROJECT_ID: 実際のプロジェクト ID。
  • FEATUREONLINESTORE_NAME: 新しいオンライン ストア インスタンスの名前。
  • BOOLEAN:(省略可)エンベディング管理をサポートするオンライン ストアを作成するには、「true」と入力します。デフォルト値は false です。

HTTP メソッドと URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores?feature_online_store_id=FEATUREONLINESTORE_NAME

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

{
  "bigtable": {
    "auto_scaling": {
      "min_node_count": 1,
      "max_node_count": 3,
      "cpu_utilization_target": 50
    }
  }
}

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

curl

リクエスト本文を 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?feature_online_store_id=FEATUREONLINESTORE_NAME"

PowerShell

リクエスト本文を 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?feature_online_store_id=FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureOnlineStoreOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-18T17:49:23.847496Z",
      "updateTime": "2023-09-18T17:49:23.847496Z"
    }
  }
}

CMEK を使用するオンライン ストアを作成する

CMEK で暗号化された Bigtable オンライン サービング用のオンライン ストア インスタンスを作成する手順は次のとおりです。

CMEK 暗号化を使用すると、使用している鍵の種類に応じて追加の使用料が発生する場合があります。料金の詳細については、Cloud Key Management Service の料金をご覧ください。

  1. Cloud Key Management Service を使用して顧客管理の暗号鍵を構成します。

  2. FeatureOnlineStore リソースを作成するには、featureOnlineStores.create メソッドを使用し、CMEK を指定して、次の POST リクエストを送信します。

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

    • LOCATION_ID: オンライン ストアを作成するリージョン(us-central1 など)。
    • PROJECT_ID: 実際のプロジェクト ID。
    • FEATUREONLINESTORE_NAME: 新しいオンライン ストア インスタンスの名前。
    • BOOLEAN:(省略可)エンベディング管理をサポートするオンライン ストアを作成するには、「true」と入力します。デフォルト値は false です。
    • KEY_NAME: このメタデータ ストアに使用する暗号鍵の名前。

    HTTP メソッドと URL:

    POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores?feature_online_store_id=FEATUREONLINESTORE_NAME

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

    {
      "bigtable": {
        "auto_scaling": {
          "min_node_count": 1,
          "max_node_count": 3,
          "cpu_utilization_target": 50
        }
      },
      "encryption_spec": {
        "kms_key_name": "KEY_NAME"
      }
    }
    

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

    curl

    リクエスト本文を 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?feature_online_store_id=FEATUREONLINESTORE_NAME"

    PowerShell

    リクエスト本文を 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?feature_online_store_id=FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

    次のような JSON レスポンスが返されます。

    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureOnlineStoreOperationMetadata",
        "genericMetadata": {
          "createTime": "2023-09-18T17:49:23.847496Z",
          "updateTime": "2023-09-18T17:49:23.847496Z"
        }
      }
    }
    

最適化されたオンライン サービング用のオンライン ストアを作成する

最適化されたオンライン サービングを使用する場合、パブリック エンドポイントまたは専用の Private Service Connect エンドポイントのいずれかから特徴を提供するようにオンライン ストアを構成できます。VPC ネットワーク内でパブリック エンドポイントよりも低いレイテンシで特徴を提供する場合は、Private Service Connect エンドポイントを使用します。

最適化されたオンライン サービング用にパブリック エンドポイントを使用してオンライン ストアを作成する

次のサンプルでは、最適化されたオンライン サービング用にパブリック エンドポイントを使用してオンライン ストアを作成します。

コンソール

Google Cloud コンソールで最適化されたオンライン サービング用のオンライン ストアを作成するには、次の操作を行います。

  1. Google Cloud コンソールの [Vertex AI] セクションで、[Feature Store] ページに移動します。

    [Feature Store] ページに移動

  2. [オンライン ストア] をクリックして、[オンライン ストア] セクションに移動します。

  3. [作成] をクリックして [オンライン ストアを作成] ページを開きます。

  4. オンライン ストアの名前を指定します。

  5. 省略可: ラベルを追加するには、[ラベルを追加] をクリックし、ラベル名と値を指定します。オンライン ストアには複数のラベルを追加できます。

  6. [オンライン ショップ用のストレージ ソリューションの選択] フィールドで、[最適化] をクリックします。

  7. [作成] をクリックします。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store


def create_optimized_public_feature_online_store_sample(
    project: str,
    location: str,
    feature_online_store_id: str,
):
    aiplatform.init(project=project, location=location)
    fos = feature_store.FeatureOnlineStore.create_optimized_store(
        feature_online_store_id
    )
    return fos

  • project: プロジェクト ID。
  • location: FeatureOnlineStore インスタンスを作成するリージョン(us-central1 など)。
  • feature_online_store_id: 新しい FeatureOnlineStore インスタンスの名前。

REST

オンライン ストア インスタンスを作成するには、featureOnlineStores.create メソッドを使用して POST リクエストを送信します。

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

  • LOCATION_ID: FeatureOnlineStore インスタンスを作成するリージョン(us-central1 など)。
  • PROJECT_ID: 実際のプロジェクト ID。
  • FEATUREONLINESTORE_NAME: 新しい FeatureOnlineStore インスタンスの名前。

HTTP メソッドと URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores?feature_online_store_id=FEATUREONLINESTORE_NAME

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

{
  "optimized": {}
}

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

curl

リクエスト本文を 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?feature_online_store_id=FEATUREONLINESTORE_NAME"

PowerShell

リクエスト本文を 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?feature_online_store_id=FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureOnlineStoreOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-18T17:49:23.847496Z",
      "updateTime": "2023-09-18T17:49:23.847496Z"
    }
  }
}

最適化されたオンライン サービング用に Private Service Connect エンドポイントを使用してオンライン ストアを作成する

次のサンプルでは、最適化されたオンライン サービング用に Private Service Connect を使用してオンライン ストアを作成します。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from typing import List

from google.cloud import aiplatform
from vertexai.resources.preview import feature_store


def create_optimized_private_feature_online_store_sample(
    project: str,
    location: str,
    feature_online_store_id: str,
    project_allowlist: List[str],
):
    aiplatform.init(project=project, location=location)
    fos = feature_store.FeatureOnlineStore.create_optimized_store(
        name=feature_online_store_id,
        enable_private_service_connect=True,
        project_allowlist=project_allowlist,
    )
    return fos

  • project: プロジェクト ID。
  • location: FeatureOnlineStore インスタンスを作成するリージョン(us-central1 など)。
  • feature_online_store_id: 新しい FeatureOnlineStore インスタンスの名前。
  • project_allowlist: Private Service Connect(PSC)の許可リストに登録するプロジェクト名のリスト。

REST

オンライン ストア インスタンスを作成するには、featureOnlineStores.create メソッドを使用して POST リクエストを送信します。

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

  • LOCATION_ID: FeatureOnlineStore インスタンスを作成するリージョン(us-central1 など)。
  • PROJECT_ID: 実際のプロジェクト ID。
  • FEATUREONLINESTORE_NAME: 新しい FeatureOnlineStore インスタンスの名前。
  • PROJECT_NAMES: Private Service Connect(PSC)の許可リストに登録するプロジェクト名のリスト。

HTTP メソッドと URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores?feature_online_store_id=FEATUREONLINESTORE_NAME

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

{
  "optimized": {},
  "dedicated_serving_endpoint": {
    "private_service_connect_config": {
      "enable_private_service_connect": true,
      "project_allowlist": ["PROJECT_NAMES"]
    }
  }
}

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

curl

リクエスト本文を 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?feature_online_store_id=FEATUREONLINESTORE_NAME"

PowerShell

リクエスト本文を 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?feature_online_store_id=FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureOnlineStoreOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-18T17:49:23.847496Z",
      "updateTime": "2023-09-18T17:49:23.847496Z"
    }
  }
}

次のステップ