Couchbase Columnar (contrib)

Description

The Couchbase Columnar offline store provides support for reading CouchbaseColumnarSources. Note that Couchbase Columnar is available through Couchbase Capella.

  • Entity dataframes can be provided as a SQL++ query or can be provided as a Pandas dataframe. A Pandas dataframe will be uploaded to Couchbase Capella Columnar as a collection.

Disclaimer

The Couchbase Columnar offline store does not achieve full test coverage. Please do not assume complete stability.

Getting started

In order to use this offline store, you'll need to run pip install 'feast[couchbase]'. You can get started by then running feast init -t couchbase.

To get started with Couchbase Capella Columnar:

  1. Sign up for a Couchbase Capella account

  2. Create an Access Control Account

    • This account should be able to read and write.

    • For testing purposes, it is recommended to assign all roles to avoid any permission issues.

  3. Configure allowed IP addresses

    • You must allow the IP address of the machine running Feast.

Example

feature_store.yaml
project: my_project
registry: data/registry.db
provider: local
offline_store:
  type: couchbase.offline
  connection_string: COUCHBASE_COLUMNAR_CONNECTION_STRING # Copied from Settings > Connection String page in Capella Columnar console, starts with couchbases://
  user: COUCHBASE_COLUMNAR_USER # Couchbase cluster access name from Settings > Access Control page in Capella Columnar console
  password: COUCHBASE_COLUMNAR_PASSWORD # Couchbase password from Settings > Access Control page in Capella Columnar console
  timeout: 120 # Timeout in seconds for Columnar operations, optional
online_store:
    path: data/online_store.db

Note that timeoutis an optional parameter. The full set of configuration options is available in CouchbaseColumnarOfflineStoreConfig.

Functionality Matrix

The set of functionality supported by offline stores is described in detail here. Below is a matrix indicating which functionality is supported by the Couchbase Columnar offline store.

Couchbase Columnar

get_historical_features (point-in-time correct join)

yes

pull_latest_from_table_or_query (retrieve latest feature values)

yes

pull_all_from_table_or_query (retrieve a saved dataset)

yes

offline_write_batch (persist dataframes to offline store)

no

write_logged_features (persist logged features to offline store)

no

Below is a matrix indicating which functionality is supported by CouchbaseColumnarRetrievalJob.

Couchbase Columnar

export to dataframe

yes

export to arrow table

yes

export to arrow batches

no

export to SQL

yes

export to data lake (S3, GCS, etc.)

yes

export to data warehouse

yes

export as Spark dataframe

no

local execution of Python-based on-demand transforms

yes

remote execution of Python-based on-demand transforms

no

persist results in the offline store

yes

preview the query plan before execution

yes

read partitioned data

yes

To compare this set of functionality against other offline stores, please see the full functionality matrix.

Last updated

Was this helpful?