Exportar valores de funciones

Exporta los valores de las características de todas las entidades de un solo tipo de entidad a una tabla de BigQuery o a un segmento de Cloud Storage. Puedes obtener una instantánea o exportar los valores de las funciones por completo. Una instantánea devuelve un solo valor por cada elemento, mientras que una exportación completa puede devolver varios valores por elemento. No puede seleccionar IDs de entidad concretos ni incluir varios tipos de entidad al exportar valores de características.

Exportar los valores de las funciones es útil para archivar o para realizar análisis ad hoc de sus datos. Por ejemplo, puedes almacenar copias de seguridad periódicas de tu almacén de características para guardar su estado en diferentes momentos. Si necesitas obtener valores de características para crear un conjunto de datos de entrenamiento, usa batch serving.

Comparación de exportaciones completas y de fragmentos

Tanto la opción de instantánea como la de exportación completa te permiten consultar datos especificando una sola marca de tiempo (la hora de inicio o la de finalización) o ambas. En el caso de las capturas, Vertex AI Feature Store (antigua) devuelve el valor de característica más reciente dentro de un intervalo de tiempo determinado. En la salida, la marca de tiempo asociada a cada valor de la función es la marca de tiempo de la instantánea (no la marca de tiempo del valor de la función).

En el caso de las exportaciones completas, Vertex AI Feature Store (antigua) devuelve todos los valores de las características en un intervalo de tiempo determinado. En la salida, la marca de tiempo asociada a cada valor de la función es la marca de tiempo de la función (la marca de tiempo especificada cuando se ingirió el valor de la función).

En la siguiente tabla se resume lo que devuelve Vertex AI Feature Store (antigua) en función de la opción que elijas y de las marcas de tiempo que proporciones.

Opción Solo hora de inicio (incluida) Solo hora de finalización (incluida) Hora de inicio y de finalización (incluidas)
Captura Empezando por la hora actual (cuando se recibió la solicitud), devuelve el valor más reciente, retrocediendo hasta la hora de inicio.
La marca de tiempo de la captura se establece en la hora actual.
Empezando por la hora de finalización, devuelve el valor más reciente de cada característica, empezando por el primero.
La marca de tiempo de la vista general se establece en la hora de finalización especificada.
Devuelve el valor más reciente del intervalo de tiempo especificado.
La marca de tiempo de la vista general se establece en la hora de finalización especificada.
Exportación completa Devuelve todos los valores a partir de la hora de inicio y hasta la hora actual (cuando se envió la solicitud). Devuelve todos los valores hasta la hora de finalización, retrocediendo hasta el primer valor de cada función. Devuelve todos los valores del intervalo de tiempo especificado.

valores nulos

En el caso de las capturas, si el valor de la característica más reciente es nulo en una marca de tiempo determinada, Vertex AI Feature Store (antigua) devuelve el valor de la característica anterior que no sea nulo. Si no hay valores anteriores no nulos, Vertex AI Feature Store (antigua) devuelve un valor nulo.

En el caso de las exportaciones completas, si el valor de una característica es nulo en una marca de tiempo determinada, Vertex AI Feature Store (antigua) devuelve el valor nulo para esa marca de tiempo.

Ejemplos

Por ejemplo, supongamos que tiene los siguientes valores en un almacén de características, donde los valores de Feature_A y Feature_B comparten la misma marca de tiempo:

ID de entidad Marca de tiempo del valor de la característica 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

Captura

En el caso de las capturas, Vertex AI Feature Store (antigua) devuelve los siguientes valores en función de los valores de marca de tiempo proporcionados:

  • Si solo se asigna el valor T3 a la hora de inicio, la instantánea devuelve los siguientes valores:
ID de entidad Marca de tiempo de la captura Feature_A Feature_B
123 CURRENT_TIME A_T4 B_T5
  • Si solo se asigna el valor T3 a la hora end, la instantánea devuelve los siguientes valores:
ID de entidad Marca de tiempo de la captura Feature_A Feature_B
123 T3 A_T3 B_T1
  • Si las horas de inicio y fin son T2 y T3, la instantánea devuelve los siguientes valores:
ID de entidad Marca de tiempo de la captura Feature_A Feature_B
123 T3 A_T3 NULL

Exportación completa

En el caso de las exportaciones completas, Vertex AI Feature Store (antigua) devuelve los siguientes valores en función de los valores de marca de tiempo proporcionados:

  • Si solo se define la hora de inicio como T3, la exportación completa devuelve los siguientes valores:
ID de entidad Marca de tiempo del valor de la característica Feature_A Feature_B
123 T3 A_T3 NULL
123 T4 A_T4 B_T4
123 T5 NULL B_T5
  • Si solo se define la hora de finalización en T3, la exportación completa devuelve los siguientes valores:
ID de entidad Marca de tiempo del valor de la característica 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 definen como T2 y T4, la exportación completa devuelve los siguientes valores:
ID de entidad Marca de tiempo del valor de la característica Feature_A Feature_B
123 T2 A_T2 NULL
123 T3 A_T3 NULL
123 T4 A_T4 B_T4

Exportar valores de funciones

Cuando exporta valores de funciones, elige qué funciones quiere consultar y si se trata de una instantánea o de una exportación completa. En las siguientes secciones se muestra un ejemplo de cada opción.

En ambos casos, el destino de salida debe estar en la misma región que el almacén de características de origen. Por ejemplo, si tu almacén de características está en us-central1, el segmento de Cloud Storage o la tabla de BigQuery de destino también deben estar en us-central1.

Captura

Exporta los valores de las funciones más recientes de un periodo determinado.

UI web

Utiliza otro método. No puedes exportar valores de funciones desde la Google Cloud consola.

REST

Para exportar valores de funciones, envíe una solicitud POST mediante el método entityTypes.exportFeatureValues.

En el siguiente ejemplo se muestra una tabla de BigQuery, pero también puedes usar un segmento de Cloud Storage. Cada destino de salida puede tener algunos requisitos previos antes de que puedas enviar una solicitud. Por ejemplo, si especifica un nombre de tabla para el campo bigqueryDestination, debe tener un conjunto de datos. Estos requisitos se documentan en la referencia de la API.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: región en la que se encuentra el almacén de características. Por ejemplo, us-central1.
  • PROJECT_ID: tu ID de proyecto.
  • FEATURESTORE_ID: ID del almacén de características.
  • ENTITY_TYPE_ID: ID del tipo de entidad.
  • START_TIME y END_TIME: (opcional) si solo especifica la hora de inicio, se devuelve el valor más reciente a partir de la hora actual (cuando se envía la solicitud) y hacia atrás hasta la hora de inicio. Si solo especificas la hora de finalización, se devuelve el valor más reciente a partir de la hora de finalización (incluida) y se busca el primer valor. Si especificas una hora de inicio y una hora de finalización, devuelve el valor más reciente dentro del intervalo de tiempo especificado (incluidas las horas de inicio y finalización). Si no especifica ninguno, devuelve los valores más recientes de cada función, empezando por la hora actual y retrocediendo hasta el primer valor.
  • DATASET_NAME: nombre del conjunto de datos de BigQuery de destino.
  • TABLE_NAME: nombre de la tabla de BigQuery de destino.
  • FEATURE_ID: ID de una o varias funciones. Especifica un solo * (asterisco) para seleccionar todas las funciones.

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 siguiente:

{
  "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 Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en 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 Node.js instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en 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

Para saber cómo instalar y usar el SDK de Vertex AI para Python, consulta el artículo Usar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API del SDK de Vertex AI para Python.

Exportación completa

Exporta todos los valores de las funciones en un intervalo de tiempo determinado.

UI web

Utiliza otro método. No puedes exportar valores de funciones desde la Google Cloud consola.

REST

Para exportar valores de funciones, envíe una solicitud POST mediante el método entityTypes.exportFeatureValues.

En el siguiente ejemplo se muestra una tabla de BigQuery, pero también puedes usar un segmento de Cloud Storage. Cada destino de salida puede tener algunos requisitos previos antes de que puedas enviar una solicitud. Por ejemplo, si especifica un nombre de tabla para el campo bigqueryDestination, debe tener un conjunto de datos. Estos requisitos se documentan en la referencia de la API.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION_ID: región en la que se encuentra el almacén de características. Por ejemplo, us-central1.
  • PROJECT_ID: .
  • FEATURESTORE_ID: ID del almacén de características.
  • ENTITY_TYPE_ID: ID del tipo de entidad.
  • START_TIME y END_TIME: (opcional) Si solo especifica la hora de inicio, se devuelven todos los valores entre la hora actual (cuando se envía la solicitud) y la hora de inicio (incluida). Si solo especifica la hora de finalización, se devuelven todos los valores entre la hora de finalización (inclusive) y la primera marca de tiempo de valor (de cada característica). Si especificas una hora de inicio y una hora de finalización, se devuelven todos los valores dentro del intervalo de tiempo especificado (incluidas las horas de inicio y finalización). Si no especifica ninguno, se devuelven todos los valores entre la hora actual y la marca de tiempo del primer valor (de cada función).
  • DATASET_NAME: nombre del conjunto de datos de BigQuery de destino.
  • TABLE_NAME: nombre de la tabla de BigQuery de destino.
  • FEATURE_ID: ID de una o varias funciones. Especifica un solo * (asterisco) para seleccionar todas las funciones.

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 siguiente:

{
  "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 Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en 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 Node.js instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en 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

Para saber cómo instalar y usar el SDK de Vertex AI para Python, consulta el artículo Usar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API del SDK de Vertex AI para Python.

Siguientes pasos