Vertex AI Feature Store ti consente di pubblicare online i valori delle caratteristiche in tempo reale da una vista delle caratteristiche all'interno di un negozio online. Ad esempio, puoi erogare i valori delle caratteristiche da una vista delle caratteristiche per le previsioni online. Una vista delle caratteristiche deve essere sincronizzata almeno una volta prima di poter pubblicare online le caratteristiche.
Se la visualizzazione delle caratteristiche è definita in base a gruppi di caratteristiche e caratteristiche,
Vertex AI Feature Store recupera i valori delle caratteristiche più recenti corrispondenti a
un ID entità specifico. Se sono presenti più record con lo stesso valore nella
colonna ID, Vertex AI Feature Store recupera i valori delle caratteristiche non nulli
più recenti, in base alla colonna feature_timestamp.
Se la visualizzazione delle caratteristiche è associata direttamente a un'origine dati BigQuery senza associare gruppi di caratteristiche e caratteristiche, Vertex AI Feature Store recupera tutti i valori delle caratteristiche dall'origine dati. In questo caso, ogni riga dell'origine dati deve contenere un ID univoco.
A seconda del tipo di erogazione online configurato per il tuo negozio online, puoi erogare i valori delle funzionalità in uno dei seguenti modi:
Recupera i valori delle caratteristiche utilizzando l'erogazione online tramite Bigtable: scegli questa opzione solo se l'archivio online è configurato per l'erogazione online tramite Bigtable.
Recupera i valori delle caratteristiche utilizzando l'erogazione online ottimizzata (deprecata) con un endpoint pubblico: scegli questa opzione solo se il negozio online è configurato per l' erogazione online ottimizzata (deprecata) da un endpoint pubblico.
Recupera i valori delle funzionalità utilizzando l'erogazione online ottimizzata (deprecato) con un endpoint Private Service Connect: Scegli questa opzione solo se lo store online è configurato per l'erogazione online ottimizzata (deprecato) da un endpoint di pubblicazione dedicato tramite Private Service Connect.
Prima di iniziare
Autenticati in Gemini Enterprise Agent Platform, a meno che tu non l'abbia già fatto.
Seleziona la scheda relativa a come prevedi di utilizzare i campioni in questa pagina:
Python
Per utilizzare gli esempi di Python in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Recuperare i valori delle caratteristiche utilizzando l'erogazione online di Bigtable
Puoi utilizzare l'erogazione online di Bigtable per:
Recuperare i valori delle funzionalità specificando un singolo ID entità
Recuperare i valori delle caratteristiche per un insieme di entità (anteprima)
Recuperare i valori delle caratteristiche per una singola entità
Se la vista delle caratteristiche ha una sola colonna ID entità, puoi erogare le caratteristiche specificando il valore contenuto in quella colonna. Tuttavia, se la visualizzazione delle funzionalità ha più colonne ID entità, puoi individuare un record della funzionalità specificando i valori in queste colonne per costituire l'ID entità univoco per il record della funzionalità.
Recuperare i valori delle caratteristiche da una visualizzazione delle caratteristiche con una sola colonna ID entità
Utilizza gli esempi seguenti per recuperare i valori delle caratteristiche per un ID entità specifico, in cui la visualizzazione delle caratteristiche ha una sola colonna ID entità.
REST
Per recuperare tutti i valori delle caratteristiche più recenti per un ID entità specifico da un'istanza FeatureView, invia una richiesta POST utilizzando il metodo featureViews.fetchFeatureValues.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1. - PROJECT_ID: il tuo ID progetto.
- FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
- FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
- ENTITY_ID: il valore della colonna ID nel record della caratteristica da cui vuoi pubblicare i valori più recenti.
- FORMAT: (facoltativo) il formato in cui vuoi recuperare i valori delle funzionalità.
Sono supportati i seguenti formati:
KEY_VALUEPROTO_STRUCT
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues
Corpo JSON della richiesta:
{
data_key: { key: "ENTITY_ID" },
data_format: "FORMAT"
}
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/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"
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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
key_values {
features {
value {
int64_value: 258348
}
name: "feature_0"
}
features {
value {
double_value: 0.96300036744534068
}
name: "feature_1"
}
features {
value {
double_value: 0.42787383695351083
}
name: "feature_2"
}
features {
value {
double_value: 0.12219888824743128
}
name: "feature_3"
}
features {
value {
double_value: 0.037523154697944622
}
name: "feature_4"
}
features {
value {
double_value: 0.1766952509448767
}
name: "feature_5"
}
}
Python
Utilizza il seguente esempio per recuperare i valori delle funzionalità in base a un ID entità specifico utilizzando Bigtable online serving.
from google.cloud import aiplatform
from vertexai.resources.preview.feature_store import FeatureOnlineStore, FeatureView
aiplatform.init(project="PROJECT_ID", location="LOCATION_ID")
fos = FeatureOnlineStore("FEATUREONLINESTORE_NAME")
fv = FeatureView("FEATUREVIEW_NAME", feature_online_store_id=fos.name)
fv.read("ENTITY_ID")
Sostituisci quanto segue:
LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1.PROJECT_ID: il tuo ID progetto.
FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
ENTITY_ID: il valore della colonna ID per cui vuoi erogare gli ultimi valori delle caratteristiche.
FORMAT: (facoltativo) il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono JSON
KEY_VALUEe protoPROTO_STRUCT.
Recuperare i valori delle caratteristiche da una vista delle caratteristiche con più colonne ID entità
Utilizza i seguenti esempi per recuperare i valori delle caratteristiche per un ID entità specifico, in cui la visualizzazione delle caratteristiche ha più colonne ID entità.
REST
Per recuperare tutti i valori delle caratteristiche più recenti per un ID entità specifico da un'istanza FeatureView, invia una richiesta POST utilizzando il metodo featureViews.fetchFeatureValues.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1. - PROJECT_ID: il tuo ID progetto.
- FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
- FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
- ENTITY_ID_PART_1, ENTITY_ID_PART_2 e ENTITY_ID_PART_3: le parti dell'ID entità nelle colonne ID entità configurate per la visualizzazione delle funzionalità. Queste parti costituiscono l'ID entità univoco per il record della funzionalità.
- FORMAT: (facoltativo) il formato in cui vuoi recuperare i valori delle funzionalità.
Sono supportati i seguenti formati:
KEY_VALUEPROTO_STRUCT
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues
Corpo JSON della richiesta:
{
data_key: { composite_key: { parts: ["ENTITY_ID_PART_1", "ENTITY_ID_PART_2", "ENTITY_ID_PART_3"] } },
data_format: "FORMAT"
}
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/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"
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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
key_values {
features {
value {
int64_value: 258348
}
name: "feature_0"
}
features {
value {
double_value: 0.96300036744534068
}
name: "feature_1"
}
features {
value {
double_value: 0.42787383695351083
}
name: "feature_2"
}
features {
value {
double_value: 0.12219888824743128
}
name: "feature_3"
}
features {
value {
double_value: 0.037523154697944622
}
name: "feature_4"
}
features {
value {
double_value: 0.1766952509448767
}
name: "feature_5"
}
}
Python
Utilizza il seguente esempio per recuperare i valori delle funzionalità in base a un ID entità specifico utilizzando Bigtable online serving.
from google.cloud import aiplatform
from vertexai.resources.preview.feature_store import FeatureOnlineStore, FeatureView
aiplatform.init(project="PROJECT_ID", location="LOCATION_ID")
fos = FeatureOnlineStore("FEATUREONLINESTORE_NAME")
fv = FeatureView("FEATUREVIEW_NAME", feature_online_store_id=fos.name)
fv.read(["ENTITY_ID_PART_1", "ENTITY_ID_PART_2", "ENTITY_ID_PART_3"])
Sostituisci quanto segue:
LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1.PROJECT_ID: il tuo ID progetto.
FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
ENTITY_ID_PART_1, ENTITY_ID_PART_2 e ENTITY_ID_PART_3: le parti dell'ID entità nelle colonne ID entità configurate per la visualizzazione delle funzionalità. Queste parti costituiscono l'ID entità univoco per il record della funzionalità.
FORMAT: (facoltativo) il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono JSON
KEY_VALUEe protoPROTO_STRUCT.
Recuperare i valori delle caratteristiche per un insieme di entità
Utilizza il seguente esempio per recuperare i valori delle funzionalità specificando un insieme di ID da più colonne di ID entità utilizzando Bigtable per l'erogazione online.
REST
Per recuperare tutti i valori delle funzionalità più recenti per un ID entità specifico da un'istanza
FeatureView,
invia una richiesta POST utilizzando il
metodo
featureViews.streamingFetchFeatureValues.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1. - PROJECT_ID: il tuo ID progetto.
- FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
- FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
- ENTITY_ID_1, ENTITY_ID_2, ENTITY_ID_3 e ENTITY_ID_4: Il set di valori delle colonne ID nei record delle funzionalità da cui vuoi erogare i valori più recenti delle funzionalità. Tieni presente che il raggruppamento degli ID entità come più elenchi nidificati in una richiesta può contribuire a ridurre la latenza, in quanto Vertex AI Feature Store esegue un'operazione di lettura separata per ogni elenco nidificato di ID.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues
Corpo JSON della richiesta:
[
{
data_keys: [{key: "ENTITY_ID_1"}, {key: "ENTITY_ID_2"}],
feature_view: "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
},
{
data_keys: [{key: "ENTITY_ID_3"}, {key: "ENTITY_ID_4"}],
feature_view: "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
}
]
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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues"
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_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
[data {
key_values {
features {
name: "movies"
value {
string_value: "movie_04"
}
}
features {
name: "feature_timestamp"
value {
int64_value: 1631694494000000
}
}
}
data_key {
key: "eve"
}
}
, data {
key_values {
features {
name: "movies"
value {
string_value: "movie_03"
}
}
features {
name: "feature_timestamp"
value {
int64_value: 1631612115000000
}
}
}
data_key {
key: "alice"
}
}
data {
key_values {
features {
name: "movies"
value {
string_value: "movie_02"
}
}
features {
name: "feature_timestamp"
value {
int64_value: 1631694494000000
}
}
}
data_key {
key: "bob"
}
}
]
Python
Utilizza il seguente esempio per recuperare i valori delle caratteristiche da più colonne di ID entità utilizzando l'erogazione online di Bigtable.
from google.cloud.aiplatform_v1beta1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1beta1.types import feature_online_store_service as feature_online_store_service_pb2
data_client = FeatureOnlineStoreServiceClient(
client_options={"api_endpoint": f"LOCATION_ID-aiplatform.googleapis.com"}
)
feature_view = "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
keys_list=[
["ENTITY_ID_1","ENTITY_ID_2"],
["ENTITY_ID_3","ENTITY_ID_4"]
]
requests = []
for keys in keys_list:
requests.append(
feature_online_store_service_pb2.StreamingFetchFeatureValuesRequest(
feature_view=feature_view,
data_keys=[
feature_online_store_service_pb2.FeatureViewDataKey(key=key)
for key in keys
]
)
)
responses = data_client.streaming_fetch_feature_values(
requests=iter(requests)
)
responses = [response for response in responses]
Sostituisci quanto segue:
LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1.PROJECT_ID: il tuo ID progetto.
FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
ENTITY_ID_1, ENTITY_ID_2, ENTITY_ID_3 e ENTITY_ID_4: gli ID entità da cui vuoi erogare i valori delle funzionalità più recenti. Tieni presente che il raggruppamento degli ID entità come più elenchi nidificati in una richiesta può contribuire a ridurre la latenza, in quanto Vertex AI Feature Store esegue un'operazione di lettura separata per ogni elenco nidificato di ID.
Recupera i valori delle caratteristiche utilizzando l'erogazione online ottimizzata da un endpoint pubblico
Se hai configurato l'istanza dell'archivio online per erogare i valori delle caratteristiche utilizzando l'erogazione online ottimizzata da un endpoint pubblico, devi eseguire i seguenti passaggi per recuperare i valori delle caratteristiche da una vista delle caratteristiche all'interno dell'archivio online:
Recupera il nome di dominio dell'endpoint pubblico per il negozio online
Quando crei e configuri un'istanza di archivio online per l'erogazione online ottimizzata con un endpoint pubblico, Vertex AI Feature Store genera il nome di dominio dell'endpoint pubblico per l'archivio online. Prima di poter iniziare a pubblicare i valori delle caratteristiche da una vista delle caratteristiche nell'archivio online, devi recuperare il nome di dominio dell'endpoint pubblico dai dettagli dell'archivio online.
Utilizza il seguente esempio per recuperare i dettagli di un'istanza di negozio online.
REST
Per recuperare i dettagli di una risorsa FeatureOnlineStore nel tuo progetto, invia una richiesta GET utilizzando il metodo featureOnlineStores.get.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1. - PROJECT_ID: il tuo ID progetto.
- FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online.
Metodo HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
"createTime": "2023-09-06T23:25:04.256314Z",
"updateTime": "2023-09-06T23:25:04.256314Z",
"etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
"state": "STABLE",
"dedicatedServingEndpoint": {
"publicEndpointDomainName": "PUBLIC_ENDPOINT_DOMAIN_NAME"
},
"optimized": {}
}
Avrai bisogno di PUBLIC_ENDPOINT_DOMAIN_NAME dalla risposta per recuperare i valori delle funzionalità nel passaggio successivo.
Recuperare i valori delle funzionalità da un ID entità
Dopo aver recuperato il nome di dominio dell'endpoint pubblico per l'istanza del negozio online, utilizza il seguente esempio per recuperare i valori delle funzionalità per un ID entità specifico utilizzando l'erogazione online ottimizzata.
REST
Per recuperare tutti i valori delle funzionalità più recenti per un ID entità specifico da un'istanza
FeatureView,
invia una richiesta POST utilizzando il
metodo
featureViews.fetchFeatureValues.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PUBLIC_ENDPOINT_DOMAIN_NAME: il nome di dominio dell'endpoint pubblico per l'istanza del negozio online recuperata utilizzando il metodo
featureOnlineStores.get. - LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1. - PROJECT_ID: il tuo ID progetto.
- FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
- FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
- ENTITY_ID: il valore della colonna ID nel record della caratteristica da cui vuoi pubblicare i valori più recenti.
- FORMAT: (facoltativo) il formato utilizzato per recuperare i valori delle funzionalità.
Sono supportati i seguenti formati:
KEY_VALUEPROTO_STRUCT
Metodo HTTP e URL:
POST https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues
Corpo JSON della richiesta:
{
data_key: { key: "ENTITY_ID" },
data_format: "FORMAT"
}
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://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"
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://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
key_values {
features {
value {
int64_value: 258348
}
name: "feature_0"
}
features {
value {
double_value: 0.96300036744534068
}
name: "feature_1"
}
features {
value {
double_value: 0.42787383695351083
}
name: "feature_2"
}
features {
value {
double_value: 0.12219888824743128
}
name: "feature_3"
}
features {
value {
double_value: 0.037523154697944622
}
name: "feature_4"
}
features {
value {
double_value: 0.1766952509448767
}
name: "feature_5"
}
}
Python
Utilizza il seguente esempio per recuperare i valori delle funzionalità in base a un ID entità specifico utilizzando l'erogazione online ottimizzata.
from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.types import feature_online_store_service as feature_online_store_service_pb2
data_client = FeatureOnlineStoreServiceClient(
client_options={"api_endpoint": f"PUBLIC_ENDPOINT_DOMAIN_NAME"}
)
data_client.fetch_feature_values(
request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
data_key=feature_online_store_service_pb2.FeatureViewDataKey(key=f"ENTITY_ID"),
data_format=feature_online_store_service_pb2.FeatureViewDataFormat.FORMAT,
)
)
Sostituisci quanto segue:
PUBLIC_ENDPOINT_DOMAIN_NAME: il nome di dominio dell'endpoint pubblico per l'istanza del negozio online recuperata utilizzando il metodo
featureOnlineStores.get.LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1.PROJECT_ID: il tuo ID progetto.
FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
ENTITY_ID: il valore della colonna ID nel record della caratteristica da cui vuoi pubblicare i valori più recenti.
FORMAT: (facoltativo) il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono JSON
KEY_VALUEe protoPROTO_STRUCT.
Recupera i valori delle caratteristiche utilizzando l'erogazione online ottimizzata da un endpoint Private Service Connect
Se hai configurato l'istanza dell'archivio online per erogare i valori delle caratteristiche utilizzando l'erogazione online ottimizzata da un endpoint Private Service Connect, devi eseguire i seguenti passaggi per recuperare i valori delle caratteristiche da una vista delle caratteristiche all'interno dell'archivio online:
Recupera la configurazione di Private Service Connect per l'istanza
FeatureOnlineStore.Aggiungi un endpoint per Private Service Connect alla configurazione di rete.
Connettiti all'endpoint Private Service Connect tramite gRPC.
Recuperare la stringa del collegamento al servizio per il negozio online
Quando crei e configuri un'istanza di negozio online per l'erogazione online ottimizzata con un endpoint Private Service Connect, Vertex AI Feature Store genera una stringa di collegamento al servizio che puoi utilizzare per configurare l'endpoint Private Service Connect. Puoi recuperare la stringa dell'allegato di servizio dai dettagli del negozio online.
Utilizza il seguente esempio per recuperare i dettagli di un'istanza di negozio online.
REST
Per recuperare i dettagli di una risorsa FeatureOnlineStore nel tuo progetto, invia una richiesta GET utilizzando il metodo featureOnlineStores.get.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1. - PROJECT_ID: il tuo ID progetto.
- FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online.
Metodo HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
"createTime": "2023-09-06T23:25:04.256314Z",
"updateTime": "2023-09-06T23:25:04.256314Z",
"etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
"state": "STABLE",
"dedicatedServingEndpoint": {
"privateServiceConnectConfig": {
"enablePrivateServiceConnect": "true",
"projectAllowlist": [
"PROJECT_NAME"
]
},
serviceAttachment: "SERVICE_ATTACHMENT_STRING"
},
"optimized": {}
}
Avrai bisogno di SERVICE_ATTACHMENT_STRING dalla risposta per recuperare i valori delle funzionalità nel passaggio successivo.
Aggiungi un endpoint per Private Service Connect
Per aggiungere un endpoint Private Service Connect per l'erogazione online ottimizzata alla configurazione di rete, svolgi i seguenti passaggi:
Nella console Google Cloud , seleziona il progetto contenente l'istanza del negozio online.
Crea un endpoint per Private Service Connect specificando SERVICE_ATTACHMENT_STRING come servizio di destinazione. Per informazioni su come creare un endpoint per Private Service Connect, consulta Creare un endpoint.
Dopo aver creato l'endpoint, questo viene visualizzato nella scheda Endpoint connessi della pagina Private Service Connect. L'indirizzo IP dell'endpoint viene visualizzato nella colonna Indirizzi IP.
Vai alla scheda Endpoint connessi
Dovrai utilizzare questo indirizzo IP per connetterti all'endpoint per la tua istanza del negozio online all'endpoint Private Service Connect tramite gRPC nel passaggio successivo.
Connettiti all'endpoint Private Service Connect tramite gRPC
Utilizza il seguente esempio di codice per connetterti all'endpoint Private Service Connect creato per il tuo negozio online tramite gRPC.
Python
from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.services.feature_online_store_service.transports.grpc import FeatureOnlineStoreServiceGrpcTransport
import grpc
data_client = FeatureOnlineStoreServiceClient(
transport = FeatureOnlineStoreServiceGrpcTransport(
# Add the IP address of the Endpoint you just created.
channel = grpc.insecure_channel("ENDPOINT_IP:10002")
)
)
Sostituisci quanto segue:
- ENDPOINT_IP: l'indirizzo IP dell'endpoint nella colonna Indirizzi IP della pagina Private Service Connect.
Recuperare i valori delle funzionalità da un ID entità
Dopo aver eseguito la connessione all'endpoint Private Service Connect tramite gRPC, utilizza il seguente esempio per recuperare i valori delle funzionalità per un ID entità specifico utilizzando l'erogazione online ottimizzata.
Python
data_client.fetch_feature_values(
request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
data_key=feature_online_store_service_pb2.FeatureViewDataKey(ENTITY_ID),
data_format=feature_online_store_service_pb2.FeatureViewDataFormat.PROTO_STRUCT,
)
)
Sostituisci quanto segue:
LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1.PROJECT_ID: il tuo ID progetto.
FEATUREONLINESTORE_NAME: il nome del negozio online contenente la visualizzazione delle funzionalità.
FEATUREVIEW_NAME: Il nome della vista delle funzionalità da cui vuoi pubblicare i valori delle funzionalità.
ENTITY_ID: il valore della colonna ID nel record della caratteristica da cui vuoi pubblicare i valori più recenti.
FORMAT: (facoltativo) il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono la coppia chiave-valore JSON e i formati proto
Struct. Tieni presente che il formato protoStructnon supporta il tipo di valore della funzionalità byte. Se vuoi recuperare valori delle funzionalità formattati come byte, utilizza JSON come formato di risposta.
Passaggi successivi
Scopri come sincronizzare i dati per una visualizzazione delle funzionalità.
Scopri come aggiornare un negozio online.