Mettre à jour les caractéristiques d'une vue de caractéristiques

Si votre magasin en ligne utilise la diffusion en ligne Bigtable, vous pouvez mettre à jour directement les valeurs des caractéristiques dans une vue de caractéristiques sans mettre à jour la source de données des caractéristiques en temps réel. Vous pouvez mettre à jour les valeurs des caractéristiques pour un ID existant ou ajouter un ID d'entité avec les valeurs de caractéristiques correspondantes. Utilisez cette fonctionnalité dans les cas suivants :

  • Vous souhaitez écrire des caractéristiques dans un magasin en ligne plus rapidement que la synchronisation par lot, tout en conservant la fraîcheur des données à 100 ms ou moins.

  • Vous souhaitez récupérer l'horodatage lorsque la caractéristique est écrite dans le magasin en ligne.

Vertex AI Feature Store ne met pas à jour la source de données des caractéristiques dans BigQuery en fonction des données de caractéristiques écrites directement dans une instance de vue de caractéristiques. Lors de la synchronisation des données, Vertex AI Feature Store met à jour la vue de caractéristiques avec la valeur de caractéristique ayant l'horodatage le plus récent. Par exemple, si vous mettez à jour une valeur de caractéristique directement dans une vue de caractéristiques, puis que vous mettez à jour la même caractéristique dans la source BigQuery, Vertex AI Feature Store met à jour la vue de caractéristiques avec la valeur de caractéristique la plus récemment mise à jour de BigQuery lors de la prochaine synchronisation des données.

Si vous souhaitez ajouter ou mettre à jour des valeurs de caractéristiques pour une colonne de caractéristiques utilisée dans plusieurs vues de caractéristiques, vous devez effectuer les mêmes mises à jour dans chaque vue de caractéristiques séparément.

Si une instance de magasin en ligne est configurée pour la diffusion en ligne optimisée (obsolète), vous ne pouvez pas écrire directement des caractéristiques dans une vue de caractéristiques de ce magasin en ligne.

Notez que cette fonctionnalité ne vous permet pas d'ajouter ni de supprimer des colonnes de caractéristiques dans une vue de caractéristiques. Vous ne pouvez pas non plus supprimer les valeurs de caractéristiques ni les ID d'entité existants.

Avant de commencer

Authentifiez-vous auprès de Vertex AI, sauf si vous l'avez déjà fait.

Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

    Installez la Google Cloud CLI.

    Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l' Google Cloud authentification.

Mettre à jour directement les caractéristiques dans une vue de caractéristiques

Utilisez l'exemple suivant pour écrire des caractéristiques dans une entité d'une vue de caractéristiques.

REST

Pour écrire directement des valeurs de caractéristiques dans une FeatureView instance, envoyez une POST requête à l'aide de la featureViews.directWrite méthode.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION_ID : région de la vue de caractéristiques dans laquelle vous souhaitez écrire les caractéristiques, par exemple us-central1.
  • PROJECT_ID : ID de votre projet
  • FEATUREONLINESTORE_NAME : nom de l'instance de magasin en ligne contenant la vue de caractéristiques.
  • FEATUREVIEW_NAME : nom de la nouvelle instance de vue de caractéristiques dans laquelle vous souhaitez écrire les caractéristiques.
  • ENTITY_ID : ID de l'entité pour laquelle vous souhaitez ajouter des valeurs de caractéristiques.
  • FEATURE_1 et FEATURE_2 : caractéristiques que vous souhaitez ajouter.
  • FEATURE_1_VALUE et FEATURE_2_VALUE : valeurs de caractéristiques pour FEATURE_1 et FEATURE_2, respectivement.

Méthode HTTP et URL :

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:directWrite

Corps JSON de la requête :

[
  {
      "feature_view": "LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
      "data_key_and_feature_values": {
        "data_key": {
          "key": "ENTITY_ID"
        },
        "features": [{
          "name": "FEATURE_1",
          "value_and_timestamp": {
            "value": {
              "string_value": "FEATURE_1_VALUE"
            }
          }
        },
        {
          "name": "FEATURE_2",
          "value_and_timestamp": {
            "value": {
              "string_value": "FEATURE_2_VALUE"
            }
          }
        }
      ]
    }
  }
]

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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/FEATUREVIEW_NAME:directWrite"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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/FEATUREVIEW_NAME:directWrite" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "status": {},
  "writeResponses": [
    {
      "dataKey": {
        "key": "ENTITY_ID"
      },
      "onlineStoreWriteTime": "2025-04-01T01:30:09.525061Z"
    }
  ]
}

Étapes suivantes