REST Resource: projects.locations.featureOnlineStores.featureViews

Resource: FeatureView

FeatureView is representation of values that the FeatureOnlineStore will serve based on its syncConfig.

JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "labels": {
    string: string,
    ...
  },
  "syncConfig": {
    object (SyncConfig)
  },
  "vectorSearchConfig": {
    object (VectorSearchConfig)
  },
  "indexConfig": {
    object (IndexConfig)
  },
  "serviceAgentType": enum (ServiceAgentType),
  "serviceAccountEmail": string,

  // Union field source can be only one of the following:
  "bigQuerySource": {
    object (BigQuerySource)
  },
  "featureRegistrySource": {
    object (FeatureRegistrySource)
  }
  // End of list of possible types for union field source.
}
Fields
name

string

Identifier. name of the FeatureView. Format: projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}

createTime

string (Timestamp format)

Output only. timestamp when this FeatureView was created.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Output only. timestamp when this FeatureView was last updated.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

etag

string

Optional. Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.

labels

map (key: string, value: string)

Optional. The labels with user-defined metadata to organize your FeatureViews.

label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed.

See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureOnlineStore(System labels are excluded)." System reserved label keys are prefixed with "aiplatform.googleapis.com/" and are immutable.

syncConfig

object (SyncConfig)

Configures when data is to be synced/updated for this FeatureView. At the end of the sync the latest featureValues for each entityId of this FeatureView are made ready for online serving.

vectorSearchConfig
(deprecated)

object (VectorSearchConfig)

Optional. Deprecated: please use FeatureView.index_config instead.

indexConfig

object (IndexConfig)

Optional. Configuration for index preparation for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.

serviceAgentType

enum (ServiceAgentType)

Optional. service agent type used during data sync. By default, the Vertex AI service Agent is used. When using an IAM Policy to isolate this FeatureView within a project, a separate service account should be provisioned by setting this field to SERVICE_AGENT_TYPE_FEATURE_VIEW. This will generate a separate service account to access the BigQuery source table.

serviceAccountEmail

string

Output only. A service Account unique to this FeatureView. The role bigquery.dataViewer should be granted to this service account to allow Vertex AI feature Store to sync data to the online store.

Union field source.

source can be only one of the following:

bigQuerySource

object (BigQuerySource)

Optional. Configures how data is supposed to be extracted from a BigQuery source to be loaded onto the FeatureOnlineStore.

featureRegistrySource

object (FeatureRegistrySource)

Optional. Configures the features from a feature Registry source that need to be loaded onto the FeatureOnlineStore.

BigQuerySource

JSON representation
{
  "uri": string,
  "entityIdColumns": [
    string
  ]
}
Fields
uri

string

Required. The BigQuery view URI that will be materialized on each sync trigger based on FeatureView.SyncConfig.

entityIdColumns[]

string

Required. columns to construct entityId / row keys.

FeatureRegistrySource

A feature Registry source for features that need to be synced to Online Store.

JSON representation
{
  "featureGroups": [
    {
      object (FeatureGroup)
    }
  ],
  "projectNumber": string
}
Fields
featureGroups[]

object (FeatureGroup)

Required. List of features that need to be synced to Online Store.

projectNumber

string (int64 format)

Optional. The project number of the parent project of the feature Groups.

FeatureGroup

Features belonging to a single feature group that will be synced to Online Store.

JSON representation
{
  "featureGroupId": string,
  "featureIds": [
    string
  ]
}
Fields
featureGroupId

string

Required. Identifier of the feature group.

featureIds[]

string

Required. Identifiers of features under the feature group.

SyncConfig

Configuration for Sync. Only one option is set.

JSON representation
{
  "cron": string
}
Fields
cron

string

Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * * *".

VectorSearchConfig

Deprecated. Use IndexConfig instead.

JSON representation
{
  "embeddingColumn": string,
  "filterColumns": [
    string
  ],
  "crowdingColumn": string,
  "distanceMeasureType": enum (DistanceMeasureType),

  // Union field algorithm_config can be only one of the following:
  "treeAhConfig": {
    object (TreeAHConfig)
  },
  "bruteForceConfig": {
    object (BruteForceConfig)
  }
  // End of list of possible types for union field algorithm_config.
  "embeddingDimension": integer
}
Fields
embeddingColumn

string

Optional. column of embedding. This column contains the source data to create index for vector search. embeddingColumn must be set when using vector search.

filterColumns[]

string

Optional. columns of features that're used to filter vector search results.

crowdingColumn

string

Optional. column of crowding. This column contains crowding attribute which is a constraint on a neighbor list produced by FeatureOnlineStoreService.SearchNearestEntities to diversify search results. If NearestNeighborQuery.per_crowding_attribute_neighbor_count is set to K in SearchNearestEntitiesRequest, it's guaranteed that no more than K entities of the same crowding attribute are returned in the response.

distanceMeasureType

enum (DistanceMeasureType)

Optional. The distance measure used in nearest neighbor search.

Union field algorithm_config. The configuration with regard to the algorithms used for efficient search. algorithm_config can be only one of the following:
treeAhConfig

object (TreeAHConfig)

Optional. Configuration options for the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396

bruteForceConfig

object (BruteForceConfig)

Optional. Configuration options for using brute force search, which simply implements the standard linear search in the database for each query. It is primarily meant for benchmarking and to generate the ground truth for approximate search.

embeddingDimension

integer

Optional. The number of dimensions of the input embedding.

TreeAHConfig

JSON representation
{
  "leafNodeEmbeddingCount": string
}
Fields
leafNodeEmbeddingCount

string (int64 format)

Optional. Number of embeddings on each leaf node. The default value is 1000 if not set.

BruteForceConfig

This type has no fields.

DistanceMeasureType

Enums
DISTANCE_MEASURE_TYPE_UNSPECIFIED Should not be set.
SQUARED_L2_DISTANCE Euclidean (L_2) Distance.
COSINE_DISTANCE

Cosine Distance. Defined as 1 - cosine similarity.

We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead of COSINE distance. Our algorithms have been more optimized for DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is mathematically equivalent to COSINE distance and results in the same ranking.

DOT_PRODUCT_DISTANCE Dot Product Distance. Defined as a negative of the dot product.

IndexConfig

Configuration for vector indexing.

JSON representation
{
  "embeddingColumn": string,
  "filterColumns": [
    string
  ],
  "crowdingColumn": string,
  "distanceMeasureType": enum (DistanceMeasureType),

  // Union field algorithm_config can be only one of the following:
  "treeAhConfig": {
    object (TreeAHConfig)
  },
  "bruteForceConfig": {
    object (BruteForceConfig)
  }
  // End of list of possible types for union field algorithm_config.
  "embeddingDimension": integer
}
Fields
embeddingColumn

string

Optional. column of embedding. This column contains the source data to create index for vector search. embeddingColumn must be set when using vector search.

filterColumns[]

string

Optional. columns of features that're used to filter vector search results.

crowdingColumn

string

Optional. column of crowding. This column contains crowding attribute which is a constraint on a neighbor list produced by FeatureOnlineStoreService.SearchNearestEntities to diversify search results. If NearestNeighborQuery.per_crowding_attribute_neighbor_count is set to K in SearchNearestEntitiesRequest, it's guaranteed that no more than K entities of the same crowding attribute are returned in the response.

distanceMeasureType

enum (DistanceMeasureType)

Optional. The distance measure used in nearest neighbor search.

Union field algorithm_config. The configuration with regard to the algorithms used for efficient search. algorithm_config can be only one of the following:
treeAhConfig

object (TreeAHConfig)

Optional. Configuration options for the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396

bruteForceConfig

object (BruteForceConfig)

Optional. Configuration options for using brute force search, which simply implements the standard linear search in the database for each query. It is primarily meant for benchmarking and to generate the ground truth for approximate search.

embeddingDimension

integer

Optional. The number of dimensions of the input embedding.

TreeAHConfig

Configuration options for the tree-AH algorithm.

JSON representation
{
  "leafNodeEmbeddingCount": string
}
Fields
leafNodeEmbeddingCount

string (int64 format)

Optional. Number of embeddings on each leaf node. The default value is 1000 if not set.

BruteForceConfig

This type has no fields.

Configuration options for using brute force search.

DistanceMeasureType

The distance measure used in nearest neighbor search.

Enums
DISTANCE_MEASURE_TYPE_UNSPECIFIED Should not be set.
SQUARED_L2_DISTANCE Euclidean (L_2) Distance.
COSINE_DISTANCE

Cosine Distance. Defined as 1 - cosine similarity.

We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead of COSINE distance. Our algorithms have been more optimized for DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is mathematically equivalent to COSINE distance and results in the same ranking.

DOT_PRODUCT_DISTANCE Dot Product Distance. Defined as a negative of the dot product.

ServiceAgentType

service agent type used during data sync.

Enums
SERVICE_AGENT_TYPE_UNSPECIFIED By default, the project-level Vertex AI service Agent is enabled.
SERVICE_AGENT_TYPE_PROJECT Indicates the project-level Vertex AI service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) will be used during sync jobs.
SERVICE_AGENT_TYPE_FEATURE_VIEW Enable a FeatureView service account to be created by Vertex AI and output in the field serviceAccountEmail. This service account will be used to read from the source BigQuery table during sync.

Methods

create

Creates a new FeatureView in a given FeatureOnlineStore.

delete

Deletes a single FeatureView.

fetchFeatureValues

Fetch feature values under a FeatureView.

get

Gets details of a single FeatureView.

getIamPolicy

Gets the access control policy for a resource.

list

Lists FeatureViews in a given FeatureOnlineStore.

patch

Updates the parameters of a single FeatureView.

searchNearestEntities

Search the nearest entities under a FeatureView.

setIamPolicy

Sets the access control policy on the specified resource.

streamingFetchFeatureValues

Bidirectional streaming RPC to fetch feature values under a FeatureView.

sync

Triggers on-demand sync for the FeatureView.

testIamPermissions

Returns permissions that a caller has on the specified resource.