Featurewerte bereitstellen

Mit Vertex AI Feature Store können Sie Featurewerte online aus einer Featureansicht innerhalb eines Onlinespeichers bereitstellen. Sie können beispielsweise Featurewerte aus einer Featureansicht für Onlinevorhersagen bereitstellen. Eine Featureansicht muss mindestens einmal synchronisiert werden, bevor Sie Features über dieses Feature online bereitstellen können.

Wenn die Featureansicht basierend auf Featuregruppen und Features definiert ist, ruft Vertex AI Feature Store die neuesten Featurewerte ab, die einer bestimmten Entitäts-ID entsprechen. Wenn die Spalte „ID“ mehrere Datensätze mit demselben Wert enthält, ruft Vertex AI Feature Store die neuesten Nicht-Null-Featurewerte basierend auf der Spalte feature_timestamp ab.

Wenn die Featureansicht direkt mit einer BigQuery-Datenquelle verknüpft ist, ohne Featuregruppen und Features zu verknüpfen, ruft Vertex AI Feature Store alle Featurewerte aus der Datenquelle ab. In diesem Fall muss jede Zeile in der Datenquelle eine eindeutige ID enthalten.

Sie können Featurewerte mit einer ID pro Anfrage bereitstellen.

Je nach Art der Onlinebereitstellung, die für Ihren Onlineshop konfiguriert ist, können Sie Featurewerte auf eine der folgenden Arten bereitstellen:

Featurewerte mit der Cloud Bigtable-Onlinebereitstellung abrufen

Im folgenden Beispiel werden Featurewerte anhand einer bestimmten Entitäts-ID mithilfe der Cloud Bigtable-Onlinebereitstellung abgerufen.

REST

Wenn Sie die neuesten Featurewerte für eine bestimmte Entitäts-ID von einer FeatureView-Instanz abrufen möchten, senden Sie eine POST-Anfrage mit featureViews.fetchFeatureValues-Methode.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name des Onlinespeichers, der die Featureansicht enthält.
  • FEATUREVIEW_NAME: Der Name der Featureansicht, aus der Sie Featurewerte bereitstellen möchten.
  • ENTITY_ID: Wert der ID-Spalte im Feature-Eintrag, aus dem Sie die neuesten Featurewerte bereitstellen möchten.
  • FORMAT: Optional: Das Format, in dem Sie die Featurewerte abrufen möchten. Zu den unterstützten Formaten gehören das JSON-Schlüssel/Wert-Paar und die Proto-Formate "Struct".

HTTP-Methode und URL:

POST http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues

JSON-Text der Anfrage:

{
  data_key: "ENTITY_ID",
  data_format: "FORMAT"
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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 "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

key_values {
  features {
    value {
      int64_value: 258348
    }
    name: "feature_0"
  }
  features {
    value {
      double_value: 0.96300036744534068
    }
    name: "feature_1"
  }
  features {
    value {
      double_value: 0.42787383695351083
    }
    name: "feature_2"
  }
  features {
    value {
      double_value: 0.12219888824743128
    }
    name: "feature_3"
  }
  features {
    value {
      double_value: 0.037523154697944622
    }
    name: "feature_4"
  }
  features {
    value {
      double_value: 0.1766952509448767
    }
    name: "feature_5"
  }
}

Python

Im folgenden Beispiel werden Featurewerte anhand einer bestimmten Entitäts-ID mithilfe der Cloud Bigtable-Onlinebereitstellung abgerufen.

from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.types import feature_online_store_service as feature_online_store_service_pb2

data_client = FeatureOnlineStoreServiceClient(
  client_options={"api_endpoint": f"LOCATION_ID-aiplatform.googleapis.com"}
)
data_client.fetch_feature_values(
  request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
    feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
    data_key=feature_online_store_service_pb2.FeatureViewDataKey(key="ENTITY_ID"),
    data_format=feature_online_store_service_pb2.FeatureViewDataFormat.FORMAT,
  )
)

Ersetzen Sie Folgendes:

  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.

  • PROJECT_ID: Ihre Projekt-ID.

  • FEATUREONLINESTORE_NAME: Der Name des Onlinespeichers, der die Featureansicht enthält.

  • FEATUREVIEW_NAME: Der Name der Featureansicht, aus der Sie Featurewerte bereitstellen möchten.

  • ENTITY_ID: Wert der ID-Spalte im Feature-Eintrag, aus dem Sie die neuesten Featurewerte bereitstellen möchten.

  • FORMAT: Optional: Das Format, in dem Sie die Featurewerte abrufen möchten. Zu den unterstützten Formaten gehören das JSON-KEY_VALUE-Paar und die Proto-PROTO_STRUCT-Formate.

Rufen Sie Featurewerte mit der optimierten Onlinebereitstellung von einem öffentlichen Endpunkt ab.

Wenn Sie Ihre Online-Speicher-Instanz so konfiguriert haben, dass Featurewerte über die optimierte Online-Bereitstellung von einem öffentlichen Endpunkt bereitgestellt werden, müssen Sie die folgenden Schritte ausführen, um Featurewerte aus einer Feature-Ansicht im Online-Speicher abzurufen:

  1. Rufen Sie den Domainnamen des öffentlichen Endpunkts für die FeatureOnlineStore-Instanz ab.

  2. Rufen Sie Featurewerte aus einer Entitäts-ID ab, indem Sie den Domainnamen des öffentlichen Endpunkts verwenden.

Domainnamen des öffentlichen Endpunkts für den Onlinespeicher abrufen

Wenn Sie eine Onlinespeicher-Instanz für die optimierte Onlinebereitstellung mit einem öffentlichen Endpunkt erstellen und konfigurieren, generiert Vertex AI Feature Store den Domainnamen des öffentlichen Endpunkts für den Onlinespeicher. Bevor Sie Featurewerte aus einer Featureansicht im Onlinespeicher bereitstellen können, müssen Sie den Domainnamen des öffentlichen Endpunkts aus den Onlinespeicherdetails abrufen.

Verwenden Sie das folgende Beispiel, um die Details einer Onlinespeicherinstanz abzurufen.

REST

Sie rufen die Details eines FeatureOnlineStore Ressource in Ihrem Projekt ab, indem Sie senden eine GET Anfrage mithilfe des featureOnlineStores.get-Methode.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name der Onlinespeicherinstanz.

HTTP-Methode und URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"

PowerShell

Führen Sie folgenden Befehl aus:

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
  "createTime": "2023-09-06T23:25:04.256314Z",
  "updateTime": "2023-09-06T23:25:04.256314Z",
  "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
  "state": "STABLE",
  "dedicatedServingEndpoint": {
    "publicEndpointDomainName": "PUBLIC_ENDPOINT_DOMAIN_NAME"
  },
  "optimized": {}
}

Sie benötigen die PUBLIC_ENDPOINT_DOMAIN_NAME aus der Antwort, um Featurewerte im folgenden Schritt abzurufen.

Featurewerte aus einer Entitäts-ID abrufen

Nachdem Sie den Domainnamen des öffentlichen Endpunkts für die Onlinespeicherinstanz abgerufen haben, verwenden Sie das folgende Beispiel, um Featurewerte für eine bestimmte Entitäts-ID mithilfe der optimierten Onlinebereitstellung abzurufen.

REST

Wenn Sie die neuesten Featurewerte für eine bestimmte Entitäts-ID von einer FeatureView-Instanz abrufen möchten, senden Sie eine POST-Anfrage mit der featureViews.fetchFeatureValues-Methode.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: Der Domainname des öffentlichen Endpunkts für die Onlinespeicherinstanz, die Sie mit der Methode featureOnlineStores.get abgerufen haben.
  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name des Onlinespeichers, der die Featureansicht enthält.
  • FEATUREVIEW_NAME: Der Name der Featureansicht, aus der Sie Featurewerte bereitstellen möchten.
  • ENTITY_ID: Wert der ID-Spalte im Feature-Eintrag, aus dem Sie die neuesten Featurewerte bereitstellen möchten.
  • FORMAT: Optional: Das Format, in dem Sie die Featurewerte abrufen möchten. Zu den unterstützten Formaten gehören das JSON-Schlüssel/Wert-Paar und die Proto-Formate "Struct".

HTTP-Methode und URL:

POST http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues

JSON-Text der Anfrage:

{
  data_key: "ENTITY_ID",
  data_format: "FORMAT"
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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 "http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

key_values {
  features {
    value {
      int64_value: 258348
    }
    name: "feature_0"
  }
  features {
    value {
      double_value: 0.96300036744534068
    }
    name: "feature_1"
  }
  features {
    value {
      double_value: 0.42787383695351083
    }
    name: "feature_2"
  }
  features {
    value {
      double_value: 0.12219888824743128
    }
    name: "feature_3"
  }
  features {
    value {
      double_value: 0.037523154697944622
    }
    name: "feature_4"
  }
  features {
    value {
      double_value: 0.1766952509448767
    }
    name: "feature_5"
  }
}

Python

Im folgenden Beispiel werden Featurewerte anhand einer bestimmten Entitäts-ID mithilfe der optimierten Onlinebereitstellung abgerufen.

from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.types import feature_online_store_service as feature_online_store_service_pb2

data_client = FeatureOnlineStoreServiceClient(
  client_options={"api_endpoint": f"PUBLIC_ENDPOINT_DOMAIN_NAME"}
)
data_client.fetch_feature_values(
  request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
    feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
    id=f"ENTITY_ID",
    format=feature_online_store_service_pb2.FetchFeatureValuesRequest.Format.FORMAT,
  )
)

Ersetzen Sie Folgendes:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: Der Domainname des öffentlichen Endpunkts für die Onlinespeicherinstanz, die Sie mit der Methode featureOnlineStores.get abgerufen haben.

  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.

  • PROJECT_ID: Ihre Projekt-ID.

  • FEATUREONLINESTORE_NAME: Der Name des Onlinespeichers, der die Featureansicht enthält.

  • FEATUREVIEW_NAME: Der Name der Featureansicht, aus der Sie Featurewerte bereitstellen möchten.

  • ENTITY_ID: Wert der ID-Spalte im Feature-Eintrag, aus dem Sie die neuesten Featurewerte bereitstellen möchten.

  • FORMAT: Optional: Das Format, in dem Sie die Featurewerte abrufen möchten. Zu den unterstützten Formaten gehören das JSON-KEY_VALUE-Paar und die Proto-PROTO_STRUCT-Formate.

Featurewerte mit der optimierten Onlinebereitstellung von einem Private Service Connect-Endpunkt abrufen.

Wenn Sie Ihre Online-Speicher-Instanz so konfiguriert haben, dass Featurewerte über die optimierte Online-Bereitstellung von einem Private Service Connect-Endpunkt bereitgestellt werden, müssen Sie die folgenden Schritte ausführen, um Featurewerte aus einer Feature-Ansicht im Online-Speicher abzurufen:

  1. Rufen Sie die Private Service Connect-Konfiguration für die FeatureOnlineStore-Instanz ab.

  2. Fügen Sie Ihrer Netzwerkkonfiguration einen Endpunkt für Private Service Connect hinzu.

  3. Stellen Sie eine Verbindung zum Private Service Connect-Endpunkt über gRPC her.

  4. Featurewerte aus einer Entitäts-ID abrufen

Dienstanhang-String für den Onlinespeicher abrufen

Wenn Sie eine Onlinespeicherinstanz für die optimierte Onlinebereitstellung mit einem Private Service Connect-Endpunkt erstellen und konfigurieren, generiert Vertex AI Feature Store einen Dienstanhang-String, mit dem Sie den Private Service Connect-Endpunkt einrichten können. Sie können den Dienstanhang-String aus den Onlinespeicherdetails abrufen.

Verwenden Sie das folgende Beispiel, um die Details einer Onlinespeicherinstanz abzurufen.

REST

Sie rufen die Details eines FeatureOnlineStore Ressource in Ihrem Projekt ab, indem Sie senden eine GET Anfrage mithilfe des featureOnlineStores.get-Methode.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATUREONLINESTORE_NAME: Der Name der Onlinespeicherinstanz.

HTTP-Methode und URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"

PowerShell

Führen Sie folgenden Befehl aus:

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
  "createTime": "2023-09-06T23:25:04.256314Z",
  "updateTime": "2023-09-06T23:25:04.256314Z",
  "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
  "state": "STABLE",
  "dedicatedServingEndpoint": {
    "privateServiceConnectConfig": {
      "enablePrivateServiceConnect": "true",
      "projectAllowlist": [
        "PROJECT_NAME"
      ]
    },
    serviceAttachment: "SERVICE_ATTACHMENT_STRING"
  },
  "optimized": {}
}

Sie benötigen SERVICE_ATTACHMENT_STRING aus der Antwort, um Featurewerte im folgenden Schritt abzurufen.

Endpunkt für Private Service Connect hinzufügen

Führen Sie die folgenden Schritte aus, um Ihrer Netzwerkkonfiguration einen Private Service Connect-Endpunkt für die optimierte Onlinebereitstellung hinzuzufügen:

  1. Wählen Sie in der Google Cloud Console das Projekt mit der Onlinespeicherinstanz aus.

  2. Erstellen Sie einen Endpunkt für Private Service Connect. Geben Sie dazu SERVICE_ATTACHMENT_STRING als Zieldienst an. Informationen zum Erstellen eines Endpunkts für Private Service Connect finden Sie unter Endpunkt erstellen.

Nachdem Sie den Endpunkt erstellt haben, wird er auf dem Tab Verbundene Endpunkte auf der Seite Private Service Connect angezeigt. Die IP-Adresse des Endpunkts wird in der Spalte IP-Adressen angezeigt.

Zum Tab "Verbundene Endpunkte"

Sie benötigen diese IP-Adresse, um im folgenden Schritt eine Verbindung zum Endpunkt für Ihre Onlinespeicher-Instanz zum Private Service Connect-Endpunkt über gRPC herzustellen.

Verbindung zum Private Service Connect-Endpunkt über gRPC herstellen

Verwenden Sie das folgende Codebeispiel, um eine Verbindung zu dem Private Service Connect-Endpunkt herzustellen, der für Ihren Onlinespeicher über gRPC erstellt wurde.

Python

from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.services.feature_online_store_service.transports.grpc import FeatureOnlineStoreServiceGrpcTransport
import grpc

data_client = FeatureOnlineStoreServiceClient(
  transport = FeatureOnlineStoreServiceGrpcTransport(
    # Add the IP address of the Endpoint you just created.
    channel = grpc.insecure_channel("ENDPOINT_IP:10002")
  )
)

Ersetzen Sie Folgendes:

  • ENDPOINT_IP: Die IP-Adresse des Endpunkts in der Spalte IP-Adressen auf der Seite Private Service Connect.

Featurewerte aus einer Entitäts-ID abrufen

Nachdem Sie über gRPC eine Verbindung zum Private Service Connect-Endpunkt hergestellt haben, verwenden Sie das folgende Beispiel, um Featurewerte für eine bestimmte Entitäts-ID mithilfe der optimierten Onlinebereitstellung abzurufen.

Python

data_client.fetch_feature_values(
  request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
  feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
  data_key=feature_online_store_service_pb2.FeatureViewDataKey(ENTITY_ID),
  data_format=feature_online_store_service_pb2.FeatureViewDataFormat.PROTO_STRUCT,
  )
)

Ersetzen Sie Folgendes:

  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.

  • PROJECT_ID: Ihre Projekt-ID.

  • FEATUREONLINESTORE_NAME: Der Name des Onlinespeichers, der die Featureansicht enthält.

  • FEATUREVIEW_NAME: Der Name der Featureansicht, aus der Sie Featurewerte bereitstellen möchten.

  • ENTITY_ID: Wert der ID-Spalte im Feature-Eintrag, aus dem Sie die neuesten Featurewerte bereitstellen möchten.

  • FORMAT: Optional: Das Format, in dem Sie die Featurewerte abrufen möchten. Zu den unterstützten Formaten gehören das JSON-Schlüssel/Wert-Paar und die Proto-Formate "Struct".

Nächste Schritte