Manage and find features

Learn how to manage and find features.

Create a feature

Create a single feature for an existing entity type. To create multiple features in a single request, see Batch creating features .

Web UI

  1. In the Vertex AI section of the Google Cloud console, go to the Features page.

    Go to the Features page

  2. Select a region from the Regiondrop-down list.
  3. In the features table, view the Entity typecolumn and click the entity type to add features to.
  4. Click Add featuresto open the Add featurespane.
  5. Specify a name, value type, and (optionally) a description for the feature.
  6. To enable feature value monitoring ( Preview ), under Feature monitoring, select Override entity type monitoring configand then enter the number of days between snapshots. This configuration overrides any existing or future monitoring configurations on the feature's entity type. For more information, see Feature value monitoring .
  7. To add more features, click Add another feature.
  8. Click Save.

REST

To create a feature for an existing entity type, send a POST request by using the featurestores.entityTypes.features.create method.

Before using any of the request data, make the following replacements:

  • LOCATION_ID : Region where the featurestore is located, such as us-central1 .
  • PROJECT_ID : Your project ID .
  • FEATURESTORE_ID : ID of the featurestore.
  • ENTITY_TYPE_ID : ID of the entity type.
  • FEATURE_ID : An ID for the feature.
  • DESCRIPTION : Description of the feature.
  • VALUE_TYPE : The value type of the feature.

HTTP method and URL:

POST https:// LOCATION_ID 
-aiplatform.googleapis.com/v1/projects/ PROJECT_ID 
/locations/ LOCATION_ID 
/featurestores/ FEATURESTORE_ID 
/entityTypes/ ENTITY_TYPE_ID 
?featureId= FEATURE_ID 

Request JSON body:

{
  "description": " DESCRIPTION 
",
  "valueType": " VALUE_TYPE 
"
}

To send your request, choose one of these options:

curl

Save the request body in a file named request.json , and execute the following command:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https:// LOCATION_ID -aiplatform.googleapis.com/v1/projects/ PROJECT_ID /locations/ LOCATION_ID /featurestores/ FEATURESTORE_ID /entityTypes/ ENTITY_TYPE_ID ?featureId= FEATURE_ID "

PowerShell

Save the request body in a file named request.json , and execute the following command:

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https:// LOCATION_ID -aiplatform.googleapis.com/v1/projects/ PROJECT_ID /locations/ LOCATION_ID /featurestores/ FEATURESTORE_ID /entityTypes/ ENTITY_TYPE_ID ?featureId= FEATURE_ID " | Select-Object -Expand Content

You should see output similar to the following. You can use the OPERATION_ID in the response to get the status of the operation.

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

Python

To learn how to install or update the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python . For more information, see the Python API reference documentation .

  from 
  
 google.cloud 
  
 import 
 aiplatform 
 def 
  
 create_feature_sample 
 ( 
 project 
 : 
 str 
 , 
 location 
 : 
 str 
 , 
 feature_id 
 : 
 str 
 , 
 value_type 
 : 
 str 
 , 
 entity_type_id 
 : 
 str 
 , 
 featurestore_id 
 : 
 str 
 , 
 ): 
 aiplatform 
 . 
 init 
 ( 
 project 
 = 
 project 
 , 
 location 
 = 
 location 
 ) 
 my_feature 
 = 
 aiplatform 
 . 
 Feature 
 . 
 create 
 ( 
 feature_id 
 = 
 feature_id 
 , 
 value_type 
 = 
 value_type 
 , 
 entity_type_name 
 = 
 entity_type_id 
 , 
 featurestore_id 
 = 
 featurestore_id 
 , 
 ) 
 my_feature 
 . 
 wait 
 () 
 return 
 my_feature 
 

Java

Before trying this sample, follow the Java setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Java API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.api.gax.longrunning. OperationFuture 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. CreateFeatureOperationMetadata 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. CreateFeatureRequest 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. EntityTypeName 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. Feature 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. Feature 
.ValueType 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceClient 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceSettings 
 
 ; 
 import 
  
 java.io.IOException 
 ; 
 import 
  
 java.util.concurrent.ExecutionException 
 ; 
 import 
  
 java.util.concurrent.TimeUnit 
 ; 
 import 
  
 java.util.concurrent.TimeoutException 
 ; 
 public 
  
 class 
 CreateFeatureSample 
  
 { 
  
 public 
  
 static 
  
 void 
  
 main 
 ( 
 String 
 [] 
  
 args 
 ) 
  
 throws 
  
 IOException 
 , 
  
 InterruptedException 
 , 
  
 ExecutionException 
 , 
  
 TimeoutException 
  
 { 
  
 // TODO(developer): Replace these variables before running the sample. 
  
 String 
  
 project 
  
 = 
  
 "YOUR_PROJECT_ID" 
 ; 
  
 String 
  
 featurestoreId 
  
 = 
  
 "YOUR_FEATURESTORE_ID" 
 ; 
  
 String 
  
 entityTypeId 
  
 = 
  
 "YOUR_ENTITY_TYPE_ID" 
 ; 
  
 String 
  
 featureId 
  
 = 
  
 "YOUR_FEATURE_ID" 
 ; 
  
 String 
  
 description 
  
 = 
  
 "YOUR_FEATURE_DESCRIPTION" 
 ; 
  
 ValueType 
  
 valueType 
  
 = 
  
 ValueType 
 . 
 STRING 
 ; 
  
 String 
  
 location 
  
 = 
  
 "us-central1" 
 ; 
  
 String 
  
 endpoint 
  
 = 
  
 "us-central1-aiplatform.googleapis.com:443" 
 ; 
  
 int 
  
 timeout 
  
 = 
  
 900 
 ; 
  
 createFeatureSample 
 ( 
  
 project 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 , 
  
 featureId 
 , 
  
 description 
 , 
  
 valueType 
 , 
  
 location 
 , 
  
 endpoint 
 , 
  
 timeout 
 ); 
  
 } 
  
 static 
  
 void 
  
 createFeatureSample 
 ( 
  
 String 
  
 project 
 , 
  
 String 
  
 featurestoreId 
 , 
  
 String 
  
 entityTypeId 
 , 
  
 String 
  
 featureId 
 , 
  
 String 
  
 description 
 , 
  
 ValueType 
  
 valueType 
 , 
  
 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 
 )) 
  
 { 
  
  Feature 
 
  
 feature 
  
 = 
  
  Feature 
 
 . 
 newBuilder 
 (). 
 setDescription 
 ( 
 description 
 ). 
 setValueType 
 ( 
 valueType 
 ). 
 build 
 (); 
  
  CreateFeatureRequest 
 
  
 createFeatureRequest 
  
 = 
  
  CreateFeatureRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setParent 
 ( 
  
  EntityTypeName 
 
 . 
 of 
 ( 
 project 
 , 
  
 location 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 ). 
 toString 
 ()) 
  
 . 
 setFeature 
 ( 
 feature 
 ) 
  
 . 
 setFeatureId 
 ( 
 featureId 
 ) 
  
 . 
 build 
 (); 
  
 OperationFuture<Feature 
 , 
  
 CreateFeatureOperationMetadata 
>  
 featureFuture 
  
 = 
  
 featurestoreServiceClient 
 . 
 createFeatureAsync 
 ( 
 createFeatureRequest 
 ); 
  
 System 
 . 
 out 
 . 
 format 
 ( 
 "Operation name: %s%n" 
 , 
  
 featureFuture 
 . 
 getInitialFuture 
 (). 
  get 
 
 (). 
 getName 
 ()); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Waiting for operation to finish..." 
 ); 
  
  Feature 
 
  
 featureResponse 
  
 = 
  
 featureFuture 
 . 
  get 
 
 ( 
 timeout 
 , 
  
 TimeUnit 
 . 
 SECONDS 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Create Feature Response" 
 ); 
  
 System 
 . 
 out 
 . 
 format 
 ( 
 "Name: %s%n" 
 , 
  
 featureResponse 
 . 
  getName 
 
 ()); 
  
 featurestoreServiceClient 
 . 
 close 
 (); 
  
 } 
  
 } 
 } 
 

Node.js

Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Node.js API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment these variables before running the sample.\ 
 * (Not necessary if passing values as arguments) 
 */ 
 // const project = 'YOUR_PROJECT_ID'; 
 // const featurestoreId = 'YOUR_FEATURESTORE_ID'; 
 // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; 
 // const featureId = 'YOUR_FEATURE_ID'; 
 // const valueType = 'FEATURE_VALUE_DATA_TYPE'; 
 // const description = 'YOUR_ENTITY_TYPE_DESCRIPTION'; 
 // 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 
  
 createFeature 
 () 
  
 { 
  
 // Configure the parent resource 
  
 const 
  
 parent 
  
 = 
  
 `projects/ 
 ${ 
 project 
 } 
 /locations/ 
 ${ 
 location 
 } 
 /featurestores/ 
 ${ 
 featurestoreId 
 } 
 /entityTypes/ 
 ${ 
 entityTypeId 
 } 
 ` 
 ; 
  
 const 
  
 feature 
  
 = 
  
 { 
  
 valueType 
 : 
  
 valueType 
 , 
  
 description 
 : 
  
 description 
 , 
  
 }; 
  
 const 
  
 request 
  
 = 
  
 { 
  
 parent 
 : 
  
 parent 
 , 
  
 feature 
 : 
  
 feature 
 , 
  
 featureId 
 : 
  
 featureId 
 , 
  
 }; 
  
 // Create Feature request 
  
 const 
  
 [ 
 operation 
 ] 
  
 = 
  
 await 
  
 featurestoreServiceClient 
 . 
 createFeature 
 ( 
 request 
 , 
  
 { 
  
 timeout 
 : 
  
 Number 
 ( 
 timeout 
 ), 
  
 }); 
  
 const 
  
 [ 
 response 
 ] 
  
 = 
  
 await 
  
 operation 
 . 
 promise 
 (); 
  
 console 
 . 
 log 
 ( 
 'Create feature response' 
 ); 
  
 console 
 . 
 log 
 ( 
 `Name : 
 ${ 
 response 
 . 
 name 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 'Raw response:' 
 ); 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 response 
 , 
  
 null 
 , 
  
 2 
 )); 
 } 
 createFeature 
 (); 
 

Batch create features

Create features in bulk for an existing type. For batch creation requests, Vertex AI Feature Store (Legacy) creates multiple features at once, which is faster for creating a large number of features compared to the featurestores.entityTypes.features.create method.

Web UI

See creating a feature .

REST

To create one or more features for an existing entity type, send a POST request by using the featurestores.entityTypes.features.batchCreate method, as shown in the following sample.

Before using any of the request data, make the following replacements:

  • LOCATION_ID : Region where the featurestore is located, such as us-central1 .
  • PROJECT_ID : .
  • FEATURESTORE_ID : ID of the featurestore.
  • ENTITY_TYPE_ID : ID of the entity type.
  • PARENT : The resource name of the entity type to create the features under. Required format:
    projects/ PROJECT_ID /locations/ LOCATION_ID /featurestores/ FEATURESTORE_ID /entityTypes/ ENTITY_TYPE_ID
  • FEATURE_ID : An ID for the feature.
  • DESCRIPTION : Description of the feature.
  • VALUE_TYPE : The value type of the feature.
  • DURATION : (Optional) The interval duration between snapshots in seconds. The value must end with an `s`.

HTTP method and URL:

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

Request JSON body:

{
  "requests": [
    {
      "parent" : " PARENT_1 
",
      "feature": {
        "description": " DESCRIPTION_1 
",
        "valueType": " VALUE_TYPE_1 
",
        "monitoringConfig": {
          "snapshotAnalysis": {
            "monitoringInterval": " DURATION 
"
          }
        }
      },
      "featureId": " FEATURE_ID_1 
"
    },
    {
      "parent" : " PARENT_2 
",
      "feature": {
        "description": " DESCRIPTION_2 
",
        "valueType": " VALUE_TYPE_2 
",
        "monitoringConfig": {
          "snapshotAnalysis": {
            "monitoringInterval": " DURATION 
"
          }
        }
      },
      "featureId": " FEATURE_ID_2 
"
    }
  ]
}

To send your request, choose one of these options:

curl

Save the request body in a file named request.json , and execute the following command:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https:// LOCATION_ID -aiplatform.googleapis.com/v1/projects/ PROJECT_ID /locations/ LOCATION_ID /featurestores/ FEATURESTORE_ID /entityTypes/ ENTITY_TYPE_ID /features:batchCreate"

PowerShell

Save the request body in a file named request.json , and execute the following command:

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https:// LOCATION_ID -aiplatform.googleapis.com/v1/projects/ PROJECT_ID /locations/ LOCATION_ID /featurestores/ FEATURESTORE_ID /entityTypes/ ENTITY_TYPE_ID /features:batchCreate" | Select-Object -Expand Content

You should see output similar to the following. You can use the OPERATION_ID in the response to get the status of the operation.

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

Python

To learn how to install or update the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python . For more information, see the Python API reference documentation .

  from 
  
 google.cloud 
  
 import 
 aiplatform 
 def 
  
 batch_create_features_sample 
 ( 
 project 
 : 
 str 
 , 
 location 
 : 
 str 
 , 
 entity_type_id 
 : 
 str 
 , 
 featurestore_id 
 : 
 str 
 , 
 sync 
 : 
 bool 
 = 
 True 
 , 
 ): 
 aiplatform 
 . 
 init 
 ( 
 project 
 = 
 project 
 , 
 location 
 = 
 location 
 ) 
 my_entity_type 
 = 
 aiplatform 
 . 
 featurestore 
 . 
 EntityType 
 ( 
 entity_type_name 
 = 
 entity_type_id 
 , 
 featurestore_id 
 = 
 featurestore_id 
 ) 
 FEATURE_CONFIGS 
 = 
 { 
 "age" 
 : 
 { 
 "value_type" 
 : 
 "INT64" 
 , 
 "description" 
 : 
 "User age" 
 }, 
 "gender" 
 : 
 { 
 "value_type" 
 : 
 "STRING" 
 , 
 "description" 
 : 
 "User gender" 
 }, 
 "liked_genres" 
 : 
 { 
 "value_type" 
 : 
 "STRING_ARRAY" 
 , 
 "description" 
 : 
 "An array of genres this user liked" 
 , 
 }, 
 } 
 my_entity_type 
 . 
 batch_create_features 
 ( 
 feature_configs 
 = 
 FEATURE_CONFIGS 
 , 
 sync 
 = 
 sync 
 ) 
 

Java

Before trying this sample, follow the Java setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Java API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.api.gax.longrunning. OperationFuture 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. BatchCreateFeaturesOperationMetadata 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. BatchCreateFeaturesRequest 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. BatchCreateFeaturesResponse 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. CreateFeatureRequest 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. EntityTypeName 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. Feature 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. Feature 
.ValueType 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceClient 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceSettings 
 
 ; 
 import 
  
 java.io.IOException 
 ; 
 import 
  
 java.util.ArrayList 
 ; 
 import 
  
 java.util.List 
 ; 
 import 
  
 java.util.concurrent.ExecutionException 
 ; 
 import 
  
 java.util.concurrent.TimeUnit 
 ; 
 import 
  
 java.util.concurrent.TimeoutException 
 ; 
 public 
  
 class 
 BatchCreateFeaturesSample 
  
 { 
  
 public 
  
 static 
  
 void 
  
 main 
 ( 
 String 
 [] 
  
 args 
 ) 
  
 throws 
  
 IOException 
 , 
  
 InterruptedException 
 , 
  
 ExecutionException 
 , 
  
 TimeoutException 
  
 { 
  
 // TODO(developer): Replace these variables before running the sample. 
  
 String 
  
 project 
  
 = 
  
 "YOUR_PROJECT_ID" 
 ; 
  
 String 
  
 featurestoreId 
  
 = 
  
 "YOUR_FEATURESTORE_ID" 
 ; 
  
 String 
  
 entityTypeId 
  
 = 
  
 "YOUR_ENTITY_TYPE_ID" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "us-central1" 
 ; 
  
 String 
  
 endpoint 
  
 = 
  
 "us-central1-aiplatform.googleapis.com:443" 
 ; 
  
 int 
  
 timeout 
  
 = 
  
 300 
 ; 
  
 batchCreateFeaturesSample 
 ( 
 project 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 , 
  
 location 
 , 
  
 endpoint 
 , 
  
 timeout 
 ); 
  
 } 
  
 static 
  
 void 
  
 batchCreateFeaturesSample 
 ( 
  
 String 
  
 project 
 , 
  
 String 
  
 featurestoreId 
 , 
  
 String 
  
 entityTypeId 
 , 
  
 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 
 )) 
  
 { 
  
 List<CreateFeatureRequest> 
  
 createFeatureRequests 
  
 = 
  
 new 
  
 ArrayList 
<> (); 
  
  Feature 
 
  
 titleFeature 
  
 = 
  
  Feature 
 
 . 
 newBuilder 
 () 
  
 . 
 setDescription 
 ( 
 "The title of the movie" 
 ) 
  
 . 
 setValueType 
 ( 
 ValueType 
 . 
 STRING 
 ) 
  
 . 
 build 
 (); 
  
  Feature 
 
  
 genresFeature 
  
 = 
  
  Feature 
 
 . 
 newBuilder 
 () 
  
 . 
 setDescription 
 ( 
 "The genres of the movie" 
 ) 
  
 . 
 setValueType 
 ( 
 ValueType 
 . 
 STRING 
 ) 
  
 . 
 build 
 (); 
  
  Feature 
 
  
 averageRatingFeature 
  
 = 
  
  Feature 
 
 . 
 newBuilder 
 () 
  
 . 
 setDescription 
 ( 
 "The average rating for the movie, range is [1.0-5.0]" 
 ) 
  
 . 
 setValueType 
 ( 
 ValueType 
 . 
 DOUBLE 
 ) 
  
 . 
 build 
 (); 
  
 createFeatureRequests 
 . 
 add 
 ( 
  
  CreateFeatureRequest 
 
 . 
 newBuilder 
 (). 
 setFeature 
 ( 
 titleFeature 
 ). 
 setFeatureId 
 ( 
 "title" 
 ). 
 build 
 ()); 
  
 createFeatureRequests 
 . 
 add 
 ( 
  
  CreateFeatureRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setFeature 
 ( 
 genresFeature 
 ) 
  
 . 
 setFeatureId 
 ( 
 "genres" 
 ) 
  
 . 
 build 
 ()); 
  
 createFeatureRequests 
 . 
 add 
 ( 
  
  CreateFeatureRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setFeature 
 ( 
 averageRatingFeature 
 ) 
  
 . 
 setFeatureId 
 ( 
 "average_rating" 
 ) 
  
 . 
 build 
 ()); 
  
  BatchCreateFeaturesRequest 
 
  
 batchCreateFeaturesRequest 
  
 = 
  
  BatchCreateFeaturesRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setParent 
 ( 
  
  EntityTypeName 
 
 . 
 of 
 ( 
 project 
 , 
  
 location 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 ). 
 toString 
 ()) 
  
 . 
 addAllRequests 
 ( 
 createFeatureRequests 
 ) 
  
 . 
 build 
 (); 
  
 OperationFuture<BatchCreateFeaturesResponse 
 , 
  
 BatchCreateFeaturesOperationMetadata 
>  
 batchCreateFeaturesFuture 
  
 = 
  
 featurestoreServiceClient 
 . 
 batchCreateFeaturesAsync 
 ( 
 batchCreateFeaturesRequest 
 ); 
  
 System 
 . 
 out 
 . 
 format 
 ( 
  
 "Operation name: %s%n" 
 , 
  
 batchCreateFeaturesFuture 
 . 
 getInitialFuture 
 (). 
  get 
 
 (). 
 getName 
 ()); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Waiting for operation to finish..." 
 ); 
  
  BatchCreateFeaturesResponse 
 
  
 batchCreateFeaturesResponse 
  
 = 
  
 batchCreateFeaturesFuture 
 . 
  get 
 
 ( 
 timeout 
 , 
  
 TimeUnit 
 . 
 SECONDS 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Batch Create Features Response" 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 batchCreateFeaturesResponse 
 ); 
  
 featurestoreServiceClient 
 . 
 close 
 (); 
  
 } 
  
 } 
 } 
 

Node.js

Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Node.js API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment these variables before running the sample.\ 
 * (Not necessary if passing values as arguments) 
 */ 
 // const project = 'YOUR_PROJECT_ID'; 
 // const featurestoreId = 'YOUR_FEATURESTORE_ID'; 
 // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; 
 // const 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 
  
 batchCreateFeatures 
 () 
  
 { 
  
 // Configure the parent resource 
  
 const 
  
 parent 
  
 = 
  
 `projects/ 
 ${ 
 project 
 } 
 /locations/ 
 ${ 
 location 
 } 
 /featurestores/ 
 ${ 
 featurestoreId 
 } 
 /entityTypes/ 
 ${ 
 entityTypeId 
 } 
 ` 
 ; 
  
 const 
  
 ageFeature 
  
 = 
  
 { 
  
 valueType 
 : 
  
 'INT64' 
 , 
  
 description 
 : 
  
 'User age' 
 , 
  
 }; 
  
 const 
  
 ageFeatureRequest 
  
 = 
  
 { 
  
 feature 
 : 
  
 ageFeature 
 , 
  
 featureId 
 : 
  
 'age' 
 , 
  
 }; 
  
 const 
  
 genderFeature 
  
 = 
  
 { 
  
 valueType 
 : 
  
 'STRING' 
 , 
  
 description 
 : 
  
 'User gender' 
 , 
  
 }; 
  
 const 
  
 genderFeatureRequest 
  
 = 
  
 { 
  
 feature 
 : 
  
 genderFeature 
 , 
  
 featureId 
 : 
  
 'gender' 
 , 
  
 }; 
  
 const 
  
 likedGenresFeature 
  
 = 
  
 { 
  
 valueType 
 : 
  
 'STRING_ARRAY' 
 , 
  
 description 
 : 
  
 'An array of genres that this user liked' 
 , 
  
 }; 
  
 const 
  
 likedGenresFeatureRequest 
  
 = 
  
 { 
  
 feature 
 : 
  
 likedGenresFeature 
 , 
  
 featureId 
 : 
  
 'liked_genres' 
 , 
  
 }; 
  
 const 
  
 requests 
  
 = 
  
 [ 
  
 ageFeatureRequest 
 , 
  
 genderFeatureRequest 
 , 
  
 likedGenresFeatureRequest 
 , 
  
 ]; 
  
 const 
  
 request 
  
 = 
  
 { 
  
 parent 
 : 
  
 parent 
 , 
  
 requests 
 : 
  
 requests 
 , 
  
 }; 
  
 // Batch Create Features request 
  
 const 
  
 [ 
 operation 
 ] 
  
 = 
  
 await 
  
 featurestoreServiceClient 
 . 
 batchCreateFeatures 
 ( 
  
 request 
 , 
  
 { 
 timeout 
 : 
  
 Number 
 ( 
 timeout 
 )} 
  
 ); 
  
 const 
  
 [ 
 response 
 ] 
  
 = 
  
 await 
  
 operation 
 . 
 promise 
 (); 
  
 console 
 . 
 log 
 ( 
 'Batch create features response' 
 ); 
  
 console 
 . 
 log 
 ( 
 'Raw response:' 
 ); 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 response 
 , 
  
 null 
 , 
  
 2 
 )); 
 } 
 batchCreateFeatures 
 (); 
 

List features

List all features in a given location. To search for features across all entity types and featurestores in a given location, see the Searching for features method.

Web UI

  1. In the Vertex AI section of the Google Cloud console, go to the Features page.

    Go to the Features page

  2. Select a region from the Regiondrop-down list.
  3. In the features table, view the Featurescolumn to see the features in your project for the selected region.

REST

To list all features for a single entity type, send a GET request by using the featurestores.entityTypes.features.list method.

Before using any of the request data, make the following replacements:

  • LOCATION_ID : Region where the featurestore is located, such as us-central1 .
  • PROJECT_ID : .
  • FEATURESTORE_ID : ID of the featurestore.
  • ENTITY_TYPE_ID : ID of the entity type.

HTTP method and URL:

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

To send your request, choose one of these options:

curl

Execute the following command:

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 /entityTypes/ ENTITY_TYPE_ID /features"

PowerShell

Execute the following command:

$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 /entityTypes/ ENTITY_TYPE_ID /features" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

{
  "features": [
    {
      "name": "projects/ PROJECT_NUMBER 
/locations/ LOCATION_ID 
/featurestores/ FEATURESTORE_ID 
/entityTypes/ ENTITY_TYPE_ID 
/features/ FEATURE_ID_1 
",
      "description": " DESCRIPTION 
",
      "valueType": " VALUE_TYPE 
",
      "createTime": "2021-03-01T22:41:20.626644Z",
      "updateTime": "2021-03-01T22:41:20.626644Z",
      "labels": {
        "environment": "testing"
      },
      "etag": "AMEw9yP0qJeLao6P3fl9cKEGY4ie5-SanQaiN7c_Ca4QOa0u7AxwO6i75Vbp0Cr51MSf"
    },
    {
      "name": "projects/ PROJECT_NUMBER 
/locations/ LOCATION_ID 
/featurestores/ FEATURESTORE_ID 
/entityTypes/ ENTITY_TYPE_ID 
/features/ FEATURE_ID_2 
",
      "description": " DESCRIPTION 
",
      "valueType": " VALUE_TYPE 
",
      "createTime": "2021-02-25T01:27:00.544230Z",
      "updateTime": "2021-02-25T01:27:00.544230Z",
      "labels": {
        "environment": "testing"
      },
      "etag": "AMEw9yMdrLZ7Waty0ane-DkHq4kcsIVC-piqJq7n6A_Y-BjNzPY4rNlokDHNyUqC7edw"
    },
    {
      "name": "projects/ PROJECT_NUMBER 
/locations/ LOCATION_ID 
/featurestores/ FEATURESTORE_ID 
/entityTypes/ ENTITY_TYPE_ID 
/features/ FEATURE_ID_3 
",
      "description": " DESCRIPTION 
",
      "valueType": " VALUE_TYPE 
",
      "createTime": "2021-03-01T22:41:20.628493Z",
      "updateTime": "2021-03-01T22:41:20.628493Z",
      "labels": {
        "environment": "testing"
      },
      "etag": "AMEw9yM-sAkv-u-jzkUOToaAVovK7GKbrubd9DbmAonik-ojTWG8-hfSRYt6jHKRTQ35"
    }
  ]
}

Java

Before trying this sample, follow the Java setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Java API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.aiplatform.v1. EntityTypeName 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. Feature 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceClient 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceSettings 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. ListFeaturesRequest 
 
 ; 
 import 
  
 java.io.IOException 
 ; 
 public 
  
 class 
 ListFeaturesSample 
  
 { 
  
 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 
  
 entityTypeId 
  
 = 
  
 "YOUR_ENTITY_TYPE_ID" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "us-central1" 
 ; 
  
 String 
  
 endpoint 
  
 = 
  
 "us-central1-aiplatform.googleapis.com:443" 
 ; 
  
 listFeaturesSample 
 ( 
 project 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 , 
  
 location 
 , 
  
 endpoint 
 ); 
  
 } 
  
 static 
  
 void 
  
 listFeaturesSample 
 ( 
  
 String 
  
 project 
 , 
  
 String 
  
 featurestoreId 
 , 
  
 String 
  
 entityTypeId 
 , 
  
 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 
 )) 
  
 { 
  
  ListFeaturesRequest 
 
  
 listFeaturesRequest 
  
 = 
  
  ListFeaturesRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setParent 
 ( 
  
  EntityTypeName 
 
 . 
 of 
 ( 
 project 
 , 
  
 location 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 ). 
 toString 
 ()) 
  
 . 
 build 
 (); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "List Features Response" 
 ); 
  
 for 
  
 ( 
  Feature 
 
  
 element 
  
 : 
  
 featurestoreServiceClient 
 . 
 listFeatures 
 ( 
 listFeaturesRequest 
 ). 
 iterateAll 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 element 
 ); 
  
 } 
  
 featurestoreServiceClient 
 . 
 close 
 (); 
  
 } 
  
 } 
 } 
 

Node.js

Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Node.js API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment these variables before running the sample.\ 
 * (Not necessary if passing values as arguments) 
 */ 
 // const project = 'YOUR_PROJECT_ID'; 
 // const featurestoreId = 'YOUR_FEATURESTORE_ID'; 
 // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; 
 // const 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 
  
 listFeatures 
 () 
  
 { 
  
 // Configure the parent resource 
  
 const 
  
 parent 
  
 = 
  
 `projects/ 
 ${ 
 project 
 } 
 /locations/ 
 ${ 
 location 
 } 
 /featurestores/ 
 ${ 
 featurestoreId 
 } 
 /entityTypes/ 
 ${ 
 entityTypeId 
 } 
 ` 
 ; 
  
 const 
  
 request 
  
 = 
  
 { 
  
 parent 
 : 
  
 parent 
 , 
  
 }; 
  
 // List Features request 
  
 const 
  
 [ 
 response 
 ] 
  
 = 
  
 await 
  
 featurestoreServiceClient 
 . 
 listFeatures 
 ( 
 request 
 , 
  
 { 
  
 timeout 
 : 
  
 Number 
 ( 
 timeout 
 ), 
  
 }); 
  
 console 
 . 
 log 
 ( 
 'List features response' 
 ); 
  
 console 
 . 
 log 
 ( 
 'Raw response:' 
 ); 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 response 
 , 
  
 null 
 , 
  
 2 
 )); 
 } 
 listFeatures 
 (); 
 

Additional languages

To learn how to install and use the Vertex AI SDK for Python, see Use the Vertex AI SDK for Python . For more information, see the Vertex AI SDK for Python API reference documentation.

Search for features

Search for features based on one or more of their properties, such as feature ID, entity type ID, or feature description. Vertex AI Feature Store (Legacy) searches across all featurestores and entity types in a given location. You can also limit results by filtering on specific featurestores, value types, and labels.

To list all features, see Listing features .

Web UI

  1. In the Vertex AI section of the Google Cloud console, go to the Features page.

    Go to the Features page

  2. Select a region from the Regiondrop-down list.
  3. Click the features table's Filterfield.
  4. Select a property to filter on such as Feature, which returns features that contain a matching string anywhere in their ID.
  5. Type a value for the filter and then press enter. Vertex AI Feature Store (Legacy) returns results in the features table.
  6. To add additional filters, click the Filterfield again.

REST

To search for features, send a GET request by using the featurestores.searchFeatures method. The following sample uses multiple search parameters, written as featureId:test AND valueType=STRING . The query returns features that contain test in their ID and whose values are of type STRING .

Before using any of the request data, make the following replacements:

  • LOCATION_ID : Region where the featurestore is located, such as us-central1 .
  • PROJECT_ID : .

HTTP method and URL:

GET https:// LOCATION_ID 
-aiplatform.googleapis.com/v1/projects/ PROJECT_ID 
/locations/ LOCATION_ID 
/featurestores:searchFeatures?query="featureId:test%20AND%20valueType=STRING"

To send your request, choose one of these options:

curl

Execute the following command:

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:searchFeatures?query="featureId:test%20AND%20valueType=STRING""

PowerShell

Execute the following command:

$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:searchFeatures?query="featureId:test%20AND%20valueType=STRING"" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

{
  "features": [
    {
      "name": "projects/ PROJECT_NUMBER 
/locations/ LOCATION_IDfeature-delete.html 
/featurestores/featurestore_demo/entityTypes/testing/features/test1",
      "description": "featurestore test1",
      "createTime": "2021-02-26T18:16:09.528185Z",
      "updateTime": "2021-02-26T18:16:09.528185Z",
      "labels": {
        "environment": "testing"
      }
    }
  ]
}

Java

Before trying this sample, follow the Java setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Java API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.aiplatform.v1. Feature 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceClient 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceSettings 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. LocationName 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. SearchFeaturesRequest 
 
 ; 
 import 
  
 java.io.IOException 
 ; 
 public 
  
 class 
 SearchFeaturesSample 
  
 { 
  
 public 
  
 static 
  
 void 
  
 main 
 ( 
 String 
 [] 
  
 args 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
 // TODO(developer): Replace these variables before running the sample. 
  
 String 
  
 project 
  
 = 
  
 "YOUR_PROJECT_ID" 
 ; 
  
 String 
  
 query 
  
 = 
  
 "YOUR_QUERY" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "us-central1" 
 ; 
  
 String 
  
 endpoint 
  
 = 
  
 "us-central1-aiplatform.googleapis.com:443" 
 ; 
  
 searchFeaturesSample 
 ( 
 project 
 , 
  
 query 
 , 
  
 location 
 , 
  
 endpoint 
 ); 
  
 } 
  
 static 
  
 void 
  
 searchFeaturesSample 
 ( 
 String 
  
 project 
 , 
  
 String 
  
 query 
 , 
  
 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 
 )) 
  
 { 
  
  SearchFeaturesRequest 
 
  
 searchFeaturesRequest 
  
 = 
  
  SearchFeaturesRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setLocation 
 ( 
  LocationName 
 
 . 
 of 
 ( 
 project 
 , 
  
 location 
 ). 
 toString 
 ()) 
  
 . 
 setQuery 
 ( 
 query 
 ) 
  
 . 
 build 
 (); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Search Features Response" 
 ); 
  
 for 
  
 ( 
  Feature 
 
  
 element 
  
 : 
  
 featurestoreServiceClient 
 . 
 searchFeatures 
 ( 
 searchFeaturesRequest 
 ). 
 iterateAll 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 element 
 ); 
  
 } 
  
 featurestoreServiceClient 
 . 
 close 
 (); 
  
 } 
  
 } 
 } 
 

Node.js

Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Node.js API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * 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 
  
 searchFeatures 
 () 
  
 { 
  
 // Configure the locationResource resource 
  
 const 
  
 locationResource 
  
 = 
  
 `projects/ 
 ${ 
 project 
 } 
 /locations/ 
 ${ 
 location 
 } 
 ` 
 ; 
  
 const 
  
 request 
  
 = 
  
 { 
  
 location 
 : 
  
 locationResource 
 , 
  
 query 
 : 
  
 query 
 , 
  
 }; 
  
 // Search Features request 
  
 const 
  
 [ 
 response 
 ] 
  
 = 
  
 await 
  
 featurestoreServiceClient 
 . 
 searchFeatures 
 ( 
 request 
 , 
  
 { 
  
 timeout 
 : 
  
 Number 
 ( 
 timeout 
 ), 
  
 }); 
  
 console 
 . 
 log 
 ( 
 'Search features response' 
 ); 
  
 console 
 . 
 log 
 ( 
 'Raw response:' 
 ); 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 response 
 , 
  
 null 
 , 
  
 2 
 )); 
 } 
 searchFeatures 
 (); 
 

Additional languages

To learn how to install and use the Vertex AI SDK for Python, see Use the Vertex AI SDK for Python . For more information, see the Vertex AI SDK for Python API reference documentation.

View feature details

View details about a feature, such as its value type or description. If you use the Google Cloud console and have feature monitoring enabled, you can also view the distribution of feature values over time.

Web UI

  1. In the Vertex AI section of the Google Cloud console, go to the Features page.

    Go to the Features page

  2. Select a region from the Regiondrop-down list.
  3. In the features table, view the Featurescolumn to find the feature that you want to view details for.
  4. Click the name of a feature to view its details.
  5. To view its metrics, click Metrics. Vertex AI Feature Store (Legacy) provides feature distribution metrics for the feature.

REST

To get details about a feature, send a GET request by using the featurestores.entityTypes.features.get method.

Before using any of the request data, make the following replacements:

  • LOCATION_ID : Region where the featurestore is located, such as us-central1 .
  • PROJECT_ID : .
  • FEATURESTORE_ID : ID of the featurestore.
  • ENTITY_TYPE_ID : ID of the entity type.
  • FEATURE_ID : ID of the feature.

HTTP method and URL:

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

To send your request, choose one of these options:

curl

Execute the following command:

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 /entityTypes/ ENTITY_TYPE_ID /features/ FEATURE_ID "

PowerShell

Execute the following command:

$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 /entityTypes/ ENTITY_TYPE_ID /features/ FEATURE_ID " | Select-Object -Expand Content

You should receive a JSON response similar to the following:

{
  "name": "projects/ PROJECT_NUMBER 
/locations/ LOCATION_ID 
/featurestores/ FEATURESTORE_ID 
/entityTypes/ ENTITY_TYPE_ID 
/features/ FEATURE_ID 
",
  "description": " DESCRIPTION 
",
  "valueType": " VALUE_TYPE 
",
  "createTime": "2021-03-01T22:41:20.628493Z",
  "updateTime": "2021-03-01T22:41:20.628493Z",
  "labels": {
    "environment": "testing"
  },
  "etag": "AMEw9yOZbdYKHTyjV22ziZR1vUX3nWOi0o2XU3-OADahSdfZ8Apklk_qPruhF-o1dOSD",
  "monitoringConfig": {}
}

Java

Before trying this sample, follow the Java setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Java API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.aiplatform.v1. Feature 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeatureName 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceClient 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeaturestoreServiceSettings 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. GetFeatureRequest 
 
 ; 
 import 
  
 java.io.IOException 
 ; 
 public 
  
 class 
 GetFeatureSample 
  
 { 
  
 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 
  
 entityTypeId 
  
 = 
  
 "YOUR_ENTITY_TYPE_ID" 
 ; 
  
 String 
  
 featureId 
  
 = 
  
 "YOUR_FEATURE_ID" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "us-central1" 
 ; 
  
 String 
  
 endpoint 
  
 = 
  
 "us-central1-aiplatform.googleapis.com:443" 
 ; 
  
 getFeatureSample 
 ( 
 project 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 , 
  
 featureId 
 , 
  
 location 
 , 
  
 endpoint 
 ); 
  
 } 
  
 static 
  
 void 
  
 getFeatureSample 
 ( 
  
 String 
  
 project 
 , 
  
 String 
  
 featurestoreId 
 , 
  
 String 
  
 entityTypeId 
 , 
  
 String 
  
 featureId 
 , 
  
 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 
 )) 
  
 { 
  
  GetFeatureRequest 
 
  
 getFeatureRequest 
  
 = 
  
  GetFeatureRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setName 
 ( 
  
  FeatureName 
 
 . 
 of 
 ( 
 project 
 , 
  
 location 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 , 
  
 featureId 
 ) 
  
 . 
 toString 
 ()) 
  
 . 
 build 
 (); 
  
  Feature 
 
  
 feature 
  
 = 
  
 featurestoreServiceClient 
 . 
 getFeature 
 ( 
 getFeatureRequest 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Get Feature Response" 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 feature 
 ); 
  
 featurestoreServiceClient 
 . 
 close 
 (); 
  
 } 
  
 } 
 } 
 

Node.js

Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Node.js API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment these variables before running the sample.\ 
 * (Not necessary if passing values as arguments) 
 */ 
 // const project = 'YOUR_PROJECT_ID'; 
 // const featurestoreId = 'YOUR_FEATURESTORE_ID'; 
 // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; 
 // const featureId = 'YOUR_FEATURE_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 
  
 getFeature 
 () 
  
 { 
  
 // Configure the name resource 
  
 const 
  
 name 
  
 = 
  
 `projects/ 
 ${ 
 project 
 } 
 /locations/ 
 ${ 
 location 
 } 
 /featurestores/ 
 ${ 
 featurestoreId 
 } 
 /entityTypes/ 
 ${ 
 entityTypeId 
 } 
 /features/ 
 ${ 
 featureId 
 } 
 ` 
 ; 
  
 const 
  
 request 
  
 = 
  
 { 
  
 name 
 : 
  
 name 
 , 
  
 }; 
  
 // Get Feature request 
  
 const 
  
 [ 
 response 
 ] 
  
 = 
  
 await 
  
 featurestoreServiceClient 
 . 
 getFeature 
 ( 
 request 
 , 
  
 { 
  
 timeout 
 : 
  
 Number 
 ( 
 timeout 
 ), 
  
 }); 
  
 console 
 . 
 log 
 ( 
 'Get feature response' 
 ); 
  
 console 
 . 
 log 
 ( 
 `Name : 
 ${ 
 response 
 . 
 name 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 'Raw response:' 
 ); 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 response 
 , 
  
 null 
 , 
  
 2 
 )); 
 } 
 getFeature 
 (); 
 

Additional languages

To learn how to install and use the Vertex AI SDK for Python, see Use the Vertex AI SDK for Python . For more information, see the Vertex AI SDK for Python API reference documentation.

Delete a feature

Delete a feature and all of its values.

Web UI

  1. In the Vertex AI section of the Google Cloud console, go to the Features page.

    Go to the Features page

  2. Select a region from the Regiondrop-down list.
  3. In the features table, view the Featurecolumn and find the feature to delete.
  4. Click the name of the feature.
  5. From the action bar, click Delete.
  6. Click Confirmto delete the feature and its values.

REST

To delete a feature, send a DELETE request by using the featurestores.entityTypes.features.delete method.

Before using any of the request data, make the following replacements:

  • LOCATION_ID : Region where the featurestore is located, such as us-central1 .
  • PROJECT_ID : .
  • FEATURESTORE_ID : ID of the featurestore.
  • ENTITY_TYPE_ID : ID of the entity type.
  • FEATURE_ID : ID of the feature.

HTTP method and URL:

DELETE https:// LOCATION_ID 
-aiplatform.googleapis.com/v1/projects/ PROJECT_ID 
/locations/ LOCATION_ID 
/featurestores/ FEATURESTORE_ID 
/entityTypes/ ENTITY_TYPE_ID 
/features/ FEATURE_ID 

To send your request, choose one of these options:

curl

Execute the following command:

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 /entityTypes/ ENTITY_TYPE_ID /features/ FEATURE_ID "

PowerShell

Execute the following command:

$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 /entityTypes/ ENTITY_TYPE_ID /features/ FEATURE_ID " | Select-Object -Expand Content

You should receive a JSON response similar to the following:

{
  "name": "projects/ PROJECT_NUMBER 
/locations/ LOCATION_ID 
/featurestores/ FEATURESTORE_ID 
/operations/ OPERATION_ID 
",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-02-26T17:32:56.008325Z",
      "updateTime": "2021-02-26T17:32:56.008325Z"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

Java

Before trying this sample, follow the Java setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Java API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.api.gax.longrunning. OperationFuture 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. DeleteFeatureRequest 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. DeleteOperationMetadata 
 
 ; 
 import 
  
 com.google.cloud.aiplatform.v1. FeatureName 
 
 ; 
 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 
 DeleteFeatureSample 
  
 { 
  
 public 
  
 static 
  
 void 
  
 main 
 ( 
 String 
 [] 
  
 args 
 ) 
  
 throws 
  
 IOException 
 , 
  
 InterruptedException 
 , 
  
 ExecutionException 
 , 
  
 TimeoutException 
  
 { 
  
 // TODO(developer): Replace these variables before running the sample. 
  
 String 
  
 project 
  
 = 
  
 "YOUR_PROJECT_ID" 
 ; 
  
 String 
  
 featurestoreId 
  
 = 
  
 "YOUR_FEATURESTORE_ID" 
 ; 
  
 String 
  
 entityTypeId 
  
 = 
  
 "YOUR_ENTITY_TYPE_ID" 
 ; 
  
 String 
  
 featureId 
  
 = 
  
 "YOUR_FEATURE_ID" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "us-central1" 
 ; 
  
 String 
  
 endpoint 
  
 = 
  
 "us-central1-aiplatform.googleapis.com:443" 
 ; 
  
 int 
  
 timeout 
  
 = 
  
 300 
 ; 
  
 deleteFeatureSample 
 ( 
  
 project 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 , 
  
 featureId 
 , 
  
 location 
 , 
  
 endpoint 
 , 
  
 timeout 
 ); 
  
 } 
  
 static 
  
 void 
  
 deleteFeatureSample 
 ( 
  
 String 
  
 project 
 , 
  
 String 
  
 featurestoreId 
 , 
  
 String 
  
 entityTypeId 
 , 
  
 String 
  
 featureId 
 , 
  
 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 
 )) 
  
 { 
  
  DeleteFeatureRequest 
 
  
 deleteFeatureRequest 
  
 = 
  
  DeleteFeatureRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setName 
 ( 
  
  FeatureName 
 
 . 
 of 
 ( 
 project 
 , 
  
 location 
 , 
  
 featurestoreId 
 , 
  
 entityTypeId 
 , 
  
 featureId 
 ) 
  
 . 
 toString 
 ()) 
  
 . 
 build 
 (); 
  
 OperationFuture<Empty 
 , 
  
 DeleteOperationMetadata 
>  
 operationFuture 
  
 = 
  
 featurestoreServiceClient 
 . 
 deleteFeatureAsync 
 ( 
 deleteFeatureRequest 
 ); 
  
 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 Feature." 
 ); 
  
 featurestoreServiceClient 
 . 
 close 
 (); 
  
 } 
  
 } 
 } 
 

Node.js

Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Node.js API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment these variables before running the sample.\ 
 * (Not necessary if passing values as arguments) 
 */ 
 // const project = 'YOUR_PROJECT_ID'; 
 // const featurestoreId = 'YOUR_FEATURESTORE_ID'; 
 // const entityTypeId = 'YOUR_ENTITY_TYPE_ID'; 
 // const featureId = 'YOUR_FEATURE_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 
  
 deleteFeature 
 () 
  
 { 
  
 // Configure the name resource 
  
 const 
  
 name 
  
 = 
  
 `projects/ 
 ${ 
 project 
 } 
 /locations/ 
 ${ 
 location 
 } 
 /featurestores/ 
 ${ 
 featurestoreId 
 } 
 /entityTypes/ 
 ${ 
 entityTypeId 
 } 
 /features/ 
 ${ 
 featureId 
 } 
 ` 
 ; 
  
 const 
  
 request 
  
 = 
  
 { 
  
 name 
 : 
  
 name 
 , 
  
 }; 
  
 // Delete Feature request 
  
 const 
  
 [ 
 operation 
 ] 
  
 = 
  
 await 
  
 featurestoreServiceClient 
 . 
 deleteFeature 
 ( 
 request 
 , 
  
 { 
  
 timeout 
 : 
  
 Number 
 ( 
 timeout 
 ), 
  
 }); 
  
 const 
  
 [ 
 response 
 ] 
  
 = 
  
 await 
  
 operation 
 . 
 promise 
 (); 
  
 console 
 . 
 log 
 ( 
 'Delete feature response' 
 ); 
  
 console 
 . 
 log 
 ( 
 'Raw response:' 
 ); 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 response 
 , 
  
 null 
 , 
  
 2 
 )); 
 } 
 deleteFeature 
 (); 
 

Additional languages

To learn how to install and use the Vertex AI SDK for Python, see Use the Vertex AI SDK for Python . For more information, see the Vertex AI SDK for Python API reference documentation.

What's next

Create a Mobile Website
View Site in Mobile | Classic
Share by: