Exporta valores de atributos

Exporta los valores de atributos de todas las entidades de un solo tipo de entidad a una tabla de BigQuery o un bucket de Cloud Storage. Puedes elegir obtener una instantánea o exportar los valores de los atributos por completo. Una instantánea muestra un solo valor por atributo en comparación con una exportación completa, que puede mostrar varios valores por atributo. No puedes seleccionar IDs de entidades particulares o incluir varios tipos de entidades cuando exportas valores de atributos.

Exportar valores de atributos es útil para archivar o realizar análisis ad hoc en tus datos. Por ejemplo, puedes almacenar instantáneas frecuentes del almacén de atributos para guardar su estado en diferentes momentos. Si necesitas obtener valores de atributos para compilar un conjunto de datos de entrenamiento, usa la entrega por lotes en su lugar.

Comparación de exportación instantánea y completa

Las opciones de instantánea y exportación completa te permiten consultar datos mediante la especificación de una sola marca de tiempo (ya sea la hora de inicio o de finalización) o ambas marcas de tiempo. Para las instantáneas, Vertex AI Feature Store muestra el valor del atributo más reciente dentro de un intervalo de tiempo determinado. En el resultado, la marca de tiempo asociada con cada valor de atributo es la marca de tiempo de la instantánea (no la marca de tiempo del valor del atributo).

Para las exportaciones completas, Vertex AI Feature Store muestra todos los valores de atributos dentro de un período determinado. En el resultado, la marca de tiempo asociada con cada valor de atributo es la marca de tiempo de la función (la marca de tiempo especificada cuando se transfirió el valor del atributo).

En la siguiente tabla, se resume lo que muestra Vertex AI Feature Store según la opción que elijas y las marcas de tiempo que proporciones.

Opción Solo hora de inicio (inclusive) Solo hora de finalización (inclusive) Hora de inicio y finalización (inclusive)
Instantánea A partir de la hora actual (cuando se recibió la solicitud), muestra el valor más reciente, con una retrospectiva hasta la hora de inicio.
La marca de tiempo de la instantánea se establece en la hora actual.
A partir de la hora de finalización, muestra el valor más reciente y vuelve al primer valor de cada atributo.
La marca de tiempo de la instantánea se establece en la hora de finalización especificada.
Muestra el valor más reciente dentro del intervalo de tiempo especificado.
La marca de tiempo de la instantánea se establece en la hora de finalización especificada.
Exportación completa Muestra todos los valores en la hora de inicio y después de ella, hasta la hora actual (cuando se envió la solicitud). Muestra todos los valores hasta la hora de finalización y hasta el primer valor de cada atributo. Muestra todos los valores dentro del intervalo de tiempo especificado.

Valores nulos

Para las instantáneas, si el valor más reciente de la función es nulo en una marca de tiempo determinada, Vertex AI Feature Store muestra el valor del atributo anterior que no es nula. Si no hay valores anteriores que no sean nulos, Vertex AI Feature Store muestra un valor nulo.

Para las exportaciones completas, si un valor de atributo es nulo en una marca de tiempo determinada, Vertex AI Feature Store muestra un valor nulo para esa marca de tiempo.

Ejemplos

Como ejemplo, supongamos que tenías los siguientes valores en un almacén de atributos, en los que los valores de Feature_A y Feature_B comparten la misma marca de tiempo:

ID de entidad Marca de tiempo del valor del atributo 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

Instantánea

Para las instantáneas, Vertex AI Feature Store muestra los siguientes valores según los valores de marca de tiempo proporcionados:

  • Si solo la hora de inicio se establece en T3, la instantánea muestra los siguientes valores:
ID de entidad Marca de tiempo de la instantánea Feature_A Feature_B
123 CURRENT_TIME A_T4 B_T5
  • Si solo se establece la hora de final en T3, la instantánea muestra los siguientes valores:
ID de entidad Marca de tiempo de la instantánea Feature_A Feature_B
123 T3 A_T3 B_T1
  • Si las horas de inicio y finalización se configuran en T2 y T3, la instantánea muestra los siguientes valores:
ID de entidad Marca de tiempo de la instantánea Feature_A Feature_B
123 T3 A_T3 NULL

Exportación completa

Para las exportaciones completas, Vertex AI Feature Store muestra los siguientes valores según los valores de marca de tiempo proporcionados:

  • Si solo la hora de inicio se establece en T3, la exportación completa muestra los siguientes valores:
ID de entidad Marca de tiempo del valor del atributo Feature_A Feature_B
123 T3 A_T3 NULL
123 T4 A_T4 B_T4
123 T5 NULL B_T5
  • Si solo la hora de finalización se establece en T3, la exportación completa muestra los siguientes valores:
ID de entidad Marca de tiempo del valor del atributo Feature_A Feature_B
123 T1 A_T1 B_T1
123 T2 A_T2 NULL
123 T3 A_T3 NULL
  • Si las horas de inicio y finalización se configuran como T2 y T4, la exportación completa muestra los siguientes valores:
ID de entidad Marca de tiempo del valor del atributo Feature_A Feature_B
123 T2 A_T2 NULL
123 T3 A_T3 NULL
123 T4 A_T4 B_T4

Exporta valores de atributos

Cuando exportas valores de atributos, tú eliges qué funciones consultar y si se trata de una instantánea o una exportación completa. En las siguientes secciones, se muestra un ejemplo de cada opción.

Para ambas opciones, el destino de salida debe estar en la misma región que el almacén de atributos de origen. Por ejemplo, si tu almacén de atributos está en us-central1, el bucket de destino de Cloud Storage o la tabla de BigQuery también deben estar en us-central1.

Instantánea

Exporta los valores de atributos más recientes de un intervalo de tiempo determinado.

IU web

Usa otro método. No puedes exportar valores de atributos desde la consola de Google Cloud.

REST

Para exportar los valores de los atributos, envía una solicitud POST mediante el método entityTypes.exportFeatureValues.

En el siguiente ejemplo, se muestra una tabla de BigQuery, pero también puedes enviar a un bucket de Cloud Storage. Cada destino de salida puede tener algunos requisitos antes de poder enviar una solicitud. Por ejemplo, si especificas un nombre de tabla para el campo bigqueryDestination, debes tener un conjunto de datos existente. Estos requisitos se documentan en la referencia de la API.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: La región en la que se encuentra el almacén de atributos. Por ejemplo, us-central1
  • PROJECT_ID: El ID del proyecto.
  • FEATURESTORE_ID: ID del featurestore.
  • ENTITY_TYPE_ID: ID del tipo de entidad.
  • START_TIME y END_TIME: Si especificas la hora de inicio, muestra el último valor a partir de la hora actual (cuando se envía la solicitud) y observa hasta la hora de inicio (opcional). Si especificas la hora de finalización, muestra el valor más reciente a partir de la hora de finalización (inclusive) y regresa al primer valor. Si especificas una hora de inicio y una hora de finalización, se muestra el valor más reciente dentro del intervalo de tiempo especificado (inclusive). Si no especificas ninguno, muestra los valores más recientes de cada atributo, comienza desde la hora actual y vuelve al primer valor.
  • DATASET_NAME: El nombre del conjunto de datos de BigQuery de destino.
  • TABLE_NAME: El nombre de la tabla de BigQuery de destino.
  • FEATURE_ID: ID de uno o más atributos. Especifica un único * (asterisco) para seleccionar todos los atributos.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * 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();

Idiomas adicionales

Si deseas obtener información sobre cómo instalar y usar el SDK de Vertex AI para Python, consulta Cómo usar el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia del SDK de IA de Vertex para Python.

Exportación completa

Exporta todos los valores de atributos dentro de un intervalo de tiempo determinado.

IU web

Usa otro método. No puedes exportar valores de atributos desde la consola de Google Cloud.

REST

Para exportar los valores de los atributos, envía una solicitud POST mediante el método entityTypes.exportFeatureValues.

En el siguiente ejemplo, se muestra una tabla de BigQuery, pero también puedes enviar a un bucket de Cloud Storage. Cada destino de salida puede tener algunos requisitos antes de poder enviar una solicitud. Por ejemplo, si especificas un nombre de tabla para el campo bigqueryDestination, debes tener un conjunto de datos existente. Estos requisitos se documentan en la referencia de la API.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: La región en la que se encuentra el almacén de atributos. Por ejemplo, us-central1
  • PROJECT_ID: El ID del proyecto.
  • FEATURESTORE_ID: ID del featurestore.
  • ENTITY_TYPE_ID: ID del tipo de entidad.
  • START_TIME y END_TIME: Si especificas la hora de inicio, muestra todos los valores entre la hora actual (cuando se envía la solicitud) y la hora de inicio (opcional). Si especificas la hora de finalización solo, muestra todos los valores entre la hora de finalización (inclusive) y la primera marca de tiempo del valor (para cada atributo). Si especificas una hora de inicio y una hora de finalización, se muestran todos los valores dentro del intervalo de tiempo especificado (inclusive). Si no especificas ninguno, muestra todos los valores entre la hora actual y la primera marca de tiempo de valor (para cada atributo).
  • DATASET_NAME: El nombre del conjunto de datos de BigQuery de destino.
  • TABLE_NAME: El nombre de la tabla de BigQuery de destino.
  • FEATURE_ID: ID de uno o más atributos. Especifica un único * (asterisco) para seleccionar todos los atributos.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * 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();

Idiomas adicionales

Si deseas obtener información sobre cómo instalar y usar el SDK de Vertex AI para Python, consulta Cómo usar el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia del SDK de IA de Vertex para Python.

¿Qué sigue?