Importazione di flussi di dati

L'importazione in streaming ti consente di aggiornare in tempo reale i valori delle funzionalità. Questo metodo è utile quando è prioritario disporre dei dati più recenti disponibili per la pubblicazione online. Ad esempio, puoi importare i dati sugli eventi in streaming e, entro pochi secondi, Vertex AI Feature Store (legacy) li rende disponibili per gli scenari di pubblicazione online.

Se devi eseguire il backfill dei dati o se calcoli i valori delle funzionalità in batch, utilizza importazione collettiva. Rispetto alle richieste di importazione in streaming, le richieste di importazione batch possono gestire payload più grandi, ma il loro completamento richiede più tempo.

Per informazioni sul timestamp del valore della funzionalità più antico che puoi importare, consulta Vertex AI Feature Store (legacy) in Quote e limiti. Non puoi importare i valori delle funzionalità per i quali i timestamp indicano date o ore future.

Caso d'uso di esempio

Un'organizzazione di vendita al dettaglio online potrebbe offrire un'esperienza di acquisto personalizzata utilizzando l'attività corrente di un utente. Mentre gli utenti navigano nel sito web, puoi acquisire la loro attività in un feature store e poi, poco dopo, pubblicare tutte queste informazioni per le previsioni online. Questa importazione e pubblicazione in tempo reale può aiutarti a mostrare ai clienti consigli utili e pertinenti durante la loro sessione di acquisto.

Utilizzo dei nodi di archiviazione online

La scrittura dei valori delle funzionalità in un archivio online utilizza le risorse della CPU del feature store (nodi di archiviazione online). Monitora l'utilizzo della CPU per verificare che la domanda non superi l'offerta, il che può causare errori di pubblicazione. Per evitare questi errori, consigliamo un tasso di utilizzo pari o inferiore al 70%. Se superi regolarmente questo valore, puoi aggiornare il tuo feature store per aumentare il numero di nodi o utilizzare la scalabilità automatica. Per saperne di più, consulta Gestire i store di funzionalità.

Importazione di flussi di dati

Scrivi un valore per una determinata funzionalità. Il valore della funzionalità deve essere incluso come parte della richiesta di importazione. Non puoi trasmettere i dati direttamente da un'origine data.

Se stai scrivendo in funzionalità create di recente, attendi qualche minuto prima di farlo perché le nuove funzionalità potrebbero non essere state ancora propagate. In caso contrario, potresti visualizzare un errore resource not found.

Puoi importare i valori delle caratteristiche per una sola entità per scrittura. Per qualsiasi progetto e regione specifici, puoi scrivere contemporaneamente i valori delle funzionalità per più entità all'interno di un massimo di dieci tipi di entità diversi. Questo limite include le richieste di importazione in streaming per tutti i feature store in un determinato progetto e regione. Se superi questo limite, Vertex AI Feature Store (legacy) potrebbe non scrivere tutti i dati nell' archivio offline. In questo caso, Vertex AI Feature Store (legacy) registra l'errore in Logs Explorer. Per ulteriori informazioni, consulta Monitorare gli errori di scrittura dello spazio di archiviazione offline per l'importazione di streaming.

REST

Per importare i valori delle caratteristiche per le funzionalità esistenti, invia una richiesta POST utilizzando il metodo featurestores.entityTypes.writeFeatureValues. Se i nomi delle colonne di dati di origine e gli ID delle funzionalità di destinazione sono diversi, includi il parametro sourceField. Tieni presente che featurestores.entityTypes.writeFeatureValues ti consente di importare i valori delle funzionalità per una sola entità alla volta.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: regione in cui viene creato il feature store. Ad esempio, us-central1.
  • PROJECT: il tuo ID progetto.
  • FEATURESTORE_ID: l'ID dell'archivio di funzionalità.
  • ENTITY_TYPE_ID: ID del tipo di entità.
  • FEATURE_ID: ID di una funzionalità esistente nel feature store per la quale scrivere i valori.
  • VALUE_TYPE: il tipo di valore della funzionalità.
  • VALUE: valore per la funzionalità.
  • TIME_STAMP (facoltativo): l'ora in cui la funzionalità è stata generata. Il timestamp deve essere nel formato UTC RFC3339.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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

Dovresti ricevere un codice di stato di operazione riuscita (2xx) e una risposta vuota.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'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)

Linguaggi aggiuntivi

Puoi installare e utilizzare le seguenti librerie client Vertex AI per chiamare l'API Vertex AI. Le librerie client di Cloud offrono agli sviluppatori un'esperienza ottimizzata utilizzando gli stili e le convenzioni naturali di ogni linguaggio supportato.

Passaggi successivi