Mengekspor nilai fitur

Ekspor nilai fitur untuk semua entity dari satu jenis entity ke tabel BigQuery atau bucket Cloud Storage. Anda dapat memilih untuk mengambil snapshot atau mengekspor nilai fitur sepenuhnya. Snapshot menampilkan satu nilai per fitur dibandingkan dengan ekspor penuh, yang dapat menampilkan beberapa nilai per fitur. Anda tidak dapat memilih ID entitas tertentu atau menyertakan beberapa jenis entitas saat mengekspor nilai fitur.

Mengekspor nilai fitur berguna untuk pengarsipan atau melakukan analisis ad hoc pada data Anda. Misalnya, Anda dapat menyimpan snapshot reguler featurestore untuk menyimpan statusnya pada waktu yang berbeda. Jika Anda perlu mendapatkan nilai fitur untuk membuat set data pelatihan, gunakan penyaluran batch.

Perbandingan ringkasan dan ekspor lengkap

Opsi snapshot dan ekspor lengkap memungkinkan Anda membuat kueri data dengan menentukan satu stempel waktu (waktu mulai atau waktu berakhir) atau kedua stempel waktu. Untuk snapshot, Vertex AI Feature Store (Lama) menampilkan nilai fitur terbaru dalam rentang waktu tertentu. Dalam output, stempel waktu yang terkait dengan setiap nilai fitur adalah stempel waktu snapshot (bukan stempel waktu nilai fitur).

Untuk ekspor penuh, Vertex AI Feature Store (Lama) menampilkan semua nilai fitur dalam rentang waktu tertentu. Dalam output, stempel waktu yang terkait dengan setiap nilai fitur adalah stempel waktu fitur (stempel waktu yang ditentukan saat nilai fitur diserap).

Tabel berikut meringkas apa yang ditampilkan Vertex AI Feature Store (Lama) berdasarkan opsi yang Anda pilih dan stempel waktu yang Anda berikan.

Opsi Hanya waktu mulai (inklusif) Hanya waktu berakhir (inklusif) Waktu mulai dan berakhir (inklusif)
Mengambil snapshot Dimulai dari waktu saat ini (saat permintaan diterima), menampilkan nilai terbaru, dan melihat kembali hingga waktu mulai.
Stempel waktu snapshot ditetapkan ke waktu saat ini.
Dimulai dari waktu berakhir, menampilkan nilai terbaru, lalu melihat kembali nilai pertama untuk setiap fitur.
Stempel waktu snapshot ditetapkan ke waktu berakhir yang ditentukan.
Menampilkan nilai terakhir dalam rentang waktu yang ditentukan.
Stempel waktu snapshot ditetapkan ke waktu berakhir yang ditentukan.
Ekspor lengkap Menampilkan semua nilai pada dan setelah waktu mulai dan hingga waktu saat ini (saat permintaan dikirim). Menampilkan semua nilai hingga waktu berakhir, kembali ke nilai pertama untuk setiap fitur. Menampilkan semua nilai dalam rentang waktu yang ditentukan.

Nilai null

Untuk snapshot, jika nilai fitur terbaru adalah null pada stempel waktu tertentu, Vertex AI Feature Store (Lama) akan menampilkan nilai fitur non-null sebelumnya. Jika tidak ada nilai non-null sebelumnya, Vertex AI Feature Store (Lama) akan menampilkan null.

Untuk ekspor lengkap, jika nilai fitur bernilai null pada stempel waktu tertentu, Vertex AI Feature Store (Lama) akan menampilkan null untuk stempel waktu tersebut.

Contoh

Sebagai contoh, anggap Anda memiliki nilai berikut di featurestore, tempat nilai untuk Feature_A dan Feature_B memiliki stempel waktu yang sama:

ID entitas Stempel waktu nilai fitur 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

Mengambil snapshot

Untuk snapshot, Vertex AI Feature Store (Lama) menampilkan nilai berikut berdasarkan nilai stempel waktu yang diberikan:

  • Jika hanya waktu start yang disetel ke T3, snapshot akan menampilkan nilai berikut:
ID entitas Stempel waktu snapshot Feature_A Feature_B
123 CURRENT_TIME A_T4 B_T5
  • Jika hanya waktu akhir yang ditetapkan ke T3, snapshot akan menampilkan nilai berikut:
ID entitas Stempel waktu snapshot Feature_A Feature_B
123 T3 A_T3 B_T1
  • Jika waktu mulai dan akhir disetel ke T2 dan T3, snapshot akan menampilkan nilai berikut:
ID entitas Stempel waktu snapshot Feature_A Feature_B
123 T3 A_T3 NULL

Ekspor lengkap

Untuk ekspor lengkap, Vertex AI Feature Store (Lama) menampilkan nilai berikut berdasarkan nilai stempel waktu yang diberikan:

  • Jika hanya waktu mulai yang ditetapkan ke T3, ekspor penuh akan menampilkan nilai berikut:
ID entitas Stempel waktu nilai fitur Feature_A Feature_B
123 T3 A_T3 NULL
123 T4 A_T4 B_T4
123 T5 NULL B_T5
  • Jika hanya waktu akhir yang ditetapkan ke T3, ekspor lengkap akan menampilkan nilai berikut:
ID entitas Stempel waktu nilai fitur Feature_A Feature_B
123 T1 A_T1 B_T1
123 T2 A_T2 NULL
123 T3 A_T3 NULL
  • Jika waktu mulai dan akhir disetel ke T2 dan T4, ekspor lengkap akan menampilkan nilai berikut:
ID entitas Stempel waktu nilai fitur Feature_A Feature_B
123 T2 A_T2 NULL
123 T3 A_T3 NULL
123 T4 A_T4 B_T4

Mengekspor nilai fitur

Saat mengekspor nilai fitur, Anda memilih fitur mana yang akan dikueri, dan apakah nilai tersebut merupakan snapshot atau ekspor lengkap. Bagian berikut menunjukkan contoh untuk setiap opsi.

Untuk kedua opsi tersebut, tujuan output harus berada di region yang sama dengan featurestore sumber. Misalnya, jika featurestore Anda berada di us-central1, bucket Cloud Storage atau tabel BigQuery tujuan juga harus berada di us-central1.

Mengambil snapshot

Mengekspor nilai fitur terbaru untuk rentang waktu tertentu.

UI web

Gunakan metode lain. Anda tidak dapat mengekspor nilai fitur dari Google Cloud Console.

REST

Untuk mengekspor nilai fitur, kirim permintaan POST menggunakan metode entityTypes.exportFeatureValues.

Contoh berikut menampilkan tabel BigQuery, tetapi Anda juga dapat menghasilkan output ke bucket Cloud Storage. Setiap tujuan output mungkin memiliki beberapa prasyarat sebelum Anda dapat mengirimkan permintaan. Misalnya, jika Anda menentukan nama tabel untuk kolom bigqueryDestination, Anda harus memiliki set data yang ada. Persyaratan ini didokumentasikan dalam referensi API.

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • LOCATION_ID: Region tempat featurestore berada. Contoh, us-central1.
  • PROJECT_ID: Project ID Anda.
  • FEATURESTORE_ID: ID featurestore.
  • ENTITY_TYPE_ID: ID jenis entity.
  • START_TIME dan END_TIME: (Opsional) Jika Anda menentukan waktu mulai saja, menampilkan nilai terbaru yang dimulai dari waktu saat ini (saat permintaan dikirim) dan melihat kembali hingga waktu mulai singkat ini. Jika Anda menentukan waktu berakhir saja, menampilkan nilai terbaru mulai dari waktu berakhir (inklusif) dan melihat kembali ke nilai pertama. Jika Anda menentukan waktu mulai dan waktu berakhir, menampilkan nilai terbaru dalam rentang waktu yang ditentukan (inklusif). Jika Anda tidak menentukan keduanya, nilai terakhir untuk setiap fitur, mulai dari waktu saat ini dan melihat kembali ke nilai pertama.
  • DATASET_NAME: Nama set data BigQuery tujuan.
  • TABLE_NAME: Nama tabel BigQuery tujuan.
  • FEATURE_ID: ID satu atau beberapa fitur. Tentukan satu * (tanda bintang) untuk memilih semua fitur.

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Bahasa tambahan

Untuk mempelajari cara menginstal dan menggunakan Vertex AI SDK untuk Python, lihat Menggunakan Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Vertex AI SDK untuk Python.

Ekspor lengkap

Mengekspor semua nilai fitur dalam rentang waktu tertentu.

UI web

Gunakan metode lain. Anda tidak dapat mengekspor nilai fitur dari Google Cloud Console.

REST

Untuk mengekspor nilai fitur, kirim permintaan POST menggunakan metode entityTypes.exportFeatureValues.

Contoh berikut menampilkan tabel BigQuery, tetapi Anda juga dapat menghasilkan output ke bucket Cloud Storage. Setiap tujuan output mungkin memiliki beberapa prasyarat sebelum Anda dapat mengirimkan permintaan. Misalnya, jika Anda menentukan nama tabel untuk kolom bigqueryDestination, Anda harus memiliki set data yang ada. Persyaratan ini didokumentasikan dalam referensi API.

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • LOCATION_ID: Region tempat featurestore berada. Contoh, us-central1.
  • PROJECT_ID: Project ID Anda.
  • FEATURESTORE_ID: ID featurestore.
  • ENTITY_TYPE_ID: ID jenis entity.
  • START_TIME dan END_TIME: (Opsional) Jika Anda menentukan waktu mulai saja, menampilkan semua nilai antara waktu saat ini (saat permintaan dikirim) dan waktu mulai (inklusif). Jika Anda menentukan waktu berakhir saja, tampilkan semua nilai antara waktu berakhir (inklusif) dan stempel waktu nilai pertama (untuk setiap fitur). Jika Anda menentukan waktu mulai dan waktu berakhir, akan menampilkan semua nilai dalam rentang waktu yang ditentukan (inklusif). Jika Anda tidak menentukan keduanya, semua nilai antara waktu saat ini dan stempel waktu nilai pertama (untuk setiap fitur).
  • DATASET_NAME: Nama set data BigQuery tujuan.
  • TABLE_NAME: Nama tabel BigQuery tujuan.
  • FEATURE_ID: ID satu atau beberapa fitur. Tentukan satu * (tanda bintang) untuk memilih semua fitur.

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Bahasa tambahan

Untuk mempelajari cara menginstal dan menggunakan Vertex AI SDK untuk Python, lihat Menggunakan Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Vertex AI SDK untuk Python.

Langkah berikutnya