L'importazione in batch ti consente di importare i valori delle caratteristiche in massa da un'origine dati valida. In una richiesta di importazione in batch, puoi importare i valori di un massimo di 100 caratteristiche per un tipo di entità. Tieni presente che puoi avere in esecuzione un solo job di importazione in batch per ogni tipo di entità, per evitare collisioni.
In una richiesta di importazione in batch, occorre specificare la posizione dei dati di origine e come questi si mappano alle caratteristiche nell'archivio di caratteristiche. Poiché ogni richiesta di importazione in batch riguarda un singolo tipo di entità, anche i dati di origine devono riguardare un singolo tipo di entità.
Una volta completata l'importazione, i valori delle caratteristiche sono disponibili per le successive operazioni di lettura.
- Per informazioni sui requisiti dei dati di origine, consulta Requisiti dei dati di origine.
- Per informazioni su per quanto tempo Vertex AI Feature Store (legacy) conserva i tuoi dati nell'archivio offline, consulta Vertex AI Feature Store (legacy) in Quote e limiti.
- Per informazioni sul timestamp del valore della caratteristica più vecchio che puoi importare, consulta Vertex AI Feature Store (legacy) in Quote e limiti.
- Non puoi importare i valori delle caratteristiche per cui i timestamp indicano date o ore future.
Rendimento del job di importazione
Vertex AI Feature Store (legacy) offre un'importazione a velocità effettiva elevata, ma la latenza minima può richiedere alcuni minuti. Ogni richiesta a Vertex AI Feature Store (legacy) avvia un job per completare il lavoro. Il completamento di un job di importazione richiede alcuni minuti, anche se importi un singolo record.
Se vuoi apportare modifiche al rendimento di un job, modifica le due variabili seguenti:
- Il numero di nodi di erogazione online dell'archivio di caratteristiche.
- Il numero di worker utilizzati per il job di importazione. I worker elaborano e scrivono i dati nell'archivio di caratteristiche.
Il numero consigliato di worker è uno per ogni 10 nodi di erogazione online nell'archivio di caratteristiche. Puoi aumentare questo numero se il carico di erogazione online è basso. Puoi specificare un massimo di 100 worker. Per ulteriori indicazioni, consulta monitorare e ottimizzare le risorse di conseguenza per ottimizzare l'importazione in batch.
Se il cluster di erogazione online non è sottoposto a provisioning, il job di importazione potrebbe non riuscire. In caso di errore, riprova a inviare la richiesta di importazione quando il carico di erogazione online è basso oppure aumenta il numero di nodi dell'archivio di caratteristiche e riprova a inviare la richiesta.
Se l'archivio di caratteristiche non ha un archivio online (zero nodi di pubblicazione online), il job di importazione scrive solo nell'archivio offline e il rendimento del job dipende esclusivamente dal numero di worker di importazione.
Coerenza dei dati
Se i dati di origine vengono modificati durante l'importazione, possono essere introdotte incoerenze. Assicurati che tutte le modifiche ai dati di origine siano state completate prima di avviare un job di importazione. Inoltre, i valori delle caratteristiche duplicati possono comportare la pubblicazione di valori diversi tra le richieste online e in batch. Assicurati di avere un valore di caratteristica per ogni coppia di ID entità e timestamp.
Se un'operazione di importazione non riesce, l'archivio di caratteristiche potrebbe contenere solo dati parziali, il che può comportare la restituzione di valori incoerenti tra le richieste di pubblicazione online e in batch. Per evitare questa incoerenza, riprova a inviare la stessa richiesta di importazione e attendi il completamento della richiesta.
Valori null e array vuoti
Durante l'importazione, Vertex AI Feature Store (legacy) considera i valori scalari null o gli array vuoti come valori vuoti. Questi includono valori vuoti in una colonna CSV. Vertex AI Feature Store (legacy) non supporta i valori null non scalari, ad esempio un valore null in un array.
Durante l'erogazione online e recupero dati in batch, Vertex AI Feature Store (legacy) restituisce l'ultimo valore non null o non vuoto della caratteristica. Se un valore storico della caratteristica non è disponibile, Vertex AI Feature Store (legacy) restituisce null.
Valori NaN
Vertex AI Feature Store (legacy) supporta i valori NaN (Not a Number) in Double e DoubleArray. Durante l'importazione, puoi inserire NaN nel file CSV di input di pubblicazione per rappresentare un valore NaN. Durante l'erogazione online e recupero dati in batch, Vertex AI Feature Store (legacy) restituisce NaN per i valori NaN.
Importazione in batch
Importa i valori in blocco in un archivio di caratteristiche per una o più caratteristiche di un singolo tipo di entità.
UI web
- Nella sezione Vertex AI della Google Cloud console, vai a la pagina Caratteristiche.
- Seleziona una regione dall'elenco a discesa Regione.
- Nella tabella delle caratteristiche, visualizza la colpa Tipo di entità e trova il tipo di entità che contiene le caratteristiche per cui vuoi importare i valori.
- Fai clic sul nome del tipo di entità.
- Dalla barra delle azioni, fai clic su Importa valori.
- Per Origine dati, seleziona una delle seguenti opzioni:
- File CSV di Cloud Storage: seleziona questa opzione per importare i dati da più file CSV da Cloud Storage. Specifica il percorso e il nome del file CSV. Per specificare altri file, fai clic su Aggiungi un altro file.
- File AVRO di Cloud Storage: seleziona questa opzione per importare i dati da un file AVRO da Cloud Storage. Specifica il percorso e il nome del file AVRO.
- Tabella BigQuery: seleziona questa opzione per importare i dati da una tabella o una vista BigQuery. Sfoglia e seleziona una tabella o una vista da utilizzare, nel seguente formato:
PROJECT_ID.DATASET_ID.TABLE_ID
- Fai clic su Continua.
- Per Mappa colonna a caratteristiche, specifica le colonne dei dati di origine
che vengono mappate alle entità e alle caratteristiche nell'archivio di caratteristiche.
- Specifica il nome della colonna nei dati di origine che contiene gli ID entità.
- Per il timestamp, specifica una colonna timestamp nei tuoi dati di origine o un singolo timestamp associato a tutti i valori delle caratteristiche che importi.
- Nell'elenco delle caratteristiche, inserisci il nome della colonna dei dati di origine che viene mappata a ogni caratteristica. Per impostazione predefinita, Vertex AI Feature Store (legacy) presuppone che il nome della caratteristica e il nome della colonna corrispondano.
- Fai clic su Importa.
REST
Per importare i valori delle caratteristiche esistenti, invia una richiesta POST utilizzando il
featurestores.entityTypes.importFeatureValues. Tieni presente che, se i nomi delle colonne dei dati di origine e gli ID delle caratteristiche di destinazione sono diversi, includi il parametro sourceField.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: regione in cui viene creato l'archivio di caratteristiche. Ad esempio,
us-central1. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID dell'archivio di caratteristiche.
- ENTITY_TYPE_ID: ID del tipo di entità.
- ENTITY_SOURCE_COLUMN_ID: ID della colonna di origine che contiene gli ID entità.
- FEATURE_TIME_ID: ID della colonna di origine che contiene i timestamp delle caratteristiche per i valori delle caratteristiche.
- FEATURE_ID: ID di una caratteristica esistente nell'archivio di caratteristiche per cui importare i valori.
- FEATURE_SOURCE_COLUMN_ID: ID della colonna di origine che contiene i valori delle caratteristiche per le entità.
- SOURCE_DATA_DETAILS: la posizione dei dati di origine, che indica anche il formato, ad esempio
"bigquerySource": { "inputUri": "bq://test.dataset.sourcetable" }per una tabella BigQuery o una vista BigQuery. - WORKER_COUNT: il numero di worker da utilizzare per scrivere i dati nell'archivio di caratteristiche.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:importFeatureValues
Corpo JSON della richiesta:
{
"entityIdField": "ENTITY_SOURCE_COLUMN_ID",
"featureTimeField": "FEATURE_TIME_ID",
SOURCE_DATA_DETAILS,
"featureSpecs": [{
"id": "FEATURE_ID",
"sourceField": "FEATURE_SOURCE_COLUMN_ID"
}],
"workerCount": WORKER_COUNT
}
Per inviare la richiesta, scegli una di queste 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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:importFeatureValues"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
e 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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:importFeatureValues" | Select-Object -Expand Content
Dovresti vedere un output simile al seguente. Puoi utilizzare the OPERATION_ID nella risposta per ottenere lo stato dell'operazione.
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.ImportFeatureValuesOperationMetadata",
"genericMetadata": {
"createTime": "2021-03-02T00:04:13.039166Z",
"updateTime": "2021-03-02T00:04:13.039166Z"
}
}
}
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'Java API di Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'Node.js API di Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Visualizzare i job di importazione
Utilizza la Google Cloud console per visualizzare i job di importazione in batch in un Google Cloud progetto.
UI web
- Nella sezione Vertex AI della Google Cloud console, vai a la pagina Caratteristiche.
- Seleziona una regione dall'elenco a discesa Regione.
- Dalla barra delle azioni, fai clic su Visualizza job di importazione per elencare i job di importazione per tutti gli archivi di caratteristiche.
- Fai clic sull'ID di un job di importazione per visualizzarne i dettagli, ad esempio l'origine dati, il numero di entità di importazione e il numero di valori delle caratteristiche importati.
Sovrascrivere i dati esistenti in un archivio di caratteristiche
Puoi reimportare i valori per sovrascrivere i valori delle caratteristiche esistenti se entrambi hanno gli stessi timestamp. Non è necessario eliminare prima i valori delle caratteristiche esistenti. Ad esempio, potresti fare affidamento su dati di origine sottostanti che sono stati modificati di recente. Per mantenere l'archivio di caratteristiche coerente con i dati sottostanti, importa di nuovo i valori delle caratteristiche. Se i timestamp non corrispondono, i valori importati vengono considerati univoci e i valori precedenti continuano a esistere (non vengono sovrascritti).
Per garantire la coerenza tra le richieste di pubblicazione online e in batch, attendi il completamento del job di importazione prima di inviare qualsiasi richiesta di pubblicazione.
Eseguire backfill dei dati storici
Se stai eseguendo il backfill dei dati, ovvero importando i valori delle caratteristiche passate, disattiva l'erogazione online per il job di importazione. L'erogazione online è destinata solo all'erogazione degli ultimi valori delle caratteristiche, che non sono inclusi nel backfill. La disattivazione dell'erogazione online è utile perché elimina qualsiasi carico sui nodi di erogazione online e aumenta il throughput per il job di importazione, il che può ridurre il tempo di completamento.
Puoi disattivare l'erogazione online per i job di importazione quando utilizzi l'API o le librerie client. Per saperne di più, consulta il disableOnlineServing campo per il
metodo importFeatureValue.
Passaggi successivi
- Scopri come erogare le caratteristiche tramite l'erogazione online o l'erogazione batch.
- Scopri come monitorare i valori delle caratteristiche importate nel tempo.
- Visualizza la quota di job batch simultanei di Vertex AI Feature Store (legacy).
- Risolvi i problemi comuni di Vertex AI Feature Store (legacy).