Crea un'istanza di visualizzazione caratteristiche

Puoi creare una visualizzazione delle caratteristiche all'interno di un'istanza del negozio online esistente. Durante la creazione di una visualizzazione elemento, puoi associare elementi nei seguenti modi:

  • Aggiungi gruppi di funzionalità e funzionalità dal Registro di caratteristiche: associali ai gruppi di funzionalità e alle funzionalità esistenti del Registro di caratteristiche. Una caratteristica specifica la località dell'origine dati BigQuery. Una caratteristica all'interno del gruppo di caratteristiche rimanda a una colonna di caratteristiche specifica all'interno di quei dati sorgente. Puoi associare una visualizzazione delle caratteristiche a più gruppi di caratteristiche.

  • Aggiungi elementi da un'origine BigQuery: associa direttamente un'origine dati BigQuery, ad esempio una tabella o una vista BigQuery, e specifica almeno una colonna ID entità.

Dopo aver creato una vista delle funzionalità, Vertex AI Feature Store sincronizza i valori delle funzionalità più recenti dall'origine dati BigQuery. Se imposti il parametro di query run_sync_immediately=true, Vertex AI Feature Store sincronizza i valori delle funzionalità quando crei la vista delle funzionalità. In caso contrario, Vertex AI Feature Store sincronizza i valori delle funzionalità in base alla programmazione della sincronizzazione specificata per la visualizzazione delle funzionalità.

Prima di iniziare

Esegui l'autenticazione su Vertex AI, se non l'hai ancora fatto.

Select the tab for how you plan to use the samples on this page:

Console

When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

Python

Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia alla gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

Per ulteriori informazioni, consulta Set up authentication for a local development environment.

REST

Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

Per saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Sincronizzare i dati delle caratteristiche in una visualizzazione delle caratteristiche

Vertex AI Feature Store può aggiornare o sincronizzare i valori delle caratteristiche dal dall'origine dati BigQuery alla visualizzazione caratteristiche. Puoi specificare il tipo la sincronizzazione dei dati per una visualizzazione caratteristiche utilizzando FeatureView.sync_config .

Vertex AI Feature Store supporta i seguenti tipi di sincronizzazione dei dati:

  • Sincronizzazione dei dati pianificata: puoi specificare la pianificazione o la frequenza della sincronizzazione dei dati. Puoi scegliere questa sincronizzazione dei dati pianificata per una visualizzazione delle funzionalità, indipendentemente dal tipo di pubblicazione online specificato per l'istanza del negozio online.

    Se la visualizzazione caratteristiche è configurata per utilizzare la sincronizzazione dei dati pianificata, puoi: Facoltativamente, puoi saltare l'attesa fino alla successiva operazione di sincronizzazione pianificata, avviare la sincronizzazione dei dati. Per ulteriori informazioni sull'attivazione manuale di una sincronizzazione dei dati, consulta Sincronizzare i dati delle funzionalità con il negozio online.

  • Sincronizzazione dei dati continua. I dati dell'elemento vengono aggiornati ogni volta che viene aggiornati nell'origine dati BigQuery. Puoi scegliere questo tipo della sincronizzazione dei dati per una visualizzazione caratteristiche solo se vengono soddisfatte tutte le seguenti condizioni:

    • L'istanza del negozio online è configurata per la pubblicazione online tramite Bigtable.

    • La visualizzazione delle caratteristiche è associata a gruppi di caratteristiche e risorse delle caratteristiche.

    • L'origine dati BigQuery si trova in una delle seguenti località: regioni:

      • eu

      • us

      • us-central1

    La sincronizzazione continua dei dati presenta le seguenti limitazioni:

    • Non puoi aggiornare una visualizzazione delle caratteristiche se selezioni la sincronizzazione dei dati continua.

    • Solo i nuovi record delle caratteristiche vengono sincronizzati da BigQuery origine dati. La sincronizzazione continua dei dati non sincronizza i record delle funzionalità aggiornati o eliminati in BigQuery.

Durante la pubblicazione online, se vuoi pubblicare solo gli ultimi valori delle caratteristiche, inclusi i valori null, devi utilizzare la seguente configurazione:

  1. Registra l'origine dati delle funzionalità creando un gruppo di funzionalità con il parametro dense impostato su true.

  2. Scegli la distribuzione online tramite Bigtable quando crei l'istanza del negozio online.

  3. Utilizza il parametro cron per configurare la sincronizzazione dei dati pianificata quando crei le visualizzazioni delle funzionalità.

Se utilizzi un'altra configurazione durante l'impostazione dell'origine dati delle caratteristiche e la pubblicazione online, Vertex AI Feature Store gestisce solo gli ultimi valori delle caratteristiche non nulli. Se l'ultimo valore di una caratteristica è nullo, Vertex AI Feature Store gestisce lo storico non null più recente per la caratteristica. Se non è disponibile un valore storico diverso da null, Vertex AI Feature Store fornisce un valore nullo come valore della caratteristica.

Ottimizzare i costi durante la sincronizzazione dei dati pianificata

Un'operazione di sincronizzazione dei dati potrebbe comportare dei costi per l'utilizzo delle risorse BigQuery. Segui queste linee guida per ottimizzare questi costi e migliorare le prestazioni durante sincronizzazione:

  • Non configurare la pianificazione della sincronizzazione in modo che venga eseguita più di frequente rispetto alla frequenza con cui i dati dovrebbero cambiare nell'origine BigQuery.

  • Ottimizza le dimensioni dell'origine dati delle funzionalità in BigQuery. Durante la creazione della visualizzazione delle funzionalità, includi solo i dati necessari per la pubblicazione online.

  • Evita di eseguire aggregazioni complesse in BigQuery. Esegui una SELECT * query sulla tabella o sulla vista per stimare il volume e la durata dell'elaborazione dei dati.

  • Durante l'impostazione delle opzioni di scalabilità per il negozio online, imposta max_node_count su un valore sufficientemente elevato da coprire carichi elevati durante una sincronizzazione dei dati.

  • Pianifica la sincronizzazione per visualizzazioni delle funzionalità diverse in momenti diversi all'interno dello stesso negozio online.

  • Se la tabella BigQuery contiene dati storici estesi, valuta la possibilità di partizionare la tabella utilizzando i timestamp e specifica un intervallo di tempo per retrieving i dati delle funzionalità. Questo riduce al minimo il recupero di funzionalità obsolete durante la sincronizzazione.

  • L'utilizzo di Bigtable aumenta durante le sincronizzazioni dei dati. Per la visualizzazione delle caratteristiche creati all'interno di archivi online per la distribuzione online di Bigtable, pianifica job di sincronizzazione durante i periodi non di punta per ottenere prestazioni ottimali.

Configurare l'account di servizio per una visualizzazione delle funzionalità

Ogni vista elemento utilizza un account di servizio per accedere ai dati di origine in BigQuery durante la sincronizzazione. Vertex AI Feature Store assegna il ruolo Data Viewer di BigQuery Identity and Access Management (IAM) a questo account di servizio.

Per impostazione predefinita, una visualizzazione delle funzionalità utilizza l'account di servizio configurato per il progetto. Con questa configurazione, qualsiasi utente con l'autorizzazione per creare una visualizzazione delle caratteristiche in il progetto possa accedere ai dati delle caratteristiche in BigQuery.

In alternativa, puoi configurare la visualizzazione delle funzionalità in modo che utilizzi il proprio account di servizio. Vertex AI Feature Store configura quindi un account servizio dedicato per la visualizzazione delle funzionalità. Con questa configurazione, puoi limitare l'accesso ai dati delle funzionalità in BigQuery o concedere l'accesso ad altri utenti. Puoi specificare la configurazione dell'account di servizio utilizzando il parametro FeatureView.service_agent_type.

Configurare il recupero di vettori per una visualizzazione elemento

Puoi configurare il recupero dei vettori per una vista elemento all'interno di un negozio online creato per la pubblicazione online ottimizzata utilizzando il parametro FeatureView.index_config. Per informazioni su come preparare o aggiornare l'origine dati BigQuery per supportare gli incorporamenti includendo la colonna embedding, consulta le linee guida sulla preparazione dell'origine dati.

Tieni presente che puoi configurare il recupero dei vettori e gestire gli embedding solo se la vista delle funzionalità viene creata specificando un URI di origine BigQuery e non da gruppi di funzionalità e funzionalità del Registry delle funzionalità.

Per ulteriori informazioni su come cercare i vicini più prossimi approssimati utilizzando incorporamenti in Vertex AI Feature Store, vedi Effettua ricerche utilizzando gli incorporamenti.

Creare una visualizzazione delle caratteristiche dai gruppi di caratteristiche

Puoi creare una visualizzazione delle funzionalità in base ai dati delle funzionalità registrati utilizzando gruppi di funzionalità e funzionalità. Per associare più origini dati BigQuery con la stessa visualizzazione delle caratteristiche, puoi specificare più gruppi di caratteristiche.

Se crei una visualizzazione delle caratteristiche specificando gruppi di caratteristiche e caratteristiche:

  • L'origine dati deve avere una colonna feature_timestamp e può contenere dati storici.

  • Vertex AI Feature Store pubblica solo i valori più recenti delle funzionalità in base al timestamp della funzionalità.

  • Non puoi configurare la gestione dell'incorporamento per la visualizzazione caratteristiche.

Crea una visualizzazione caratteristiche con la configurazione predefinita dell'account di servizio

Utilizza il seguente esempio per creare una visualizzazione delle funzionalità associando più gruppi di funzionalità senza specificare una configurazione dell'account di servizio.

REST

Per creare una FeatureView Risorsa, invia una richiesta POST utilizzando featureViews.create .

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

  • LOCATION_ID: regione in cui vuoi creare la visualizzazione delle caratteristiche, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online in cui vuoi creare la visualizzazione caratteristiche.
  • FEATUREVIEW_NAME: il nome della nuova istanza di visualizzazione caratteristiche che vuoi creare.
  • FEATUREGROUP_NAME_A e FEATUREGROUP_NAME_B: i nomi dei gruppi di funzionalità da cui vuoi aggiungere funzionalità alla visualizzazione delle funzionalità.
  • FEATURE_ID_A1 e FEATURE_ID_A2: ID caratteristica del gruppo di caratteristiche FEATUREGROUP_NAME_A che vuoi aggiungere alla visualizzazione delle caratteristiche.
  • FEATURE_ID_B1 e FEATURE_ID_B2: ID caratteristica del gruppo di caratteristiche FEATUREGROUP_NAME_B che vuoi aggiungere alla visualizzazione delle caratteristiche.
  • SYNC_CONFIG: inserisci una delle seguenti configurazioni di sincronizzazione per la visualizzazione caratteristiche:
    • Per utilizzare la sincronizzazione dei dati pianificata, fornisci la pianificazione della sincronizzazione nel seguente formato:
      "cron": "cron_schedule_expression"
      Sostituisci "cron_schedule_expression" con l'espressione di pianificazione cron che rappresenta il frequenza di sincronizzazione dei dati con la visualizzazione caratteristiche. Per ulteriori informazioni, vedi cron.
    • Per utilizzare la sincronizzazione continua dei dati, inserisci quanto segue:
      "continuous": true Puoi utilizzare la sincronizzazione continua dei dati solo se l'istanza del negozio online contenente la visualizzazione della funzionalità è configurata per il servizio online Bigtable.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Corpo JSON della richiesta:

{
  "feature_registry_source": {
    "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME_A",
        "feature_ids": [ "FEATURE_ID_A1", "FEATURE_ID_A2" ]
      },
      {
        "feature_group_id": "FEATUREGROUP_NAME_B",
        "feature_ids": [ "FEATURE_ID_B1", "FEATURE_ID_B2" ]
      }
    ]
  },
  "sync_config": {
    SYNC_CONFIG
  }
}

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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Creare una visualizzazione delle funzionalità specificando una configurazione dell'account di servizio

Utilizza l'esempio seguente per creare una visualizzazione caratteristiche dai gruppi di caratteristiche per che specifica la configurazione di un account di servizio.

REST

Per creare una FeatureView Risorsa, invia una richiesta POST utilizzando featureViews.create .

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

  • LOCATION_ID: regione in cui vuoi creare la visualizzazione delle caratteristiche, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online in cui vuoi creare la visualizzazione caratteristiche.
  • FEATUREVIEW_NAME: il nome della nuova istanza di visualizzazione caratteristiche che vuoi creare.
  • FEATUREGROUP_NAME_A e FEATUREGROUP_NAME_B: i nomi dei gruppi di funzionalità da cui vuoi aggiungere funzionalità alla visualizzazione delle funzionalità.
  • FEATURE_ID_A1 e FEATURE_ID_A2: ID caratteristica del gruppo di caratteristiche FEATUREGROUP_NAME_A che vuoi aggiungere alla visualizzazione delle caratteristiche.
  • FEATURE_ID_B1 e FEATURE_ID_B2: ID caratteristica del gruppo di caratteristiche FEATUREGROUP_NAME_B che vuoi aggiungere alla visualizzazione delle caratteristiche.
  • SYNC_CONFIG: inserisci una delle seguenti configurazioni di sincronizzazione per la visualizzazione caratteristiche:
    • Per utilizzare la sincronizzazione dei dati pianificata, specifica la pianificazione della sincronizzazione nel seguente formato:
      "cron": "cron_schedule_expression"
      Sostituisci "cron_schedule_expression" con l'espressione di pianificazione cron che rappresenta la frequenza di sincronizzazione dei dati con la visualizzazione delle funzionalità. Per ulteriori informazioni, vedi cron.
    • Per utilizzare la sincronizzazione dei dati continua, inserisci quanto segue:
      "continuous": true Puoi utilizzare la sincronizzazione continua dei dati solo se l'istanza dell'archivio online contenente la funzionalità è configurata per la pubblicazione online tramite Bigtable.
  • SERVICE_AGENT_TYPE: facoltativo: configurazione dell'account di servizio per la visualizzazione caratteristiche. I tipi di agenti di servizio supportati sono:
    • SERVICE_AGENT_TYPE_PROJECT: utilizza l'account di servizio a livello di progetto per la visualizzazione delle funzionalità. Questa è la configurazione predefinita.
    • SERVICE_AGENT_TYPE_FEATURE_VIEW: configura e utilizza un account di servizio dedicato per la visualizzazione delle funzionalità.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Corpo JSON della richiesta:

{
  "feature_registry_source": {
    "feature_groups": [
      {
        "feature_group_id": "FEATUREGROUP_NAME_A",
        "feature_ids": [ "FEATURE_ID_A1", "FEATURE_ID_A2" ]
      },
      {
        "feature_group_id": "FEATUREGROUP_NAME_B",
        "feature_ids": [ "FEATURE_ID_B1", "FEATURE_ID_B2" ]
      }
    ]
  },
  "sync_config": {
    SYNC_CONFIG
  },
  "service_agent_type": "SERVICE_AGENT_TYPE"
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

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?feature_view_id=FEATUREVIEW_NAME"

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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Crea una visualizzazione caratteristiche da un'origine BigQuery

Se vuoi pubblicare elementi online senza registrare l'origine dati BigQuery utilizzando gruppi di elementi ed elementi, puoi creare una vista elemento specificando l'URI dell'origine dati BigQuery.

Se crei una visualizzazione delle caratteristiche specificando l'origine dati:

  • Non puoi includere una colonna feature_timestamp nella tabella o nella vista BigQuery.

  • Non puoi includere i valori delle caratteristiche storiche nell'origine dati. Ogni riga deve contenere un ID entità univoco.

Creare una visualizzazione delle funzionalità che utilizza l'account di servizio predefinito e non supporta gli incorporamenti

Utilizza gli esempi riportati di seguito per creare una visualizzazione caratteristiche che non supporta gli incorporamenti. associando direttamente un'origine dati BigQuery e senza specificare un la configurazione dell'account di servizio.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_view_from_bq_source(
    project: str,
    location: str,
    existing_feature_online_store_id: str,
    feature_view_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
):
    aiplatform.init(project=project, location=location)
    fos = feature_store.FeatureOnlineStore(existing_feature_online_store_id)
    fv = fos.create_feature_view(
        name=feature_view_id,
        source=feature_store.utils.FeatureViewBigQuerySource(
            uri=bq_table_uri, entity_id_columns=entity_id_columns
        ),
    )
    return fv

  • project: l'ID del tuo progetto.
  • location: regione in cui vuoi creare la visualizzazione delle caratteristiche, ad esempio us-central1.
  • existing_feature_online_store_id: il nome dell'istanza del negozio online in cui vuoi creare la visualizzazione delle funzionalità.
  • feature_view_id: il nome della nuova istanza della visualizzazione delle funzionalità che vuoi creare.
  • bq_table_uri: URI della tabella o della vista di origine BigQuery.
  • entity_id_columns: i nomi delle colonne contenenti gli ID entità. Puoi specificare una o più colonne.
    • Per specificare una sola colonna di ID entità, specifica il nome della colonna nel seguente formato:
      "entity_id_column_name".
    • Per specificare più colonne di ID entità, specifica i nomi delle colonne nel seguente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].

REST

Per creare una FeatureView Risorsa, invia una richiesta POST utilizzando featureViews.create .

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

  • LOCATION_ID: regione in cui vuoi creare la visualizzazione delle caratteristiche, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online in cui vuoi creare la visualizzazione caratteristiche.
  • FEATUREVIEW_NAME: il nome della nuova visualizzazione delle caratteristiche che vuoi creare.
  • PROJECT_NAME: il nome del progetto.
  • DATASET_NAME: il nome del tuo set di dati BigQuery.
  • TABLE_NAME: il nome della tabella del set di dati BigQuery.
  • ENTITY_ID_COLUMNS: i nomi delle colonne contenenti gli ID entità. Puoi specificare una o più colonne.
    • Per specificare una sola colonna di ID entità, specifica il nome della colonna nel seguente formato:
      "entity_id_column_name"
    • Per specificare più colonne di ID entità, specifica i nomi delle colonne nel seguente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: espressione di pianificazione cron che rappresenta la frequenza di sincronizzazione dei dati con visualizzazione delle caratteristiche. Per ulteriori informazioni, consulta cron.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Corpo JSON della richiesta:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  }
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

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?feature_view_id=FEATUREVIEW_NAME"

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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Crea una visualizzazione delle funzionalità che utilizza l'account di servizio predefinito e supporta gli embedding

Utilizza gli esempi riportati di seguito per creare una visualizzazione caratteristiche con supporto dell'incorporamento associando direttamente un'origine dati BigQuery senza specificare la configurazione dell'account di servizio.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_view_from_bq_source_with_embedding_management(
    project: str,
    location: str,
    existing_feature_online_store_id: str,
    feature_view_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
    embedding_column: str,
    embedding_dimensions: int,
):
    aiplatform.init(project=project, location=location)

    fos = feature_store.FeatureOnlineStore(existing_feature_online_store_id)

    bigquery_source = feature_store.utils.FeatureViewBigQuerySource(
        uri=bq_table_uri,
        entity_id_columns=entity_id_columns,
    )
    index_config = feature_store.utils.IndexConfig(
        embedding_column=embedding_column,
        dimensions=embedding_dimensions,
        algorithm_config=feature_store.utils.TreeAhConfig(),
    )
    fv = fos.create_feature_view(
        name=feature_view_id,
        source=bigquery_source,
        index_config=index_config,
    )
    return fv

  • project: l'ID del tuo progetto.
  • location: regione in cui vuoi creare la visualizzazione delle caratteristiche, ad esempio us-central1.
  • existing_feature_online_store_id: il nome dell'istanza del negozio online in cui vuoi creare la visualizzazione delle funzionalità.
  • feature_view_id: il nome della nuova istanza della visualizzazione delle funzionalità che vuoi creare.
  • bq_table_uri: URI della tabella o della vista di origine BigQuery.
  • entity_id_columns: i nomi delle colonne contenenti gli ID entità. Puoi specificare una o più colonne.
    • Per specificare una sola colonna di ID entità, specifica il nome della colonna nel seguente formato:
      "entity_id_column_name".
    • Per specificare più colonne ID entità, specifica i nomi delle colonne nel seguente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • embedding_column: il nome della colonna contenente i dati di origine per creare la per la ricerca vettoriale. Questo è necessario solo se vuoi gestire gli incorporamenti con la visualizzazione delle funzionalità.
  • embedding_dimensions: facoltativo. La dimensione, espressa come numero di dimensioni, di un incorporamento nella colonna di incorporamento.

REST

Per creare una risorsa FeatureView, invia una richiesta POST utilizzando il metodo featureViews.create.

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

  • LOCATION_ID: regione in cui vuoi creare la visualizzazione delle caratteristiche, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online in cui vuoi creare la visualizzazione caratteristiche.
  • FEATUREVIEW_NAME: il nome della nuova visualizzazione delle caratteristiche che vuoi creare.
  • PROJECT_NAME: il nome del progetto.
  • DATASET_NAME: il nome del tuo set di dati BigQuery.
  • TABLE_NAME: il nome della tabella del set di dati BigQuery.
  • ENTITY_ID_COLUMNS: i nomi delle colonne contenenti gli ID entità. Puoi specificare una o più colonne.
    • Per specificare una sola colonna di ID entità, specifica il nome della colonna nel seguente formato:
      "entity_id_column_name"
    • Per specificare più colonne di ID entità, specifica i nomi delle colonne nel seguente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: espressione di pianificazione cron che rappresenta la frequenza di sincronizzazione dei dati con la visualizzazione delle funzionalità. Per ulteriori informazioni, consulta cron.
  • EMBEDDING_COLUMN: il nome della colonna contenente i dati di origine per creare l'indice per la ricerca di vettori. Questa operazione è necessaria solo se vuoi gestire gli incorporamenti con la visualizzazione caratteristiche.
  • FILTER_COLUMN_1 e FILTER_COLUMN_2: (facoltativo) i nomi delle colonne utilizzate per filtrare i risultati di ricerca vettoriali.
  • CROWDING_COLUMN: facoltativo: il nome della colonna contenente gli attributi di crowding.
  • EMBEDDING_DIMENSION: (facoltativo) La dimensione, espressa come numero di dimensioni, di un'evidenziazione nella colonna corrispondente.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Corpo JSON della richiesta:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "index_config": {
    "embedding_column": "EMBEDDING_COLUMN",
    "filter_columns": ["FILTER_COLUMN_1", "FILTER_COLUMN_2"],
    "crowding_column": "CROWDING_COLUMN",
    "embedding_dimension": EMBEDDING_DIMENSION
    "tree_ah_config": {}
  }
}

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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Crea una visualizzazione caratteristiche con gestione dell'incorporamento specificando una configurazione dell'account di servizio

Utilizza il seguente esempio per creare una vista elemento con il supporto dell'embedding associando direttamente un'origine dati BigQuery e specificando una configurazione dell'account di servizio.

REST

Per creare una risorsa FeatureView con il supporto delle rappresentazioni distribuite, invia una richiesta POST utilizzando il metodo featureViews.create e specificando il parametro FeatureView.index_config. Tieni presente che puoi utilizzare la gestione dell'incorporamento solo se il negozio online è configurato per la pubblicazione online ottimizzata.

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

  • LOCATION_ID: regione in cui vuoi creare la visualizzazione delle caratteristiche, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online in cui vuoi creare la visualizzazione caratteristiche.
  • FEATUREVIEW_NAME: il nome della nuova visualizzazione delle caratteristiche che vuoi creare.
  • PROJECT_NAME: il nome del progetto.
  • DATASET_NAME: il nome del tuo set di dati BigQuery.
  • TABLE_NAME: il nome della tabella del set di dati BigQuery.
  • ENTITY_ID_COLUMNS: i nomi delle colonne contenenti gli ID entità. Puoi specificare una o più colonne.
    • Per specificare una sola colonna di ID entità, specifica il nome della colonna nel seguente formato:
      "entity_id_column_name"
    • Per specificare più colonne di ID entità, specifica i nomi delle colonne nel seguente formato:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...]
  • CRON: espressione di pianificazione cron che rappresenta la frequenza di sincronizzazione dei dati con la visualizzazione delle funzionalità. Per ulteriori informazioni, consulta cron.
  • SERVICE_AGENT_TYPE: configurazione dell'account di servizio per la visualizzazione caratteristiche. I tipi di agenti di servizio supportati sono:
    • SERVICE_AGENT_TYPE_PROJECT: utilizza l'account di servizio a livello di progetto per la visualizzazione delle funzionalità. Questa è la configurazione predefinita.
    • SERVICE_AGENT_TYPE_FEATURE_VIEW: configura e utilizza un account di servizio dedicato per la visualizzazione delle funzionalità.
  • EMBEDDING_COLUMN: il nome della colonna contenente i dati di origine per creare l'indice per la ricerca di vettori. Questo è necessario solo se vuoi gestire gli incorporamenti con la visualizzazione delle funzionalità.
  • FILTER_COLUMN_1 e FILTER_COLUMN_2: (facoltativo) i nomi delle colonne utilizzate per filtrare i risultati di ricerca vettoriali.
  • CROWDING_COLUMN: facoltativo: il nome della colonna contenente gli attributi di crowding.
  • EMBEDDING_DIMENSION: (facoltativo) La dimensione, espressa come numero di dimensioni, di un'evidenziazione nella colonna corrispondente.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME

Corpo JSON della richiesta:

{
  "big_query_source": {
    "uri": "bq://PROJECT_NAME.DATASET_NAME.TABLE_NAME",
    "entity_id_columns": "ENTITY_ID_COLUMNS"
  },
  "sync_config": {
    "cron": "CRON"
  },
  "service_agent_type": "SERVICE_AGENT_TYPE",
  "index_config": {
    "embedding_column": "EMBEDDING_COLUMN",
    "filter_columns": ["FILTER_COLUMN_1", "FILTER_COLUMN_2"],
    "crowding_column": "CROWDING_COLUMN",
    "embedding_dimension": EMBEDDING_DIMENSION
    "tree_ah_config": {}
  }
}

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_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews?feature_view_id=FEATUREVIEW_NAME"

PowerShell

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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?feature_view_id=FEATUREVIEW_NAME" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureViewOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-15T02:11:29.458820Z",
      "updateTime": "2023-09-15T02:11:29.458820Z"
    }
  }
}

Passaggi successivi