Importation en flux continu

L'importation par flux vous permet de mettre à jour les valeurs des caractéristiques en temps réel. Cette méthode est utile lorsque la disponibilité des dernières données pour la livraison en ligne est importante. Par exemple, vous pouvez importer des données d'événements par flux et, en quelques secondes, Vertex AI Feature Store (ancien) les rend disponibles pour des scénarios de livraison en ligne.

Si vous devez remplir des données ou calculer des valeurs de caractéristiques par lots, utilisez l'importation par lots. Les requêtes d'importation par lots peuvent gérer des charges utiles plus volumineuses que les requêtes d'importation par flux. En revanche, leur traitement prend plus de temps.

Pour en savoir plus sur le code temporel de valeur de caractéristique le plus ancien que vous pouvez importer, consultez Vertex AI Feature Store (ancien) de la page Quotas et limites. Vous ne pouvez pas importer de valeurs de caractéristiques pour lesquelles le code temporel correspond à une date ou une heure futures.

Exemple d'utilisation

Une entreprise de vente en ligne peut offrir une expérience d'achat personnalisée en utilisant l'activité en cours des utilisateurs. Lorsque les utilisateurs parcourent le site Web, vous pouvez capturer leur activité dans un magasin de caractéristiques, puis livrer rapidement ces informations pour les prédictions en ligne. Cette importation et cette livraison en temps réel peuvent vous aider à présenter des recommandations utiles et pertinentes aux clients au cours de leur session d'achat.

Utilisation des nœuds de stockage en ligne

L'écriture de valeurs de caractéristiques dans un magasin en ligne utilise les ressources CPU du magasin de caractéristiques (nœuds de stockage en ligne). Surveillez votre utilisation du CPU pour vérifier que la demande ne dépasse pas l'offre, car cela peut entraîner des erreurs de livraison. Pour les éviter, nous vous recommandons de rester à un taux d'utilisation d'environ 70 % ou moins. Si vous dépassez régulièrement cette valeur, vous pouvez mettre à jour votre magasin de caractéristiques pour augmenter le nombre de nœuds ou utiliser l'autoscaling. Pour plus d'informations, consultez Gérer les magasins de caractéristiques.

Importation par flux

Écrivez une valeur dans une caractéristique spécifique. La valeur de la caractéristique doit être incluse dans la requête d'importation. Vous ne pouvez pas diffuser de données directement à partir d'une source de données.

Si vous écrivez sur des caractéristiques récemment créées, attendez quelques minutes pour vous assurer qu'elles ont bien été propagées. Sans cela, une erreur resource not found risque de s'afficher.

Vous ne pouvez importer des valeurs de caractéristiques que pour une entité par écriture. Pour un projet et une région spécifiques, vous pouvez écrire simultanément des valeurs de caractéristiques pour plusieurs entités dans un maximum de 10 types d'entités différents. Cette limite inclut les requêtes d'importation par flux envoyées à tous les magasins de caractéristiques d'un projet et d'une région donnés. Si vous dépassez cette limite, il est possible que Vertex AI Feature Store (ancien) n'écrive pas toutes vos données dans le magasin hors connexion. Dans ce cas, Vertex AI Feature Store (ancien) consigne l'erreur dans l'explorateur de journaux. Pour plus d'informations, consultez Surveiller les erreurs d'écriture de stockage hors connexion pour l'importation par flux.

REST

Pour importer des valeurs de caractéristiques existantes, envoyez une requête POST à l'aide de la méthode featurestores.entityTypes.writeFeatureValues. Si les noms des colonnes de données sources et les identifiants des caractéristiques de destination sont différents, il faut inclure le paramètre sourceField. Notez que la méthode featurestores.entityTypes.writeFeatureValues ne vous permet d'importer des valeurs de caractéristiques que pour une seule entité à la fois.

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

  • LOCATION : région dans laquelle le magasin de caractéristiques est créé. Par exemple, us-central1.
  • PROJECT : ID de votre projet.
  • FEATURESTORE_ID : ID du magasin de caractéristiques.
  • ENTITY_TYPE_ID : ID du type d'entité.
  • FEATURE_ID : ID d'une caractéristique existante du magasin de caractéristiques pour l'écriture des valeurs.
  • VALUE_TYPE : type de valeur de la caractéristique.
  • VALUE : valeur de la caractéristique.
  • TIME_STAMP (facultatif) : heure à laquelle la caractéristique a été générée. Le code temporel doit être au format RFC3339 UTC.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues

Corps JSON de la requête :

{
  "payloads": [
    {
      "entityId": "ENTITY_ID",
      "featureValues": {
        "FEATURE_ID": {
          "VALUE_TYPE": VALUE,
          "metadata": {"generate_time": "TIME_STAMP"}
        }
      }
    }
  ]
}

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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues"

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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues" | Select-Object -Expand Content

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

SDK Vertex AI pour Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API SDK Vertex AI pour Python.

from google.cloud import aiplatform


def write_feature_values_sample(
    project: str, location: str, entity_type_id: str, featurestore_id: str
):

    aiplatform.init(project=project, location=location)

    my_entity_type = aiplatform.featurestore.EntityType(
        entity_type_name=entity_type_id, featurestore_id=featurestore_id
    )

    my_data = {
        "movie_01": {
            "title": "The Shawshank Redemption",
            "average_rating": 4.7,
            "genre": "Drama",
        },
    }

    my_entity_type.write_feature_values(instances=my_data)

Langages supplémentaires

Vous pouvez installer et utiliser les bibliothèques clientes Vertex AI suivantes pour appeler l'API Vertex AI. Les bibliothèques clientes Google Cloud optimisent l'expérience des développeurs en utilisant les conventions et le style naturels de chaque langage disponible.

Étapes suivantes