Esportazione dei valori delle caratteristiche

Esporta i valori delle caratteristiche per tutte le entità di un singolo tipo di entità in una tabella BigQuery o in un bucket Cloud Storage. Puoi scegliere di ottenere un'immagine istantanea o di esportare completamente i valori delle funzionalità. Uno snapshot restituisce un singolo valore per elemento rispetto a un'esportazione completa, che può restituire più valori per elemento. Non puoi selezionare ID entità specifici o includere più tipi di entità quando esporti i valori delle funzionalità.

L'esportazione dei valori delle funzionalità è utile per l'archiviazione o per eseguire analisi ad hoc sui dati. Ad esempio, puoi archiviare snapshot regolari del tuo feature store per salvarne lo stato in momenti diversi. Se devi recuperare i valori delle funzionalità per creare un set di dati di addestramento, utilizza invece il pubblicamento collettivo.

Confronto tra l'esportazione completa e quella parziale

Sia lo snapshot che le opzioni di esportazione completa ti consentono di eseguire query sui dati specificando un singolo timestamp (ora di inizio o di fine) o entrambi i timestamp. Per gli snapshot, Vertex AI Feature Store (legacy) restituisce il valore della funzionalità più recente all'interno di un determinato intervallo di tempo. Nell'output, il timestamp associato a ciascun valore della caratteristica è il timestamp dell'istantanea (non il timestamp del valore della caratteristica).

Per le esportazioni complete, Vertex AI Feature Store (legacy) restituisce tutti i valori delle funzionalità in un determinato intervallo di tempo. Nell'output, il timestamp associato a ogni valore della caratteristica è il timestamp della caratteristica (il timestamp specificato al momento dell'importazione del valore della caratteristica).

La tabella seguente riassume i valori restituiti da Vertex AI Feature Store (legacy) in base all'opzione scelta e ai timestamp forniti.

Opzione Solo ora di inizio (inclusa) Solo ora di fine (inclusa) Ora di inizio e di fine (incluse)
Snapshot A partire dall'ora corrente (quando è stata ricevuta la richiesta), restituisce il valore più recente, fino all'ora di inizio.
Il timestamp dello snapshot è impostato sull'ora corrente.
A partire dall'ora di fine, restituisce il valore più recente, fino al primo valore per ogni funzionalità.
Il timestamp dello snapshot è impostato sull'ora di fine specificata.
Restituisce il valore più recente nell'intervallo di tempo specificato.
Il timestamp dello snapshot è impostato sull'ora di fine specificata.
Esportazione completa Restituisce tutti i valori a partire dall'ora di inizio e fino all'ora corrente (quando è stata inviata la richiesta). Restituisce tutti i valori fino all'ora di fine, fino al primo valore per ogni funzionalità. Restituisce tutti i valori nell'intervallo di tempo specificato.

Valori null

Per gli snapshot, se il valore della funzionalità più recente è nullo in un determinato timestamp, Vertex AI Feature Store (legacy) restituisce il valore della funzionalità precedente non nullo. Se non sono presenti valori non null precedenti, Vertex AI Feature Store (legacy) restituisce null.

Per le esportazioni complete, se un valore della funzionalità è nullo in un determinato timestamp, Vertex AI Feature Store (legacy) restituisce nullo per quel timestamp.

Esempi

Ad esempio, supponiamo di avere i seguenti valori in un feature store, dove i valori di Feature_A e Feature_B condividono lo stesso timestamp:

ID entità Timestamp del valore della caratteristica Feature_A Feature_B
123 T1 A_T1 B_T1
123 T2 A_T2 NULL
123 T3 A_T3 NULL
123 T4 A_T4 B_T4
123 T5 NULL B_T5

Snapshot

Per gli snapshot, Vertex AI Feature Store (legacy) restituisce i seguenti valori in base ai valori timestamp specificati:

  • Se solo l'ora di start è impostata su T3, lo snapshot restituisce i seguenti valori:
ID entità Timestamp dello snapshot Feature_A Feature_B
123 CURRENT_TIME A_T4 B_T5
  • Se solo l'ora end è impostata su T3, lo snapshot restituisce i seguenti valori:
ID entità Timestamp dello snapshot Feature_A Feature_B
123 T3 A_T3 B_T1
  • Se le ore di inizio e fine sono impostate su T2 e T3, lo snapshot restituisce i seguenti valori:
ID entità Timestamp dello snapshot Feature_A Feature_B
123 T3 A_T3 NULL

Esportazione completa

Per le esportazioni complete, Vertex AI Feature Store (legacy) restituisce i seguenti valori in base ai valori timestamp specificati:

  • Se solo l'ora di start è impostata su T3, l'esportazione completa restituisce i seguenti valori:
ID entità Timestamp del valore della caratteristica Feature_A Feature_B
123 T3 A_T3 NULL
123 T4 A_T4 B_T4
123 T5 NULL B_T5
  • Se solo l'ora di fine è impostata su T3, l'esportazione completa restituisce i seguenti valori:
ID entità Timestamp del valore della caratteristica Feature_A Feature_B
123 T1 A_T1 B_T1
123 T2 A_T2 NULL
123 T3 A_T3 NULL
  • Se le ore di inizio e fine sono impostate su T2 e T4, l'esportazione completa restituisce i seguenti valori:
ID entità Timestamp del valore della caratteristica Feature_A Feature_B
123 T2 A_T2 NULL
123 T3 A_T3 NULL
123 T4 A_T4 B_T4

Esportazione dei valori delle caratteristiche

Quando esporti i valori delle funzionalità, scegli le funzionalità per cui eseguire query e se si tratta di uno snapshot o di un'esportazione completa. Le sezioni seguenti mostrano un esempio per ogni opzione.

Per entrambe le opzioni, la destinazione dell'output deve trovarsi nella stessa regione del feature store di origine. Ad esempio, se il tuo feature store si trova in us-central1, anche il bucket Cloud Storage o la tabella BigQuery di destinazione deve trovarsi in us-central1.

Snapshot

Esporta i valori delle caratteristiche più recenti per un determinato intervallo di tempo.

UI web

Utilizza un altro metodo. Non puoi esportare i valori delle funzionalità dalla console Google Cloud.

REST

Per esportare i valori delle funzionalità, invia una richiesta POST utilizzando il metodo entityTypes.exportFeatureValues.

L'esempio seguente genera una tabella BigQuery, ma puoi anche eseguire l'output in un bucket Cloud Storage. Per ogni destinazione di output potrebbero essere previsti alcuni prerequisiti prima di poter inviare una richiesta. Ad esempio, se specifichi un nome tabella per il campo bigqueryDestination, devi avere un set di dati esistente. Questi requisiti sono documentati nel riferimento dell'API.

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

  • LOCATION_ID: regione in cui si trova il Feature Store. Ad esempio, us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATURESTORE_ID: ID dell'archivio di funzionalità.
  • ENTITY_TYPE_ID: ID del tipo di entità.
  • START_TIME e END_TIME: (Facoltativo) se specifichi solo l'ora di inizio, viene restituito il valore più recente a partire dall'ora corrente (quando viene inviata la richiesta) e viene esaminato il periodo precedente fino all'ora di inizio. Se specifichi solo l'ora di fine, restituisce il valore più recente a partire dall'ora di fine (inclusa) e torna al primo valore. Se specifichi un'ora di inizio e un'ora di fine, restituisce il valore più recente nell'intervallo di tempo specificato (incluso). Se non ne specifichi nessuno, restituisce i valori più recenti per ogni elemento, a partire dall'ora corrente e fino al primo valore.
  • DATASET_NAME: il nome del set di dati BigQuery di destinazione.
  • TABLE_NAME: nome della tabella BigQuery di destinazione.
  • FEATURE_ID: l'ID di una o più funzionalità. Specifica un singolo * (asterisco) per selezionare tutte le funzionalità.

Metodo HTTP e URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues

Corpo JSON della richiesta:

{
  "snapshotExport": {
    "start_time": "START_TIME",
    "snapshot_time": "END_TIME"
  },
  "destination" : {
    "bigqueryDestination": {
      "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
    }
  },
  "featureSelector": {
    "idMatcher": {
      "ids": ["FEATURE_ID", ...]
    }
  }
}

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/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues"

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/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportFeatureValuesOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-12-03T22:55:25.974976Z",
      "updateTime": "2021-12-03T22:55:25.974976Z"
    }
  }
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Vertex AI.

Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.BigQueryDestination;
import com.google.cloud.aiplatform.v1.EntityTypeName;
import com.google.cloud.aiplatform.v1.ExportFeatureValuesOperationMetadata;
import com.google.cloud.aiplatform.v1.ExportFeatureValuesRequest;
import com.google.cloud.aiplatform.v1.ExportFeatureValuesRequest.SnapshotExport;
import com.google.cloud.aiplatform.v1.ExportFeatureValuesResponse;
import com.google.cloud.aiplatform.v1.FeatureSelector;
import com.google.cloud.aiplatform.v1.FeatureValueDestination;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceClient;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceSettings;
import com.google.cloud.aiplatform.v1.IdMatcher;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class ExportFeatureValuesSnapshotSample {

  public static void main(String[] args)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "YOUR_PROJECT_ID";
    String featurestoreId = "YOUR_FEATURESTORE_ID";
    String entityTypeId = "YOUR_ENTITY_TYPE_ID";
    String destinationTableUri = "YOUR_DESTINATION_TABLE_URI";
    List<String> featureSelectorIds = Arrays.asList("title", "genres", "average_rating");
    String location = "us-central1";
    String endpoint = "us-central1-aiplatform.googleapis.com:443";
    int timeout = 300;
    exportFeatureValuesSnapshotSample(
        project,
        featurestoreId,
        entityTypeId,
        destinationTableUri,
        featureSelectorIds,
        location,
        endpoint,
        timeout);
  }

  static void exportFeatureValuesSnapshotSample(
      String project,
      String featurestoreId,
      String entityTypeId,
      String destinationTableUri,
      List<String> featureSelectorIds,
      String location,
      String endpoint,
      int timeout)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    FeaturestoreServiceSettings featurestoreServiceSettings =
        FeaturestoreServiceSettings.newBuilder().setEndpoint(endpoint).build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (FeaturestoreServiceClient featurestoreServiceClient =
        FeaturestoreServiceClient.create(featurestoreServiceSettings)) {

      FeatureSelector featureSelector =
          FeatureSelector.newBuilder()
              .setIdMatcher(IdMatcher.newBuilder().addAllIds(featureSelectorIds).build())
              .build();

      ExportFeatureValuesRequest exportFeatureValuesRequest =
          ExportFeatureValuesRequest.newBuilder()
              .setEntityType(
                  EntityTypeName.of(project, location, featurestoreId, entityTypeId).toString())
              .setDestination(
                  FeatureValueDestination.newBuilder()
                      .setBigqueryDestination(
                          BigQueryDestination.newBuilder().setOutputUri(destinationTableUri)))
              .setFeatureSelector(featureSelector)
              .setSnapshotExport(SnapshotExport.newBuilder())
              .build();

      OperationFuture<ExportFeatureValuesResponse, ExportFeatureValuesOperationMetadata>
          exportFeatureValuesFuture =
              featurestoreServiceClient.exportFeatureValuesAsync(exportFeatureValuesRequest);
      System.out.format(
          "Operation name: %s%n", exportFeatureValuesFuture.getInitialFuture().get().getName());
      System.out.println("Waiting for operation to finish...");
      ExportFeatureValuesResponse exportFeatureValuesResponse =
          exportFeatureValuesFuture.get(timeout, TimeUnit.SECONDS);
      System.out.println("Snapshot Export Feature Values Response");
      System.out.println(exportFeatureValuesResponse);
      featurestoreServiceClient.close();
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.

Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

/**
 * TODO(developer): Uncomment these variables before running the sample.\
 * (Not necessary if passing values as arguments)
 */

// const project = 'YOUR_PROJECT_ID';
// const featurestoreId = 'YOUR_FEATURESTORE_ID';
// const entityTypeId = 'YOUR_ENTITY_TYPE_ID';
// const destinationTableUri = 'YOUR_BQ_DESTINATION_TABLE_URI';
// const timestamp = <STARTING_TIMESTAMP_OF_SNAPSHOT_IN_SECONDS>;
// const location = 'YOUR_PROJECT_LOCATION';
// const apiEndpoint = 'YOUR_API_ENDPOINT';
// const timeout = <TIMEOUT_IN_MILLI_SECONDS>;

// Imports the Google Cloud Featurestore Service Client library
const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: apiEndpoint,
};

// Instantiates a client
const featurestoreServiceClient = new FeaturestoreServiceClient(
  clientOptions
);

async function exportFeatureValuesSnapshot() {
  // Configure the entityType resource
  const entityType = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`;

  const destination = {
    bigqueryDestination: {
      // # Output to BigQuery table created earlier
      outputUri: destinationTableUri,
    },
  };

  const featureSelector = {
    idMatcher: {
      ids: ['age', 'gender', 'liked_genres'],
    },
  };

  const snapshotExport = {
    startTime: {
      seconds: Number(timestamp),
    },
  };

  const request = {
    entityType: entityType,
    destination: destination,
    featureSelector: featureSelector,
    snapshotExport: snapshotExport,
  };

  // Export Feature Values Request
  const [operation] = await featurestoreServiceClient.exportFeatureValues(
    request,
    {timeout: Number(timeout)}
  );
  const [response] = await operation.promise();

  console.log('Export feature values snapshot response');
  console.log('Raw response:');
  console.log(JSON.stringify(response, null, 2));
}
exportFeatureValuesSnapshot();

Linguaggi aggiuntivi

Per scoprire come installare e utilizzare l'SDK Vertex AI per Python, consulta Utilizzare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK for Python.

Esportazione completa

Esporta tutti i valori delle funzionalità in un determinato intervallo di tempo.

UI web

Utilizza un altro metodo. Non puoi esportare i valori delle funzionalità dalla console Google Cloud.

REST

Per esportare i valori delle funzionalità, invia una richiesta POST utilizzando il metodo entityTypes.exportFeatureValues.

L'esempio seguente genera una tabella BigQuery, ma puoi anche eseguire l'output in un bucket Cloud Storage. Per ogni destinazione di output potrebbero essere previsti alcuni prerequisiti prima di poter inviare una richiesta. Ad esempio, se specifichi un nome tabella per il campo bigqueryDestination, devi avere un set di dati esistente. Questi requisiti sono documentati nel riferimento dell'API.

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

  • LOCATION_ID: regione in cui si trova il Feature Store. Ad esempio, us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATURESTORE_ID: ID dell'archivio di funzionalità.
  • ENTITY_TYPE_ID: ID del tipo di entità.
  • START_TIME e END_TIME: (Facoltativo) se specifichi solo l'ora di inizio, vengono restituiti tutti i valori compresi tra l'ora corrente (quando viene inviata la richiesta) e l'ora di inizio (inclusa). Se specifichi solo l'ora di fine, vengono restituiti tutti i valori compresi tra l'ora di fine (inclusa) e il timestamp del primo valore (per ogni funzionalità). Se specifichi un'ora di inizio e un'ora di fine, vengono restituiti tutti i valori compresi nell'intervallo di tempo specificato (incluso). Se non specifichi nessuno, vengono restituiti tutti i valori compresi tra l'ora corrente e il timestamp del primo valore (per ogni elemento).
  • DATASET_NAME: il nome del set di dati BigQuery di destinazione.
  • TABLE_NAME: nome della tabella BigQuery di destinazione.
  • FEATURE_ID: l'ID di una o più funzionalità. Specifica un singolo * (asterisco) per selezionare tutte le funzionalità.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "fullExport": {
    "start_time": "START_TIME",
    "end_time": "END_TIME"
  },
  "destination" : {
    "bigqueryDestination": {
      "outputUri": "bq://PROJECT.DATASET_NAME.TABLE_NAME"
    }
  },
  "featureSelector": {
    "idMatcher": {
      "ids": ["FEATURE_ID", ...]
    }
  }
}

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/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues"

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/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportFeatureValuesOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-12-03T22:55:25.974976Z",
      "updateTime": "2021-12-03T22:55:25.974976Z"
    }
  }
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Vertex AI.

Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.BigQueryDestination;
import com.google.cloud.aiplatform.v1.EntityTypeName;
import com.google.cloud.aiplatform.v1.ExportFeatureValuesOperationMetadata;
import com.google.cloud.aiplatform.v1.ExportFeatureValuesRequest;
import com.google.cloud.aiplatform.v1.ExportFeatureValuesRequest.FullExport;
import com.google.cloud.aiplatform.v1.ExportFeatureValuesResponse;
import com.google.cloud.aiplatform.v1.FeatureSelector;
import com.google.cloud.aiplatform.v1.FeatureValueDestination;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceClient;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceSettings;
import com.google.cloud.aiplatform.v1.IdMatcher;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class ExportFeatureValuesSample {

  public static void main(String[] args)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "YOUR_PROJECT_ID";
    String featurestoreId = "YOUR_FEATURESTORE_ID";
    String entityTypeId = "YOUR_ENTITY_TYPE_ID";
    String destinationTableUri = "YOUR_DESTINATION_TABLE_URI";
    List<String> featureSelectorIds = Arrays.asList("title", "genres", "average_rating");
    String location = "us-central1";
    String endpoint = "us-central1-aiplatform.googleapis.com:443";
    int timeout = 300;
    exportFeatureValuesSample(
        project,
        featurestoreId,
        entityTypeId,
        destinationTableUri,
        featureSelectorIds,
        location,
        endpoint,
        timeout);
  }

  static void exportFeatureValuesSample(
      String project,
      String featurestoreId,
      String entityTypeId,
      String destinationTableUri,
      List<String> featureSelectorIds,
      String location,
      String endpoint,
      int timeout)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    FeaturestoreServiceSettings featurestoreServiceSettings =
        FeaturestoreServiceSettings.newBuilder().setEndpoint(endpoint).build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (FeaturestoreServiceClient featurestoreServiceClient =
        FeaturestoreServiceClient.create(featurestoreServiceSettings)) {

      FeatureSelector featureSelector =
          FeatureSelector.newBuilder()
              .setIdMatcher(IdMatcher.newBuilder().addAllIds(featureSelectorIds).build())
              .build();

      ExportFeatureValuesRequest exportFeatureValuesRequest =
          ExportFeatureValuesRequest.newBuilder()
              .setEntityType(
                  EntityTypeName.of(project, location, featurestoreId, entityTypeId).toString())
              .setDestination(
                  FeatureValueDestination.newBuilder()
                      .setBigqueryDestination(
                          BigQueryDestination.newBuilder().setOutputUri(destinationTableUri)))
              .setFeatureSelector(featureSelector)
              .setFullExport(FullExport.newBuilder())
              .build();

      OperationFuture<ExportFeatureValuesResponse, ExportFeatureValuesOperationMetadata>
          exportFeatureValuesFuture =
              featurestoreServiceClient.exportFeatureValuesAsync(exportFeatureValuesRequest);
      System.out.format(
          "Operation name: %s%n", exportFeatureValuesFuture.getInitialFuture().get().getName());
      System.out.println("Waiting for operation to finish...");
      ExportFeatureValuesResponse exportFeatureValuesResponse =
          exportFeatureValuesFuture.get(timeout, TimeUnit.SECONDS);
      System.out.println("Export Feature Values Response");
      System.out.println(exportFeatureValuesResponse);
      featurestoreServiceClient.close();
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.

Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

/**
 * TODO(developer): Uncomment these variables before running the sample.\
 * (Not necessary if passing values as arguments)
 */

// const project = 'YOUR_PROJECT_ID';
// const featurestoreId = 'YOUR_FEATURESTORE_ID';
// const entityTypeId = 'YOUR_ENTITY_TYPE_ID';
// const destinationTableUri = 'YOUR_BQ_DESTINATION_TABLE_URI';
// const location = 'YOUR_PROJECT_LOCATION';
// const apiEndpoint = 'YOUR_API_ENDPOINT';
// const timeout = <TIMEOUT_IN_MILLI_SECONDS>;

// Imports the Google Cloud Featurestore Service Client library
const {FeaturestoreServiceClient} = require('@google-cloud/aiplatform').v1;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: apiEndpoint,
};

// Instantiates a client
const featurestoreServiceClient = new FeaturestoreServiceClient(
  clientOptions
);

async function exportFeatureValues() {
  // Configure the entityType resource
  const entityType = `projects/${project}/locations/${location}/featurestores/${featurestoreId}/entityTypes/${entityTypeId}`;

  const destination = {
    bigqueryDestination: {
      // # Output to BigQuery table created earlier
      outputUri: destinationTableUri,
    },
  };

  const featureSelector = {
    idMatcher: {
      ids: ['age', 'gender', 'liked_genres'],
    },
  };

  const request = {
    entityType: entityType,
    destination: destination,
    featureSelector: featureSelector,
    fullExport: {},
  };

  // Export Feature Values Request
  const [operation] = await featurestoreServiceClient.exportFeatureValues(
    request,
    {timeout: Number(timeout)}
  );
  const [response] = await operation.promise();

  console.log('Export feature values response');
  console.log('Raw response:');
  console.log(JSON.stringify(response, null, 2));
}
exportFeatureValues();

Linguaggi aggiuntivi

Per scoprire come installare e utilizzare l'SDK Vertex AI per Python, consulta Utilizzare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK for Python.

Passaggi successivi