Gérer les magasins de caractéristiques

Découvrez comment créer, lister, décrire, modifier et supprimer des magasins de caractéristiques. Un magasin de caractéristiques est le conteneur de premier niveau pour les types d'entités, les caractéristiques et les valeurs de caractéristiques.

Stockage en ligne et hors connexion

Vertex AI Feature Store (ancien) utilise deux méthodes de stockage classées comme stockage en ligne et stockage hors connexion, qui sont facturées différemment. Tous les magasins de caractéristiques disposent d'un stockage hors connexion et, éventuellement, d'un stockage en ligne.

Le stockage en ligne conserve les dernières valeurs de code temporel de vos caractéristiques afin de gérer efficacement les requêtes de livraison en ligne. Lorsque vous exécutez un job d'importation en utilisant l'API, vous pouvez choisir d'écrire ou non les données dans le magasin en ligne. Le fait d'omettre le magasin en ligne évite toute charge sur les nœuds de livraison en ligne. Par exemple, lorsque vous exécutez des jobs de remplissage, vous pouvez désactiver les opérations d'écriture dans le magasin en ligne et écrire uniquement dans le magasin hors connexion. Pour plus d'informations, consultez la section sur l'option disableOnlineServing dans la documentation de référence de l'API.

Vertex AI Feature Store (ancien) utilise le stockage hors connexion pour stocker les données jusqu'à ce qu'elles atteignent leur limite de conservation ou jusqu'à ce que vous les supprimiez. Vous pouvez stocker des données en quantité illimitée dans le magasin hors connexion. Vous pouvez contrôler les coûts de stockage hors connexion en gérant la quantité de données que vous conservez. Vous pouvez également remplacer la limite par défaut de conservation des données du magasin en ligne pour votre magasin de caractéristiques et la limite de conservation des données hors connexion pour un type d'entité. En savoir plus sur les quotas et limites de Vertex AI Feature Store (ancien)

Utilisez la console Google Cloud pour afficher les quantités d'espace de stockage en ligne et hors connexion que vous utilisez actuellement. Affichez les métriques de surveillance Espace de stockage en ligne total et Espace de stockage hors connexion total de votre magasin de caractéristiques afin de déterminer votre utilisation de l'espace de stockage.

Nœuds de livraison en ligne

Les nœuds de livraison en ligne fournissent les ressources de calcul permettant de stocker et de livrer les valeurs de caractéristiques pour une livraison en ligne à faible latence. Ces nœuds sont toujours en cours d'exécution, même lorsqu'ils ne livrent pas de données. Vous êtes facturé pour chaque heure-nœud.

La limite de stockage pour les nœuds de livraison en ligne est de 5 To par nœud. En savoir plus sur les quotas et limites de Vertex AI Feature Store (ancien)

Le nombre de nœuds de livraison en ligne dont vous avez besoin est directement proportionnel aux deux facteurs suivants :

  • Nombre de requêtes de livraison en ligne (requêtes par seconde) reçues par le magasin de caractéristiques.
  • Nombre de jobs d'importation qui écrivent dans l'espace de stockage en ligne.

Ces deux facteurs contribuent à l'utilisation du processeur et aux performances des nœuds. Dans la console Google Cloud , affichez les métriques suivantes :

  • Requêtes par seconde : nombre de requêtes par seconde dans votre magasin de caractéristiques.
  • Nombre de nœuds : nombre de nœuds de livraison en ligne.
  • Utilisation du processeur : utilisation de vos nœuds par le processeur.

Si l'utilisation du processeur est systématiquement élevée, envisagez d'augmenter le nombre de nœuds de livraison en ligne de votre magasin de caractéristiques.

Tester les performances des nœuds de livraison en ligne

Vous pouvez tester les performances des nœuds de livraison en ligne pour la livraison de caractéristiques en temps réel. Cela vous permet de vous assurer que le magasin de caractéristiques dispose de suffisamment de ressources de machine pour fonctionner dans les limites de seuils de RPS ou de latence prédéterminés. Vous pouvez effectuer ces tests en fonction de divers paramètres d'analyse comparative, tels que le RPS, la latence et l'API. Afin d'obtenir des instructions et des bonnes pratiques pour tester les performances des nœuds de livraison en ligne, consultez la section Tester les performances des nœuds de livraison en ligne pour la livraison en temps réel de la page Bonnes pratiques pour Vertex AI Feature Store (ancien).

Vous pouvez également utiliser l'outil Open Source Vertex AI Benchmarker pour effectuer un test de charge des performances de vos ressources de magasin de caractéristiques. L'outil Open Source Vertex AI Benchmarker comprend un outil de ligne de commande Python et un nœud de calcul Java.

Options de scaling

Vous pouvez basculer entre les options suivantes pour configurer le nombre de nœuds de livraison en ligne :

  • Autoscaling

    Si vous choisissez l'autoscaling, le magasin de caractéristiques modifie automatiquement le nombre de nœuds en fonction de l'utilisation du processeur. L'autoscaling analyse les schémas de trafic afin de maintenir les performances et d'optimiser vos coûts en ajoutant ou en supprimant des nœuds lorsque le trafic augmente ou diminue, respectivement.

    L'autoscaling fonctionne bien avec les schémas de trafic caractérisés par une croissance et une diminution progressives de la quantité de trafic. Si vous utilisez fréquemment Vertex AI Feature Store (ancien) pour des schémas de trafic qui connaissent des fluctuations de charge fréquentes, utilisez l'autoscaling pour optimiser les coûts.

  • Attribuer un nombre fixe de nœuds

    Si vous allouez un nombre fixe de nœuds, Vertex AI Feature Store (ancien) conserve un nombre cohérent de nœuds, quels que soient les schémas de trafic. Utiliser un nombre fixe de nœuds permet de maintenir des coûts prévisibles et des performances correctes, tant que le nombre de nœuds est suffisant pour gérer le trafic. Vous pouvez modifier manuellement le nombre fixe de nœuds afin de gérer les variations des schémas de trafic.

Informations complémentaires sur l'autoscaling

Si vous choisissez l'autoscaling, vous devez tenir compte des quatre points supplémentaires suivants :

  • Après avoir ajouté des nœuds de livraison en ligne, le magasin en ligne a besoin de temps pour rééquilibrer les données. Il peut s'écouler jusqu'à 20 minutes avant que vous ne constatiez une amélioration significative des performances. Par conséquent, le scaling du nombre de nœuds peut ne pas être efficace pour les pics de trafic soudains. Cette limitation s'applique à la fois au scaling manuel et à l'autoscaling.

  • Si vous envoyez des requêtes de livraison en ligne au magasin de caractéristiques sans nœuds de livraison en ligne, l'opération renvoie une erreur.

Désactiver la livraison en ligne dans votre magasin de caractéristiques

Si vous n'avez pas besoin de la livraison en ligne et que vous souhaitez éviter que des frais ne soient facturés pour les nœuds de livraison en ligne, définissez le nombre de nœuds correspondant sur zéro. Pour désactiver la livraison en ligne dans votre magasin de caractéristiques, définissez la configuration suivante :

  1. Si vous utilisez l'autoscaling, supprimez le paramètre scaling.

  2. Définissez le nombre fixe de nœuds de livraison en ligne sur 0.

Pour découvrir comment créer un magasin de caractéristiques, consultez Créer un magasin de caractéristiques. Pour découvrir comment modifier la configuration d'un magasin de caractéristiques existant, consultez Modifier un magasin de caractéristiques.

Si vous définissez le nombre de nœuds de livraison en ligne sur 0, l'ensemble du magasin en ligne, y compris ses données, est supprimé. Si vous souhaitez désactiver temporairement votre magasin en ligne, puis le restaurer, vous devrez importer à nouveau les données supprimées.

Par exemple, si vous définissez le nombre de nœuds de livraison en ligne sur 0 pour votre magasin de caractéristiques, puis que vous provisionnez des nœuds de livraison en ligne en définissant le nombre de nœuds sur 1 ou plus, Vertex AI Feature Store (ancien) ne migre pas les données des caractéristiques supprimées vers le magasin en ligne. Pour recréer votre magasin en ligne, vous devez importer à nouveau vos données. Pour importer à nouveau vos données, exportez les données historiques avant de désactiver les nœuds de livraison en ligne, puis importez les données exportées après avoir provisionné les nœuds.

Lorsque vous provisionnez des nœuds de livraison en ligne, vous devez attendre la fin de l'opération avant d'importer de nouvelles données. Les jobs d'importation en cours ne reprennent qu'une fois le provisionnement des nœuds de livraison en ligne terminé.

Si vous envoyez une requête de livraison en ligne au magasin de caractéristiques sans nœuds de livraison en ligne, la requête affiche une erreur.

Créer un magasin de caractéristiques

Créez une ressource de magasin de caractéristiques pour contenir les types d'entités et les caractéristiques. L'emplacement de votre magasin de caractéristiques doit se trouver dans la même zone que vos données sources. Par exemple, si votre magasin de caractéristiques se trouve dans us-central,, vous pouvez importer des données à partir de fichiers se trouvant dans des buckets Cloud Storage situés dans us-central1 ou dans l'emplacement multirégional États-Unis (mais les données sources provenant de buckets birégionaux ne sont pas acceptées). De même, pour BigQuery, vous pouvez importer des données issues de tables situées dans us-central1 ou dans l'emplacement multirégional États-Unis. Pour en savoir plus, consultez Exigences liées aux données sources.

La disponibilité de Vertex AI Feature Store (ancien) peut varier selon l'emplacement. Pour en savoir plus, consultez Fonctionnalités disponibles.

UI Web

Vous pouvez créer un magasin de caractéristiques à l'aide de la console Google Cloud si aucun magasin de caractéristiques n'a été créé dans le projet Google Cloud pour la région sélectionnée. Si un magasin de caractéristiques existe déjà pour le projet et la région, utilisez une autre méthode.

Pour créer un magasin de caractéristiques à l'aide de la console Google Cloud  :

  1. Dans la section Vertex AI de la console Google Cloud , accédez à la page Caractéristiques.

    Accéder à la page "Caractéristiques"

  2. Cliquez sur Créer un magasin de caractéristiques.
  3. Spécifiez le nom du magasin de caractéristiques.
  4. Si vous souhaitez activer la livraison en ligne pour le magasin de caractéristiques, cliquez sur le bouton Activer la livraison en ligne et définissez les options de scaling.
    Pour en savoir plus sur les options de livraison en ligne et de scaling, consultez Nœuds de livraison en ligne.
  5. Cliquez sur Créer.

Terraform

L'exemple suivant utilise la ressource Terraform google_vertex_ai_featurestore pour créer un magasin de caractéristiques avec un nombre fixe de nœuds. Le nom du magasin de caractéristiques est featurestore_xxxxxxxx, où xxxxxxxx est un identifiant alphanumérique généré de manière aléatoire.

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.

# 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

Pour créer un magasin de caractéristiques, envoyez une requête POST à l'aide de la méthode featurestores.create.

L'exemple suivant crée un magasin de caractéristiques avec un nombre fixe de nœuds de 1. Le nombre de nœuds spécifie le nombre de nœuds de livraison en ligne, ce qui affecte le nombre de requêtes de livraison en ligne que le magasin de caractéristiques peut gérer. La latence peut augmenter si le nombre de nœuds ne peut pas accepter le nombre de requêtes entrantes.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • LOCATION_ID : région dans laquelle le magasin de caractéristiques est créé. Par exemple : us-central1.
  • PROJECT_ID : ID de votre projet.
  • FEATURESTORE_ID : ID du magasin de caractéristiques.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Un résultat semblable aux lignes suivantes doit s'afficher. Vous pouvez utiliser OPERATION_ID dans la réponse pour obtenir l'état de l'opération.

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

SDK Vertex AI pour Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.

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

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Java.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Node.js.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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 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();

Créer un magasin de caractéristiques qui utilise une clé CMEK

Avant de commencer, si vous ne disposez pas d'une clé CMEK (clé de chiffrement gérée par le client), utilisez Cloud Key Management Service pour configurer une clé de chiffrement gérée par le client et définir des autorisations. L'exemple suivant crée un magasin de caractéristiques qui utilise une clé CMEK.

Si Vertex AI perd l'autorisation d'utiliser la clé CMEK associée, toutes les ressources et valeurs des magasins de caractéristiques chiffrés par cette clé deviennent inaccessibles jusqu'à ce que Vertex AI puisse réutiliser cette clé.

Après 30 jours, si Vertex AI n'a toujours pas accès à la clé CMEK, tous les magasins de caractéristiques chiffrés avec cette clé sont supprimés par Vertex AI. Lorsque vous créez des magasins de caractéristiques, vous ne pouvez pas réutiliser ces noms de magasins de caractéristiques.

UI Web

Utilisez une autre méthode. Vous ne pouvez pas créer de magasin de caractéristiques à partir de la consoleGoogle Cloud .

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • LOCATION_ID : région dans laquelle le magasin de caractéristiques est créé. Par exemple : us-central1.
  • PROJECT_ID : ID de votre projet.
  • FEATURESTORE_ID : ID du magasin de caractéristiques.
  • CMEK_PROJECT : ID ou numéro de projet contenant votre clé CMEK.
  • KEY_RING : nom du trousseau de clés Cloud Key Management Service sur lequel votre clé de chiffrement est activée.
  • KEY_NAME : nom de la clé de chiffrement à utiliser.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Un résultat semblable aux lignes suivantes doit s'afficher. Vous pouvez utiliser OPERATION_ID dans la réponse pour obtenir l'état de l'opération.

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

Lister les magasins de caractéristiques

Listez tous les magasins de caractéristiques d'un projet.

UI Web

  1. Dans la section Vertex AI de la console Google Cloud , accédez à la page Caractéristiques.

    Accéder à la page "Caractéristiques"

  2. Sélectionnez une région dans la liste déroulante Région.
  3. Dans la table des caractéristiques, consultez la colonne Magasin de caractéristiques pour connaître les magasins de caractéristiques de votre projet pour la région sélectionnée.

REST

Pour lister les magasins de caractéristiques d'une région spécifique de votre projet, envoyez une requête GET à l'aide de la méthode featurestores.list.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • LOCATION_ID : région du magasin de caractéristiques, us-central1 par exemple.
  • PROJECT_ID : ID de votre projet.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

Exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Java.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Node.js.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

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

Langages supplémentaires

Pour savoir comment installer et utiliser le SDK Vertex AI pour Python, consultez Utiliser le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.

Afficher les informations sur le magasin de caractéristiques

Obtenez des détails sur un magasin de caractéristiques tels que son nom et sa configuration de livraison en ligne. Si vous utilisez la console Google Cloud , vous pouvez afficher les métriques Cloud Monitoring pour les magasins de caractéristiques.

UI Web

  1. Dans la section Vertex AI de la console Google Cloud , accédez à la page Caractéristiques.

    Accéder à la page "Caractéristiques"

  2. Sélectionnez une région dans la liste déroulante Région.
  3. Dans le tableau des caractéristiques, consultez la colonne Magasin de caractéristiques et recherchez le magasin de caractéristiques pour lequel vous souhaitez afficher les informations.
  4. Cliquez sur le nom du magasin de caractéristiques pour afficher ses métriques Monitoring.
  5. Cliquez sur l'onglet Propriétés pour afficher la configuration de livraison en ligne du magasin de caractéristiques.

REST

Pour obtenir des détails sur un seul magasin de caractéristiques, envoyez une requête GET à l'aide de la méthode featurestores.get.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • LOCATION_ID : région du magasin de caractéristiques, us-central1 par exemple.
  • PROJECT_ID : ID de votre projet.
  • FEATURESTORE_ID : ID du magasin de caractéristiques.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

Exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Java.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Node.js.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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 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();

Langages supplémentaires

Pour savoir comment installer et utiliser le SDK Vertex AI pour Python, consultez Utiliser le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.

Modifier un magasin de caractéristiques

Modifiez un magasin de caractéristiques, par exemple pour changer le nombre de nœuds de livraison en ligne, ou actualisez les étiquettes d'un magasin de caractéristiques.

UI Web

Vous ne pouvez modifier que le nombre de nœuds de livraison en ligne. Pour actualiser les étiquettes, utilisez l'API.

  1. Dans la section Vertex AI de la console Google Cloud , accédez à la page Caractéristiques.

    Accéder à la page "Caractéristiques"

  2. Sélectionnez une région dans la liste déroulante Région.
  3. Dans le tableau des caractéristiques, consultez la colonne Magasin de caractéristiques et cliquez sur le nom du magasin de caractéristiques à modifier.
  4. Cliquez sur Modifier la configuration pour ouvrir le volet Modifier la configuration du magasin de caractéristiques.
  5. Modifiez la configuration du magasin de caractéristiques.
  6. Cliquez sur Mettre à jour pour appliquer vos modifications.

REST

Pour modifier un magasin de caractéristiques, envoyez une requête PATCH à l'aide de la méthode featurestores.patch.

L'exemple suivant modifie le nombre de nœuds de livraison en ligne sur 2 pour le magasin de caractéristiques. Tous les autres paramètres restent inchangés.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • LOCATION_ID : région du magasin de caractéristiques, us-central1 par exemple.
  • PROJECT_ID : ID de votre projet.
  • FEATURESTORE_ID : ID du magasin de caractéristiques.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Un résultat semblable aux lignes suivantes doit s'afficher. Vous pouvez utiliser OPERATION_ID dans la réponse pour obtenir l'état de l'opération.

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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Java.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Node.js.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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 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();

Langages supplémentaires

Pour savoir comment installer et utiliser le SDK Vertex AI pour Python, consultez Utiliser le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.

Supprimer un magasin de caractéristiques

Supprimez un magasin de caractéristiques. Si le magasin de caractéristiques inclut des caractéristiques et des types d'entités existants, activez le paramètre de requête force pour supprimer le magasin de caractéristiques et son contenu.

UI Web

Utilisez une autre méthode. Vous ne pouvez pas supprimer un magasin de caractéristiques à partir de la consoleGoogle Cloud .

REST

Pour supprimer un magasin de caractéristiques et tout son contenu, envoyez une requête DELETE à l'aide de la méthode featurestores.delete.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • LOCATION_ID : région du magasin de caractéristiques, us-central1 par exemple.
  • PROJECT_ID : ID de votre projet.
  • FEATURESTORE_ID : ID du magasin de caractéristiques.
  • BOOLEAN : indique si le magasin de caractéristiques doit être supprimé, même s'il contient des types d'entités et des caractéristiques. Le paramètre de requête force est facultatif et sa valeur par défaut est false.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

Exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

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

SDK Vertex AI pour Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.

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)

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Java.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Node.js.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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 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();

Étapes suivantes