Crea un'istanza di visualizzazione caratteristiche

Puoi creare una visualizzazione delle caratteristiche all'interno di un'istanza di negozio online esistente. Quando crei una visualizzazione delle funzionalità, puoi associarle in diversi modi:

  • Aggiungi gruppi di caratteristiche e caratteristiche dal Registro di caratteristiche: associa gruppi di caratteristiche e caratteristiche esistenti dal Registro di caratteristiche. Un gruppo di caratteristiche specifica la posizione dell'origine dati BigQuery. Una funzionalità all'interno del gruppo di funzionalità punta a una colonna di funzionalità specifica all'interno dell'origine dati. Puoi associare una visualizzazione delle funzionalità a più gruppi di funzionalità.

  • Aggiungi caratteristiche 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 caratteristiche, Vertex AI Feature Store sincronizza i valori delle caratteristiche più recenti dall'origine dati BigQuery. Se imposti il parametro di query run_sync_immediately=true, Vertex AI Feature Store sincronizza i valori delle caratteristiche quando crei la vista delle caratteristiche. In caso contrario, Vertex AI Feature Store sincronizza i valori delle caratteristiche in base alla pianificazione della sincronizzazione specificata per la visualizzazione delle caratteristiche.

Prima di iniziare

Autenticati su Vertex AI, a meno che tu non l'abbia già 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 esempi di Python questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.

  1. Install the Google Cloud CLI.

  2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

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

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.

    After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Sincronizzare i dati delle funzionalità in una visualizzazione delle funzionalità

Vertex AI Feature Store può aggiornare o sincronizzare i valori delle caratteristiche dall'origine dati BigQuery alla vista delle caratteristiche. Puoi specificare il tipo di sincronizzazione dei dati per una visualizzazione delle funzionalità utilizzando il parametro 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 delle funzionalità è configurata per utilizzare la sincronizzazione pianificata dei dati, puoi facoltativamente saltare l'attesa fino alla successiva operazione di sincronizzazione pianificata avviando manualmente la sincronizzazione dei dati. Per ulteriori informazioni sull'attivazione manuale di una sincronizzazione dei dati, vedi Sincronizzare i dati delle funzionalità con il negozio online.

    Durante la distribuzione online, se vuoi distribuire solo gli ultimi valori delle caratteristiche, inclusi i valori nulli, 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 di Bigtable quando crei l'istanza del negozio online.

    3. Scegli la sincronizzazione pianificata dei dati quando crei le visualizzazioni delle funzionalità.

  • Sincronizzazione continua dei dati: i dati delle funzionalità vengono aggiornati ogni volta che i dati delle funzionalità nell'origine dati BigQuery vengono aggiornati. Puoi scegliere questo tipo di sincronizzazione dei dati per una visualizzazione delle funzionalità solo se sono soddisfatte tutte le seguenti condizioni:

    • L'istanza dell'online store è 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 regioni:

      • eu

      • us

      • us-central1

    La sincronizzazione continua dei dati presenta le seguenti limitazioni:

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

    • Vengono sincronizzati solo i nuovi record delle funzionalità dall'origine dati BigQuery. La sincronizzazione continua dei dati non sincronizza i record delle funzionalità che aggiorni o elimini in BigQuery.

    • Il gruppo di caratteristiche nell'origine del registro delle caratteristiche deve avere una tabella BigQuery come origine.

Ottimizzare i costi durante la sincronizzazione dei dati pianificata

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

  • Non configurare la pianificazione della sincronizzazione in modo che venga eseguita con una frequenza superiore a quella con cui è previsto che i dati cambino nell'origine BigQuery.

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

  • Evita di eseguire aggregazioni complesse in BigQuery. Esegui una query SELECT * 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 alto da coprire i carichi elevati durante una sincronizzazione dei dati.

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

  • Se la tabella BigQuery contiene dati storici estesi, valuta la possibilità di partizionarla utilizzando i timestamp e specifica un intervallo di tempo per recuperare i dati delle funzionalità. In questo modo viene ridotto al minimo il recupero di dati obsoleti delle funzionalità durante la sincronizzazione.

  • L'utilizzo di Bigtable aumenta durante le sincronizzazioni dei dati. Per le visualizzazioni delle funzionalità create negli store online per la pubblicazione online di Bigtable, pianifica i job di sincronizzazione durante gli orari non di punta per ottenere il rendimento migliore.

Configura il account di servizio per una visualizzazione delle funzionalità

Ogni vista delle funzionalità 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 vista delle funzionalità utilizza il account di servizio configurato per il tuo progetto. Con questa configurazione, qualsiasi utente con l'autorizzazione per creare una vista delle funzionalità nel tuo progetto può accedere ai dati delle funzionalità in BigQuery.

In alternativa, puoi configurare la visualizzazione delle funzionalità in modo che utilizzi un proprio service account. Vertex AI Feature Store configura quindi un account di servizio dedicato per la visualizzazione delle caratteristiche. Con questa configurazione, puoi limitare l'accesso ai dati delle funzionalità in BigQuery o concedere l'accesso a utenti aggiuntivi. Puoi specificare la configurazione del account di servizio utilizzando il parametro FeatureView.service_agent_type. Tieni presente che Vertex AI Feature Store genera un indirizzo email dell'account di servizio univoco per ogni visualizzazione delle funzionalità configurata per avere un account di servizio dedicato.

Se una visualizzazione delle funzionalità è configurata per avere un account di servizio dedicato, puoi visualizzare l'indirizzo email delaccount di serviziot in uno dei seguenti modi:

Configurare il recupero vettoriale per una visualizzazione delle funzionalità

Puoi configurare il recupero dei vettori per una vista delle funzionalità all'interno di uno store 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 per la preparazione dell'origine dati.

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

Per saperne di più su come cercare i vicini più prossimi approssimati utilizzando gli incorporamenti in Vertex AI Feature Store, consulta Ricerca utilizzando gli incorporamenti.

Creare una visualizzazione caratteristiche dai gruppi di funzionalità

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

Se crei una visualizzazione 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 gestisce solo i valori delle caratteristiche più recenti in base al timestamp della caratteristica.

  • Non puoi configurare la gestione dell'incorporamento per la visualizzazione della funzionalità.

Crea una visualizzazione delle funzionalità con la configurazione del account di servizio predefinita

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 risorsa FeatureView, invia una richiesta POST utilizzando il metodo featureViews.create.

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

  • LOCATION_ID: la regione in cui vuoi creare la visualizzazione delle funzionalità, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATUREONLINESTORE_NAME: Il nome dell'istanza dello store online in cui vuoi creare la visualizzazione delle funzionalità.
  • FEATUREVIEW_NAME: il nome della nuova istanza della visualizzazione delle funzionalità 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 funzionalità del gruppo di funzionalità FEATUREGROUP_NAME_A che vuoi aggiungere alla visualizzazione delle funzionalità.
  • FEATURE_ID_B1 e FEATURE_ID_B2: ID funzionalità del gruppo di funzionalità FEATUREGROUP_NAME_B che vuoi aggiungere alla visualizzazione delle funzionalità.
  • SYNC_CONFIG: inserisci una delle seguenti configurazioni di sincronizzazione per la visualizzazione delle funzionalità:
    • Per utilizzare la sincronizzazione pianificata dei dati, fornisci 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, consulta 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 delle funzionalità è configurata per la pubblicazione online di 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 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?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 un account di servizio dedicato

Utilizza questo esempio per creare una visualizzazione delle funzionalità dai gruppi di funzionalità configurando un account di servizio dedicato.

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: la regione in cui vuoi creare la visualizzazione delle funzionalità, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATUREONLINESTORE_NAME: Il nome dell'istanza dello store online in cui vuoi creare la visualizzazione delle funzionalità.
  • FEATUREVIEW_NAME: il nome della nuova istanza della visualizzazione delle funzionalità 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 funzionalità del gruppo di funzionalità FEATUREGROUP_NAME_A che vuoi aggiungere alla visualizzazione delle funzionalità.
  • FEATURE_ID_B1 e FEATURE_ID_B2: ID funzionalità del gruppo di funzionalità FEATUREGROUP_NAME_B che vuoi aggiungere alla visualizzazione delle funzionalità.
  • SYNC_CONFIG: inserisci una delle seguenti configurazioni di sincronizzazione per la visualizzazione delle funzionalità:
    • Per utilizzare la sincronizzazione pianificata dei dati, fornisci 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, consulta 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 delle funzionalità è configurata per la pubblicazione online di Bigtable.
  • SERVICE_AGENT_TYPE: Configurazione dell'account di servizio per la visualizzazione delle funzionalità. Per utilizzare un account di servizio dedicato per la visualizzazione delle funzionalità, inserisci SERVICE_AGENT_TYPE_FEATURE_VIEW.

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
  },
  "service_agent_type": "SERVICE_AGENT_TYPE",
}

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?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 vista delle funzionalità da un'origine BigQuery

Se vuoi pubblicare le caratteristiche online senza registrare l'origine dati BigQuery utilizzando gruppi di caratteristiche e caratteristiche, puoi creare una vista delle caratteristiche specificando l'URI dell'origine dati BigQuery.

Se crei una visualizzazione delle funzionalità specificando l'origine dati:

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

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

Crea una visualizzazione delle funzionalità che utilizza il account di servizio predefinito e non supporta gli incorporamenti

Utilizza gli esempi seguenti per creare una visualizzazione delle funzionalità che non supporta gli incorporamenti, associando direttamente un'origine dati BigQuery e senza specificare una configurazione deaccount di serviziont.

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.


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: il tuo ID progetto.
  • location: la regione in cui vuoi creare la visualizzazione delle funzionalità, ad esempio us-central1.
  • existing_feature_online_store_id: Il nome dell'istanza dello store 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 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", ...].

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: la regione in cui vuoi creare la visualizzazione delle funzionalità, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATUREONLINESTORE_NAME: Il nome dell'istanza dello store online in cui vuoi creare la visualizzazione delle funzionalità.
  • FEATUREVIEW_NAME: il nome della nuova visualizzazione delle funzionalità che vuoi creare.
  • PROJECT_NAME: il nome del progetto.
  • DATASET_NAME: il nome del 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 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", ...]
  • CRON: espressione di pianificazione cron che rappresenta la frequenza di sincronizzazione dei dati con la visualizzazione delle funzionalità. 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 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?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 il account di servizio predefinito e supporta gli incorporamenti

Utilizza i seguenti esempi per creare una vista delle funzionalità con supporto dell'incorporamento associando direttamente un'origine dati BigQuery e con la configurazione deaccount di serviziont predefinito.

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.


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: il tuo ID progetto.
  • location: la regione in cui vuoi creare la visualizzazione delle funzionalità, ad esempio us-central1.
  • existing_feature_online_store_id: Il nome dell'istanza dello store 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 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 l'indice per la ricerca vettoriale. Questo è obbligatorio 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: la regione in cui vuoi creare la visualizzazione delle funzionalità, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATUREONLINESTORE_NAME: Il nome dell'istanza dello store online in cui vuoi creare la visualizzazione delle funzionalità.
  • FEATUREVIEW_NAME: il nome della nuova visualizzazione delle funzionalità che vuoi creare.
  • PROJECT_NAME: il nome del progetto.
  • DATASET_NAME: il nome del 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 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", ...]
  • 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 vettoriale. Questo è obbligatorio 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 della ricerca vettoriale.
  • CROWDING_COLUMN: (facoltativo) il nome della colonna contenente gli attributi di affollamento.
  • EMBEDDING_DIMENSION: (facoltativo) la dimensione, espressa come numero di dimensioni, di un incorporamento nella colonna di incorporamento.

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 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?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à con un account di servizio dedicato e senza gestione dell'incorporamento

Utilizza il seguente esempio per creare una visualizzazione delle funzionalità senza supporto dell'incorporamento associando direttamente un'origine dati BigQuery e specificando una configurazione dell'account di servizio.

REST

Per creare una risorsa FeatureView con supporto degli incorporamenti, 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: la regione in cui vuoi creare la visualizzazione delle funzionalità, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATUREONLINESTORE_NAME: Il nome dell'istanza dello store online in cui vuoi creare la visualizzazione delle funzionalità.
  • FEATUREVIEW_NAME: il nome della nuova visualizzazione delle funzionalità che vuoi creare.
  • PROJECT_NAME: il nome del progetto.
  • DATASET_NAME: il nome del 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 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", ...]
  • 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 delle funzionalità. Per utilizzare un account di servizio dedicato per la visualizzazione delle funzionalità, inserisci SERVICE_AGENT_TYPE_FEATURE_VIEW.

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"
  },
  "service_agent_type": "SERVICE_AGENT_TYPE",
}

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?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à con la gestione dell'incorporamento e un account di servizio dedicato

Utilizza il seguente esempio per creare una visualizzazione delle funzionalità con supporto dell'incorporamento associando direttamente un'origine dati BigQuery e specificando una configurazione del service account.

REST

Per creare una risorsa FeatureView con supporto degli incorporamenti, 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: la regione in cui vuoi creare la visualizzazione delle funzionalità, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATUREONLINESTORE_NAME: Il nome dell'istanza dello store online in cui vuoi creare la visualizzazione delle funzionalità.
  • FEATUREVIEW_NAME: il nome della nuova visualizzazione delle funzionalità che vuoi creare.
  • PROJECT_NAME: il nome del progetto.
  • DATASET_NAME: il nome del 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 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", ...]
  • 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 delle funzionalità. Per utilizzare un account di servizio dedicato per la visualizzazione delle funzionalità, inserisci SERVICE_AGENT_TYPE_FEATURE_VIEW.
  • EMBEDDING_COLUMN: il nome della colonna contenente i dati di origine per creare l'indice per la ricerca vettoriale. Questo è obbligatorio 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 della ricerca vettoriale.
  • CROWDING_COLUMN: (facoltativo) il nome della colonna contenente gli attributi di affollamento.
  • EMBEDDING_DIMENSION: (facoltativo) la dimensione, espressa come numero di dimensioni, di un incorporamento nella colonna di incorporamento.

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"
  },
  "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 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?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"
    }
  }
}

Passaggi successivi