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)
  },
  "indexConfig": {
    object (IndexConfig)
  },

  // 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.

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.

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 * * * *".

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.

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.

list

Lists FeatureViews in a given FeatureOnlineStore.

patch

Updates the parameters of a single FeatureView.

searchNearestEntities

Search the nearest entities under a FeatureView.

sync

Triggers on-demand sync for the FeatureView.