Feature Stores verwalten

Sie lernen das Erstellen, Auflisten, Beschreiben, Aktualisieren und Löschen von Featurestores. Ein Feature Store ist der übergeordnete Container für Entitätstypen, Features und Featurewerte.

Online- und Offlinespeicher

Vertex AI Feature Store (Legacy) verwendet zwei Speichermethoden, die als Onlinespeicher und Offlinespeicher klassifiziert sind und unterschiedliche Preise haben. Alle Feature Stores haben Offline- und optional Onlinespeicher.

Die Onlinespeicher behält die neuesten Zeitstempelwerte Ihrer Features bei, um Onlinebereitstellungsanfragen effizient zu verarbeiten. Wenn Sie einen Importjob mithilfe der API ausführen, können Sie den Job steuern, wenn die Daten in den Onlinespeicher geschrieben werden. Durch das Überspringen des Onlinespeichers wird eine Auslastung der Onlinebereitstellungsknoten verhindert. Wenn Sie beispielsweise Backfill-Jobs ausführen, können Sie Schreibvorgänge im Onlinespeicher deaktivieren und nur in den Offlinespeicher schreiben. Weitere Informationen finden Sie in der API-Referenz unter dem Flag disableOnlineServing.

Vertex AI Feature Store (Legacy) verwendet den Offlinespeicher, um Daten zu speichern, bis die Aufbewahrungsdauer abgelaufen ist oder Sie sie löschen. Sie können unbegrenzte Daten im Offlinespeicher speichern. Sie können die Kosten für den Offlinespeicher steuern, indem Sie festlegen, wie viele Daten Sie speichern. Sie können auch das standardmäßige Datenaufbewahrungslimit für den Onlinespeicher für Ihren Feature Store und das Offline-Datenaufbewahrungslimit für einen Entitätstyp überschreiben. Weitere Informationen zu Kontingenten und Limits von Vertex AI Feature Store (Legacy).

Verwenden Sie die Google Cloud Console, um die Menge des aktuell verwendeten Online- und Offlinespeichers anzeigen zu lassen. Sehen Sie sich die Monitoring-Messwerte für den gesamten Onlinespeicher und den gesamten Offlinespeicher Ihres Features Stores an, um Ihre Nutzung zu bestimmen.

Onlinebereitstellungsknoten

Knoten zur Onlinebereitstellung stellen die Rechenressourcen bereit, die zum Speichern und Bereitstellen von Feature-Werten für die Onlinebereitstellung mit niedriger Latenz verwendet werden. Diese Knoten werden immer ausgeführt, auch wenn sie keine Daten bereitstellen. Ihnen wird jede Knotenstunde in Rechnung gestellt.

Das Speicherlimit für Knoten zur Onlinebereitstellung beträgt 5 TB pro Knoten. Weitere Informationen zu Kontingenten und Limits von Vertex AI Feature Store (Legacy).

Die Anzahl der benötigten Online-Bereitstellungsknoten ist direkt proportional zu den folgenden beiden Faktoren:

  • Die Anzahl von Online-Bereitstellungsanfragen (Abfragen pro Sekunde), die der Feature Store empfängt.
  • Die Anzahl der Importjobs, die in den Onlinespeicher schreiben.

Beide Faktoren tragen zur CPU-Auslastung und -Leistung der Knoten bei. Rufen Sie in der Google Cloud Console die Messwerte der folgenden Elemente auf:

  • Abfragen pro Sekunde: Anzahl der Abfragen pro Sekunde für Ihren Feature Store.
  • Knotenzahl: Anzahl Ihrer Onlinebereitstellungsknoten.
  • CPU-Auslastung: CPU-Auslastung Ihrer Knoten.

Wenn die CPU-Auslastung konstant hoch ist, sollten Sie die Anzahl der Onlinebereitstellungsknoten für Ihren Feature Store erhöhen.

Leistung von Onlinebereitstellungsknoten testen

Sie können die Leistung von Onlinebereitstellungsknoten für die Bereitstellung von Echtzeitfeatures testen. Dadurch können Sie dafür sorgen, dass der Featurestore über ausreichende Maschinenressourcen verfügt, um innerhalb vordefinierter QPS- oder Latenzschwellenwerte zu arbeiten. Sie können diese Tests anhand verschiedener Benchmarking-Parameter wie QPS, Latenz und API ausführen. Richtlinien und Best Practices zum Testen der Leistung von Online-Bereitstellungsknoten finden Sie unter Leistung von Online-Bereitstellungsknoten für die Echtzeitbereitstellung testen unter Best Practices für Vertex AI Feature Store (Legacy).

Darüber hinaus können Sie das Open-Source-Tool von Vertex AI Benchmarker verwenden, um die Leistung Ihrer Feature-Store-Ressourcen einem Lasttest zu unterziehen. Das Open-Source-Tool Vertex AI Benchmarker besteht aus einem Python-Befehlszeilentool und einem Java-Worker.

Skalierungsoptionen

Sie können zwischen den folgenden Optionen wechseln, um die Anzahl der Onlinebereitstellungsknoten zu konfigurieren:

  • Autoscaling

    Wenn Sie Autoscaling auswählen, ändert der Feature Store automatisch die Anzahl der Knoten basierend auf der CPU-Auslastung. Beim Autoscaling werden die Trafficmuster überprüft, um die Leistung aufrechtzuerhalten und Ihre Kosten zu optimieren. Dazu werden Knoten hinzugefügt, wenn der Traffic zunimmt, und Knoten entfernt, wenn der Traffic abnimmt.

    Autoscaling funktioniert gut für Trafficmuster, die graduell zu- und abnehmen. Wenn Sie den Vertex AI Feature Store (Legacy) ausgiebig für Trafficmuster verwenden, bei denen häufige Lastschwankungen auftreten, können Sie mit Autoscaling die Kosteneffizienz verbessern.

  • Feste Knotenanzahl zuweisen

    Wenn Sie eine feste Knotenanzahl zuweisen, behält Vertex AI Feature Store (Legacy) unabhängig von den Trafficmustern eine konsistente Anzahl von Knoten bei. Mit der festen Knotenanzahl bleiben die Kosten vorhersehbar und die Knoten sollten eine gute Leistung erzielen, wenn genügend Knoten vorhanden sind, um den Traffic zu verarbeiten. Sie können die feste Knotenanzahl manuell ändern, um Änderungen in den Trafficmustern zu verarbeiten.

Weitere Überlegungen zum Autoscaling

Beim Autoscaling sind vier weitere Punkte zu berücksichtigen:

  • Nachdem der Onlinebereitstellungsknoten hinzugefügt wurde, benötigt der Onlinespeicher Zeit, um die Daten neu auszubalancieren. Es kann bis zu 20 Minuten unter Last dauern, bevor Sie eine signifikante Leistungssteigerung feststellen. Daher kann die Skalierung der Knotenanzahl nicht für kurze Traffic-Bursts helfen. Diese Einschränkung gilt sowohl für manuelles als auch für Autoscaling.

  • Wenn Sie Online-Bereitstellungsanfragen ohne Bereitstellungsknoten an den Featurestore senden, gibt der Vorgang einen Fehler zurück.

Onlinebereitstellung in Ihrem Featurestore deaktivieren

Wenn Sie keine Onlinebereitstellung benötigen und Kosten für Änderungen an Onlinebereitstellungsknoten vermeiden möchten, legen Sie die Anzahl der Onlinebereitstellungsknoten auf null fest. Um die Onlinebereitstellung in Ihrem Featurestore zu deaktivieren, legen Sie folgende Konfiguration fest:

  1. Wenn Sie Autoscaling verwenden, entfernen Sie den scaling-Parameter.

  2. Legen Sie die feste Anzahl von Onlinebereitstellungsknoten auf 0 fest.

Weitere Informationen zum Erstellen eines Feature store finden Sie unter Featurestore erstellen. Weitere Informationen zum Ändern der Konfiguration eines vorhandenen Featurestores finden Sie unter Featurestore aktualisieren.

Wenn Sie die Anzahl der Onlinebereitstellungsknoten auf 0 setzen, wird der gesamte Onlineshop einschließlich der relevanten Daten gelöscht. Wenn Sie Ihren Onlinespeicher vorübergehend deaktivieren und dann wiederherstellen möchten, müssen Sie die gelöschten Daten noch einmal importieren.

Beispiel: Wenn Sie die Anzahl der Onlinebereitstellungsknoten für Ihren Featurestore auf 0 festlegen und dann durch das Festlegen der Knotenanzahl auf 1 oder höher Onlinebereitstellungsknoten bereitstellen, migriert Vertex AI Feature Store (Legacy) die gelöschten Featuredaten nicht in den Onlinespeicher. Wenn Sie Ihren Onlineshop neu befüllen möchten, müssen Sie Ihre Daten noch einmal importieren. Eine Möglichkeit, Ihre Daten neu zu importieren, besteht darin, die Verlaufsdaten vor dem Deaktivieren der Onlinebereitstellungsknoten zu exportieren und dann die exportierten Daten zu importieren, nachdem Sie die Knoten bereitgestellt haben.

Wenn Sie Onlinebereitstellungsknoten bereitstellen, müssen Sie warten, bis der Vorgang abgeschlossen ist, bevor Sie neue Daten importieren. Laufende Datenimportjobs werden erst fortgesetzt, nachdem die Bereitstellung des Knotens für die Onlinebereitstellung abgeschlossen wurde.

Wenn Sie eine Onlinebereitstellungsanfrage ohne Onlinebereitstellungsknoten an den Featurestore senden, gibt die Anfrage einen Fehler zurück.

Feature Store erstellen

Erstellen Sie eine Featurestore-Ressource, die Entitätstypen und Features enthalten soll. Der Standort Ihres Featurestores muss mit dem Standort Ihrer Quelldaten übereinstimmen. Wenn sich Ihr Feature Store beispielsweise in us-central, befindet, können Sie Daten aus Dateien in Cloud Storage-Buckets importieren, die sich am multiregionalen Standort us-central1 oder am multiregionalen Standort "US" befinden. Quelldaten aus biregionalen Buckets werden jedoch nicht unterstützt. Ebenso können Sie für BigQuery Daten aus Tabellen importieren, die sich in us-central1 oder am multiregionalen Standort "US" befinden. Weitere Informationen finden Sie unter Anforderungen an Quelldaten.

Die Verfügbarkeit von Vertex AI Feature Store (Legacy) kann je nach Standort variieren. Weitere Informationen finden Sie unter Featureverfügbarkeit.

Web-UI

Sie können über die Google Cloud Console einen Feature Store erstellen, wenn im Google Cloud-Projekt für die ausgewählte Region noch kein Feature Store erstellt wurde. Wenn für das Projekt und die Region bereits ein Feature Store vorhanden ist, verwenden Sie eine andere Methode.

So erstellen Sie einen Feature Store mit der Google Cloud Console:

  1. Rufen Sie im Bereich "Vertex AI" der Google Cloud Console die Seite Features auf.

    Zur Seite „Features“

  2. Klicken Sie auf Feature Store erstellen.
  3. Geben Sie einen Namen für den Featurestore an.
  4. Wenn Sie die Onlinebereitstellung für den Feature Store aktivieren möchten, klicken Sie auf die Ein/Aus-Schaltfläche Onlinebereitstellung aktivieren und legen Sie die Skalierungsoptionen fest.
    Weitere Informationen zu den Optionen für die Onlinebereitstellung und Skalierung finden Sie unter Onlinebereitstellungsknoten.
  5. Klicken Sie auf Erstellen.

Terraform

Im folgenden Beispiel wird die Terraform-Ressource google_vertex_ai_featurestore verwendet, um einen Feature Store mit einer festen Knotenzahl zu erstellen. Der Name des Feature Stores ist featurestore_xxxxxxxx, wobei xxxxxxxx eine zufällig generierte alphanumerische Kennung ist.

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

# Featurestore name must be unique for the project
resource "random_id" "featurestore_name_suffix" {
  byte_length = 8
}

resource "google_vertex_ai_featurestore" "main" {
  name   = "featurestore_${random_id.featurestore_name_suffix.hex}"
  region = "us-central1"
  labels = {
    environment = "testing"
  }

  online_serving_config {
    fixed_node_count = 1
  }

  force_destroy = true
}

REST

Senden Sie zum Erstellen eines Featurestore eine POST-Anfrage mit der Methode featurestores.create.

Im folgenden Beispiel wird ein Feature Store mit einer festen Knotenzahl von 1 erstellt. Die Knotenzahl gibt die Anzahl der Online-Bereitstellungsknoten an, die Einfluss auf die Anzahl der Online-Bereitstellungsanfragen hat, die der Feature Store verarbeiten kann. Die Latenz kann steigen, wenn die Anzahl der Knoten die Anzahl der eingehenden Anfragen nicht unterstützen kann.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • LOCATION_ID: Region, in der der Featurestore erstellt wird. Beispiel: us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATURESTORE_ID: ID für den Featurestore.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores?featurestoreId=FEATURESTORE_ID

JSON-Text der Anfrage:

{
  "online_serving_config": {
    "fixed_node_count": 1
  },
  "labels": {
    "environment": "testing"
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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?featurestoreId=FEATURESTORE_ID"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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?featurestoreId=FEATURESTORE_ID" | Select-Object -Expand Content

Die Ausgabe sieht in etwa so aus: Sie können OPERATION_ID in der Antwort verwenden, um den Status des Vorgangs abzurufen.

{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeaturestoreOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-02-26T00:44:40.722474Z",
      "updateTime": "2021-02-26T00:44:40.722474Z"
    }
  }
}

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.

from google.cloud import aiplatform


def create_featurestore_sample(
    project: str,
    location: str,
    featurestore_id: str,
    online_store_fixed_node_count: int = 1,
    sync: bool = True,
):

    aiplatform.init(project=project, location=location)

    fs = aiplatform.Featurestore.create(
        featurestore_id=featurestore_id,
        online_store_fixed_node_count=online_store_fixed_node_count,
        sync=sync,
    )

    fs.wait()

    return fs

Python

Die Clientbibliothek für Vertex AI ist bei der Installation des Vertex AI SDK für Python enthalten. Informationen zur Installation des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.

from google.cloud import aiplatform


def create_featurestore_sample(
    project: str,
    featurestore_id: str,
    fixed_node_count: int = 1,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
    timeout: int = 1200,
):
    # The AI Platform services require regional API endpoints, which need to be
    # in the same region or multi-region overlap with the Feature Store location.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform.gapic.FeaturestoreServiceClient(client_options=client_options)
    parent = f"projects/{project}/locations/{location}"
    create_featurestore_request = aiplatform.gapic.CreateFeaturestoreRequest(
        parent=parent,
        featurestore_id=featurestore_id,
        featurestore=aiplatform.gapic.Featurestore(
            online_serving_config=aiplatform.gapic.Featurestore.OnlineServingConfig(
                fixed_node_count=fixed_node_count,
            ),
        ),
    )
    lro_response = client.create_featurestore(request=create_featurestore_request)
    print("Long running operation:", lro_response.operation.name)
    create_featurestore_response = lro_response.result(timeout=timeout)
    print("create_featurestore_response:", create_featurestore_response)

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.CreateFeaturestoreOperationMetadata;
import com.google.cloud.aiplatform.v1.CreateFeaturestoreRequest;
import com.google.cloud.aiplatform.v1.Featurestore;
import com.google.cloud.aiplatform.v1.Featurestore.OnlineServingConfig;
import com.google.cloud.aiplatform.v1.Featurestore.OnlineServingConfig.Scaling;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceClient;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceSettings;
import com.google.cloud.aiplatform.v1.LocationName;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class CreateFeaturestoreSample {

  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";
    int minNodeCount = 1;
    int maxNodeCount = 5;
    String location = "us-central1";
    String endpoint = "us-central1-aiplatform.googleapis.com:443";
    int timeout = 900;
    createFeaturestoreSample(
        project, featurestoreId, minNodeCount, maxNodeCount, location, endpoint, timeout);
  }

  static void createFeaturestoreSample(
      String project,
      String featurestoreId,
      int minNodeCount,
      int maxNodeCount,
      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)) {

      OnlineServingConfig.Builder builderValue =
          OnlineServingConfig.newBuilder()
              .setScaling(
                  Scaling.newBuilder().setMinNodeCount(minNodeCount).setMaxNodeCount(maxNodeCount));
      Featurestore featurestore =
          Featurestore.newBuilder().setOnlineServingConfig(builderValue).build();
      String parent = LocationName.of(project, location).toString();

      CreateFeaturestoreRequest createFeaturestoreRequest =
          CreateFeaturestoreRequest.newBuilder()
              .setParent(parent)
              .setFeaturestore(featurestore)
              .setFeaturestoreId(featurestoreId)
              .build();

      OperationFuture<Featurestore, CreateFeaturestoreOperationMetadata> featurestoreFuture =
          featurestoreServiceClient.createFeaturestoreAsync(createFeaturestoreRequest);
      System.out.format(
          "Operation name: %s%n", featurestoreFuture.getInitialFuture().get().getName());
      System.out.println("Waiting for operation to finish...");
      Featurestore featurestoreResponse = featurestoreFuture.get(timeout, TimeUnit.SECONDS);
      System.out.println("Create Featurestore Response");
      System.out.format("Name: %s%n", featurestoreResponse.getName());
    }
  }
}

Node.js

Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * 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 minNodeCount = <MINIMUM_NO_OF_NODES>;
// const maxNodeCount = <MAXIMUM_NO_OF_NODES>;
// 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').v1beta1;

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

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

async function createFeaturestore() {
  // Configure the parent resource
  const parent = `projects/${project}/locations/${location}`;

  const featurestore = {
    onlineServingConfig: {
      scaling: {
        minNodeCount: minNodeCount,
        maxNodeCount: maxNodeCount,
      },
    },
  };

  const request = {
    parent: parent,
    featurestore: featurestore,
    featurestoreId: featurestoreId,
  };

  // Create Featurestore request
  const [operation] = await featurestoreServiceClient.createFeaturestore(
    request,
    {timeout: Number(timeout)}
  );
  const [response] = await operation.promise();

  console.log('Create featurestore response');
  console.log(`Name : ${response.name}`);
  console.log('Raw response:');
  console.log(JSON.stringify(response, null, 2));
}
createFeaturestore();

Einen Feature Store erstellen, der einen CMEK verwendet

Wenn Sie noch keinen CMEK (vom Kunden verwalteter Verschlüsselungsschlüssel) haben, verwenden Sie den Cloud Key Management Service, um einen vom Kunden verwalteten Verschlüsselungsschlüssel zu konfigurieren und Berechtigungen einzurichten. Im folgenden Beispiel wird ein Feature Store erstellt, der einen CMEK-Schlüssel verwendet.

Wenn Vertex AI die Berechtigung für den zugehörigen CMEK-Schlüssel verliert, sind alle Ressourcen und Werte in Featurestores, die mit diesem Schlüssel verschlüsselt wurden, nicht mehr zugänglich bis Vertex AI diesen Schlüssel wieder verwenden kann.

Wenn Vertex AI nach 30 Tagen noch immer keinen Zugriff auf den CMEK-Schlüssel hat, löscht Vertex AI alle Feature Stores, die mit diesem Schlüssel verschlüsselt wurden. Beim Erstellen neuer Feature-Stores können Sie die Namen dieser Feature-Stores nicht wiederverwenden.

Web-UI

Verwenden Sie eine andere Methode. Sie können über die Google Cloud Console keinen Featurestore erstellen.

REST

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • LOCATION_ID: Region, in der der Featurestore erstellt wird. Beispiel: us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATURESTORE_ID: ID für den Featurestore.
  • CMEK_PROJECT: die Projekt-ID oder Projektnummer, die Ihren CMEK enthält.
  • KEY_RING: Der Name des Cloud Key Management Service-Schlüsselbunds, in dem sich Ihr Verschlüsselungsschlüssel befindet.
  • KEY_NAME: Der Name des zu verwendenden Verschlüsselungsschlüssels.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores?featurestoreId=FEATURESTORE_ID

JSON-Text der Anfrage:

{
  "online_serving_config": {
    "fixed_node_count": 1
  },
  "encryption_spec":{
    "kms_key_name": "projects/CMEK_PROJECT/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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?featurestoreId=FEATURESTORE_ID"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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?featurestoreId=FEATURESTORE_ID" | Select-Object -Expand Content

Die Ausgabe sieht in etwa so aus: Sie können OPERATION_ID in der Antwort verwenden, um den Status des Vorgangs abzurufen.

{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeaturestoreOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-02-26T00:44:40.722474Z",
      "updateTime": "2021-02-26T00:44:40.722474Z"
    }
  }
}

Feature Stores auflisten

Alle Featurestores in einem Projekt auflisten

Web-UI

  1. Rufen Sie im Bereich "Vertex AI" der Google Cloud Console die Seite Features auf.

    Zur Seite „Features“

  2. Wählen Sie eine Region aus der Drop-down-Liste Region aus.
  3. In der Spalte Featurestore der Funktionstabelle werden die Featurestores in Ihrem Projekt für die ausgewählte Region angezeigt.

REST

Damit Sie Featurestores für eine bestimmte Region in Ihrem Projekt auflisten können, senden Sie eine GET-Anfrage mit der Methode featurestores.list.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • LOCATION_ID: Die Region, in der sich der Featurestore befindet, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.

HTTP-Methode und URL:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "featurestores": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/test",
      "createTime": "2021-02-26T00:44:44.216805Z",
      "updateTime": "2021-02-26T00:44:44.364916Z",
      "etag": "AMEw9yNL0s7qZh8lZVZ5T3BEuhoEgFR7JmjbbCSAkRZjeKDXkkIYnxxA4POe5BWT8cCn",
      "labels": {
        "environment": "testing"
      },
      "onlineServingConfig": {
        "fixedNodeCount": 2
      },
      "state": "STABLE"
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/featurestore_demo",
      "createTime": "2021-02-25T00:39:40.598781Z",
      "updateTime": "2021-02-25T00:39:40.744038Z",
      "etag": "AMEw9yO_e0vm-9W_yeCz4rJm-XnnEMYQ-vQesevxya_sz-FckuysnDwo3cEXHdWWSeda",
      "labels": {
        "environment": "testing"
      },
      "onlineServingConfig": {
        "fixedNodeCount": 3
      },
      "state": "STABLE"
    }
  ]
}

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.cloud.aiplatform.v1.Featurestore;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceClient;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceSettings;
import com.google.cloud.aiplatform.v1.ListFeaturestoresRequest;
import com.google.cloud.aiplatform.v1.LocationName;
import java.io.IOException;

public class ListFeaturestoresSample {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "YOUR_PROJECT_ID";
    String location = "us-central1";
    String endpoint = "us-central1-aiplatform.googleapis.com:443";
    listFeaturestoresSample(project, location, endpoint);
  }

  static void listFeaturestoresSample(String project, String location, String endpoint)
      throws IOException {
    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)) {

      ListFeaturestoresRequest listFeaturestoresRequest =
          ListFeaturestoresRequest.newBuilder()
              .setParent(LocationName.of(project, location).toString())
              .build();

      System.out.println("List Featurestores Response");
      for (Featurestore element :
          featurestoreServiceClient.listFeaturestores(listFeaturestoresRequest).iterateAll()) {
        System.out.println(element);
      }
    }
  }
}

Node.js

Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

// const project = 'YOUR_PROJECT_ID';
// 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 listFeaturestores() {
  // Configure the parent resource
  const parent = `projects/${project}/locations/${location}`;

  const request = {
    parent: parent,
  };

  // List featurestores request
  const [response] = await featurestoreServiceClient.listFeaturestores(
    request,
    {timeout: Number(timeout)}
  );

  console.log('List featurestores response');
  console.log('Raw response:');
  console.log(JSON.stringify(response, null, 2));
}
listFeaturestores();

Weitere Sprachen

Informationen zum Installieren und Verwenden des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.

Feature Store-Details ansehen

Rufen Sie Details zu einem Featurestore ab, z. B. den Namen und die Konfiguration der Onlinebereitstellung. Wenn Sie die Google Cloud Console verwenden, können Sie auch Cloud Monitoring-Messwerte für Featurestores anzeigen.

Web-UI

  1. Rufen Sie im Bereich "Vertex AI" der Google Cloud Console die Seite Features auf.

    Zur Seite „Features“

  2. Wählen Sie eine Region aus der Drop-down-Liste Region aus.
  3. Sehen Sie sich in der Funktionstabelle die Feature Store-Spalte an und suchen Sie den Feature Store, dessen Informationen Sie aufrufen möchten.
  4. Klicken Sie auf den Namen des Featurestores, um die zugehörigen Monitoring-Messwerte aufzurufen.
  5. Klicken Sie auf den Tab Attribute, um die Online-Bereitstellungskonfiguration des Feature Store aufzurufen.

REST

Wenn Sie Details zu einem einzelnen Featurestore abrufen möchten, senden Sie eine GET-Anfrage mit der Methode featurestores.get.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • LOCATION_ID: Die Region, in der sich der Featurestore befindet, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATURESTORE_ID: ID des Featurestores.

HTTP-Methode und URL:

GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID",
  "createTime": "2021-02-25T00:39:40.598781Z",
  "updateTime": "2021-02-25T00:39:40.744038Z",
  "etag": "AMEw9yNy_b4IaMIvw1803ZT38cpUtjfwlyLkR709oBCY6pQrm6dHophLcqhrvsNqkQQZ",
  "onlineServingConfig": {
    "fixedNodeCount": 3
  },
  "state": "STABLE"
}

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.cloud.aiplatform.v1.Featurestore;
import com.google.cloud.aiplatform.v1.FeaturestoreName;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceClient;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceSettings;
import com.google.cloud.aiplatform.v1.GetFeaturestoreRequest;
import java.io.IOException;

public class GetFeaturestoreSample {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "YOUR_PROJECT_ID";
    String featurestoreId = "YOUR_FEATURESTORE_ID";
    String location = "us-central1";
    String endpoint = "us-central1-aiplatform.googleapis.com:443";
    getFeaturestoreSample(project, featurestoreId, location, endpoint);
  }

  static void getFeaturestoreSample(
      String project, String featurestoreId, String location, String endpoint) throws IOException {

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

      GetFeaturestoreRequest getFeaturestoreRequest =
          GetFeaturestoreRequest.newBuilder()
              .setName(FeaturestoreName.of(project, location, featurestoreId).toString())
              .build();

      Featurestore featurestore = featurestoreServiceClient.getFeaturestore(getFeaturestoreRequest);
      System.out.println("Get Featurestore Response");
      System.out.println(featurestore);
    }
  }
}

Node.js

Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * 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 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 getFeaturestore() {
  // Configure the parent resource
  const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`;

  const request = {
    name: name,
  };

  // Get Featurestore request
  const [response] = await featurestoreServiceClient.getFeaturestore(
    request,
    {timeout: Number(timeout)}
  );

  console.log('Get featurestore response');
  console.log(`Name : ${response.name}`);
  console.log('Raw response:');
  console.log(JSON.stringify(response, null, 2));
}
getFeaturestore();

Weitere Sprachen

Informationen zum Installieren und Verwenden des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.

Feature Store aktualisieren

Featurestore aktualisieren, um beispielsweise die Anzahl der Online-Bereitstellungsknoten zu ändern oder Labels in einem Featurestore zu aktualisieren.

Web-UI

Sie können nur die Anzahl der Onlinebereitstellungsknoten aktualisieren. Verwenden Sie die API, um Labels zu aktualisieren.

  1. Rufen Sie im Bereich "Vertex AI" der Google Cloud Console die Seite Features auf.

    Zur Seite „Features“

  2. Wählen Sie eine Region aus der Drop-down-Liste Region aus.
  3. Sehen Sie sich in der Funktionstabelle die Spalte Featurestore an und klicken Sie auf den Namen des zu aktualisierenden Feature Store.
  4. Klicken Sie auf Konfiguration bearbeiten, um den Bereich Feature Store-Konfiguration bearbeiten zu öffnen.
  5. Bearbeiten Sie die Feature Store-Konfiguration.
  6. Klicken Sie auf Aktualisieren, um die Änderungen zu übernehmen.

REST

Wenn Sie einen Featurestore aktualisieren möchten, senden Sie eine PATCH-Anfrage mit der Methode featurestores.patch.

Im folgenden Beispiel wird die Anzahl der Onlinebereitstellungsknoten für den Featurestore auf 2 aktualisiert. Alle anderen Einstellungen bleiben unverändert.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • LOCATION_ID: Die Region, in der sich der Featurestore befindet, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATURESTORE_ID: ID des Featurestores.

HTTP-Methode und URL:

PATCH https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID

JSON-Text der Anfrage:

{
  "online_serving_config": {
    "fixed_node_count": 2
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X PATCH \
-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"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-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" | Select-Object -Expand Content

Die Ausgabe sieht in etwa so aus: Sie können OPERATION_ID in der Antwort verwenden, um den Status des Vorgangs abzurufen.

{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateFeaturestoreOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-03-18T21:12:08.373664Z",
      "updateTime": "2021-03-18T21:12:08.373664Z"
    }
  }
}

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Java Schritten zur Einrichtung in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.Featurestore;
import com.google.cloud.aiplatform.v1.Featurestore.OnlineServingConfig;
import com.google.cloud.aiplatform.v1.Featurestore.OnlineServingConfig.Scaling;
import com.google.cloud.aiplatform.v1.FeaturestoreName;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceClient;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceSettings;
import com.google.cloud.aiplatform.v1.UpdateFeaturestoreOperationMetadata;
import com.google.cloud.aiplatform.v1.UpdateFeaturestoreRequest;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class UpdateFeaturestoreSample {

  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";
    int minNodeCount = 2;
    int maxNodeCount = 4;
    String location = "us-central1";
    String endpoint = "us-central1-aiplatform.googleapis.com:443";
    int timeout = 300;
    updateFeaturestoreSample(
        project, featurestoreId, minNodeCount, maxNodeCount, location, endpoint, timeout);
  }

  static void updateFeaturestoreSample(
      String project,
      String featurestoreId,
      int minNodeCount,
      int maxNodeCount,
      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)) {

      OnlineServingConfig.Builder builderValue =
          OnlineServingConfig.newBuilder()
              .setScaling(
                  Scaling.newBuilder().setMinNodeCount(minNodeCount).setMaxNodeCount(maxNodeCount));
      Featurestore featurestore =
          Featurestore.newBuilder()
              .setName(FeaturestoreName.of(project, location, featurestoreId).toString())
              .setOnlineServingConfig(builderValue)
              .build();

      UpdateFeaturestoreRequest request =
          UpdateFeaturestoreRequest.newBuilder().setFeaturestore(featurestore).build();

      OperationFuture<Featurestore, UpdateFeaturestoreOperationMetadata> updateFeaturestoreFuture =
          featurestoreServiceClient.updateFeaturestoreAsync(request);
      System.out.format(
          "Operation name: %s%n", updateFeaturestoreFuture.getInitialFuture().get().getName());
      System.out.println("Waiting for operation to finish...");
      Featurestore featurestoreResponse = updateFeaturestoreFuture.get(timeout, TimeUnit.SECONDS);
      System.out.println("Update Featurestore Response");
      System.out.format("Name: %s%n", featurestoreResponse.getName());
    }
  }
}

Node.js

Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * 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 minNodeCount = <MINIMUM_NO_OF_NODES>;
// const maxNodeCount = <MAXIMUM_NO_OF_NODES>;
// 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').v1beta1;

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

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

async function updateFeaturestore() {
  // Configure the parent resource
  const parent = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`;

  const featurestore = {
    name: parent,
    onlineServingConfig: {
      scaling: {
        minNodeCount: minNodeCount,
        maxNodeCount: maxNodeCount,
      },
    },
  };

  const request = {
    featurestore: featurestore,
  };

  // Update Featurestore request
  const [operation] = await featurestoreServiceClient.updateFeaturestore(
    request,
    {timeout: Number(timeout)}
  );
  const [response] = await operation.promise();

  console.log('Update featurestore response');
  console.log(`Name : ${response.name}`);
  console.log('Raw response:');
  console.log(JSON.stringify(response, null, 2));
}
updateFeaturestore();

Weitere Sprachen

Informationen zum Installieren und Verwenden des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.

Feature Store löschen

Feature Store löschen. Wenn der Feature Store vorhandene Entitätstypen und Features enthält, aktivieren Sie den force-Abfrageparameter, um den Feature Store und dessen gesamten Inhalt zu löschen.

Web-UI

Verwenden Sie eine andere Methode. Sie können Featurestores nicht über die Google Cloud Console löschen.

REST

Senden Sie eine DELETE-Anfrage mit der Methode featurestores.delete, um einen Featurestore und seinen gesamten Inhalt zu löschen.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • LOCATION_ID: Die Region, in der sich der Featurestore befindet, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.
  • FEATURESTORE_ID: ID des Featurestores.
  • BOOLEAN: Gibt an, ob der Feature Store gelöscht wird, selbst wenn er Entitätstypen und Features enthält. Der force-Abfrageparameter ist optional und standardmäßig false.

HTTP-Methode und URL:

DELETE https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID?force=BOOLEAN

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID?force=BOOLEAN"

PowerShell

Führen Sie folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID?force=BOOLEAN" | Select-Object -Expand Content

Sie müssten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATIONS_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-05-03T17:50:21.813112Z",
      "updateTime": "2021-05-03T17:50:21.813112Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.

from google.cloud import aiplatform


def delete_featurestore_sample(
    project: str,
    location: str,
    featurestore_name: str,
    sync: bool = True,
    force: bool = True,
):

    aiplatform.init(project=project, location=location)

    fs = aiplatform.featurestore.Featurestore(featurestore_name=featurestore_name)
    fs.delete(sync=sync, force=force)

Python

Die Clientbibliothek für Vertex AI ist bei der Installation des Vertex AI SDK für Python enthalten. Informationen zur Installation des Vertex AI SDK für Python finden Sie unter Vertex AI SDK für Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI SDK for Python API.

from google.cloud import aiplatform


def delete_featurestore_sample(
    project: str,
    featurestore_id: str,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
    timeout: int = 1200,
):
    # The AI Platform services require regional API endpoints, which need to be
    # in the same region or multi-region overlap with the Feature Store location.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform.gapic.FeaturestoreServiceClient(client_options=client_options)
    name = client.featurestore_path(
        project=project, location=location, featurestore=featurestore_id
    )
    response = client.delete_featurestore(name=name)
    print("Long running operation:", response.operation.name)
    delete_featurestore_response = response.result(timeout=timeout)
    print("delete_featurestore_response:", delete_featurestore_response)

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.DeleteFeaturestoreRequest;
import com.google.cloud.aiplatform.v1.DeleteOperationMetadata;
import com.google.cloud.aiplatform.v1.FeaturestoreName;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceClient;
import com.google.cloud.aiplatform.v1.FeaturestoreServiceSettings;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class DeleteFeaturestoreSample {

  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";
    boolean useForce = true;
    String location = "us-central1";
    String endpoint = "us-central1-aiplatform.googleapis.com:443";
    int timeout = 60;
    deleteFeaturestoreSample(project, featurestoreId, useForce, location, endpoint, timeout);
  }

  static void deleteFeaturestoreSample(
      String project,
      String featurestoreId,
      boolean useForce,
      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)) {

      DeleteFeaturestoreRequest deleteFeaturestoreRequest =
          DeleteFeaturestoreRequest.newBuilder()
              .setName(FeaturestoreName.of(project, location, featurestoreId).toString())
              .setForce(useForce)
              .build();

      OperationFuture<Empty, DeleteOperationMetadata> operationFuture =
          featurestoreServiceClient.deleteFeaturestoreAsync(deleteFeaturestoreRequest);
      System.out.format("Operation name: %s%n", operationFuture.getInitialFuture().get().getName());
      System.out.println("Waiting for operation to finish...");
      operationFuture.get(timeout, TimeUnit.SECONDS);

      System.out.format("Deleted Featurestore.");
    }
  }
}

Node.js

Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * 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 force = <BOOLEAN>;
// 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 deleteFeaturestore() {
  // Configure the name resource
  const name = `projects/${project}/locations/${location}/featurestores/${featurestoreId}`;

  const request = {
    name: name,
    force: Boolean(force),
  };

  // Delete Featurestore request
  const [operation] = await featurestoreServiceClient.deleteFeaturestore(
    request,
    {timeout: Number(timeout)}
  );
  const [response] = await operation.promise();

  console.log('Delete featurestore response');
  console.log('Raw response:');
  console.log(JSON.stringify(response, null, 2));
}
deleteFeaturestore();

Nächste Schritte