Importation en flux continu

L'importation en flux continu 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 diffusion en ligne est une priorité. Par exemple, vous pouvez importer des données d'événements en streaming et, en quelques secondes, Vertex AI Feature Store (ancien) les rend disponibles pour des scénarios de diffusion en ligne.

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

Pour en savoir plus sur l'horodatage de valeur de caractéristique le plus ancien que vous pouvez importer, consultez la section Vertex AI Feature Store (ancien) de la page Quotas et limites. Vous ne pouvez pas importer de valeurs de caractéristiques pour lesquelles l'horodatage 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é actuelle d'un utilisateur. Lorsque les utilisateurs parcourent le site Web, vous pouvez capturer leur activité dans un magasin de caractéristiques, puis diffuser rapidement ces informations pour les prédictions en ligne. Cette importation et cette diffusion 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 de processeur du magasin de caractéristiques (nœuds de stockage en ligne). Surveillez votre utilisation de processeur pour vérifier que la demande ne dépasse pas l'offre, ce qui peut entraîner des erreurs de diffusion. Nous vous recommandons d'utiliser un taux d'utilisation d'environ 70 % ou moins pour éviter ces erreurs. 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 la section Gérer les magasins de caractéristiques.

Importation en flux continu

É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 garantir que les nouvelles caractéristiques 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 en flux continu 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 le Feature Store Vertex AI (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 la section Surveiller les erreurs d'écriture de stockage hors connexion pour l'importation en flux continu.

REST

Pour importer des valeurs de caractéristiques pour des 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 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 featurestore est créé. Exemple :us-central1
  • PROJECT : l'ID de votre projet.
  • FEATURESTORE_ID : ID du featurestore.
  • 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. L'horodatage doit être au format RFC3339 UTC.

Méthode HTTP et URL :

POST http://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 \
"http://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 "http://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.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API 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