forked from feast-dev/feast
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Functionality matrix for online stores (feast-dev#3007)
* Cleanup online store docs Signed-off-by: Felix Wang <wangfelix98@gmail.com> * Add overview page Signed-off-by: Felix Wang <wangfelix98@gmail.com> * Add Snowflake online store to RTD Signed-off-by: Felix Wang <wangfelix98@gmail.com> * Online store docs Signed-off-by: Felix Wang <wangfelix98@gmail.com> * add overiew to README in online store Signed-off-by: Danny Chiao <danny@tecton.ai> Signed-off-by: Felix Wang <wangfelix98@gmail.com> Signed-off-by: Danny Chiao <danny@tecton.ai> Co-authored-by: Danny Chiao <danny@tecton.ai>
- Loading branch information
1 parent
41cb476
commit 219d04a
Showing
13 changed files
with
279 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 8 additions & 5 deletions
13
docs/getting-started/architecture-and-components/online-store.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,18 @@ | ||
# Online store | ||
|
||
The Feast online store is used for low-latency online feature value lookups. Feature values are loaded into the online store from data sources in feature views using the `materialize` command. | ||
Feast uses online stores to serve features at low latency. | ||
Feature values are loaded from data sources into the online store through _materialization_, which can be triggered through the `materialize` command. | ||
|
||
The storage schema of features within the online store mirrors that of the data source used to populate the online store. One key difference between the online store and data sources is that only the latest feature values are stored per entity key. No historical values are stored. | ||
The storage schema of features within the online store mirrors that of the original data source. | ||
One key difference is that for each [entity key](../concepts/entity.md), only the latest feature values are stored. | ||
No historical values are stored. | ||
|
||
Example batch data source | ||
Here is an example batch data source: | ||
|
||
![](../../.gitbook/assets/image%20%286%29.png) | ||
|
||
Once the above data source is materialized into Feast \(using `feast materialize`\), the feature values will be stored as follows: | ||
Once the above data source is materialized into Feast (using `feast materialize`), the feature values will be stored as follows: | ||
|
||
![](../../.gitbook/assets/image%20%285%29.png) | ||
|
||
Features can also be written to the online store via [push sources](../../reference/data-sources/push.md) | ||
Features can also be written directly to the online store via [push sources](../../reference/data-sources/push.md) . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Overview | ||
|
||
## Functionality | ||
|
||
Here are the methods exposed by the `OnlineStore` interface, along with the core functionality supported by the method: | ||
* `online_write_batch`: write feature values to the online store | ||
* `online_read`: read feature values from the online store | ||
* `update`: update infrastructure (e.g. tables) in the online store | ||
* `teardown`: teardown infrastructure (e.g. tables) in the online store | ||
* `plan`: generate a plan of infrastructure changes based on feature repo changes | ||
|
||
There is also additional functionality not properly captured by these interface methods: | ||
* support for on-demand transforms | ||
* readable by Python SDK | ||
* readable by Java | ||
* readable by Go | ||
* support for entityless feature views | ||
* support for concurrent writing to the same key | ||
* support for ttl (time to live) at retrieval | ||
* support for deleting expired data | ||
|
||
Finally, there are multiple data models for storing the features in the online store. For example, features could be: | ||
* collocated by feature view | ||
* collocated by feature service | ||
* collocated by entity key | ||
|
||
See this [issue](https://github.com/feast-dev/feast/issues/2254) for a discussion around the tradeoffs of each of these data models. | ||
|
||
## Functionality Matrix | ||
|
||
There are currently five core online store implementations: `SqliteOnlineStore`, `RedisOnlineStore`, `DynamoDBOnlineStore`, `SnowflakeOnlineStore`, and `DatastoreOnlineStore`. | ||
There are several additional implementations contributed by the Feast community (`PostgreSQLOnlineStore`, `HbaseOnlineStore`, and `CassandraOnlineStore`), which are not guaranteed to be stable or to match the functionality of the core implementations. | ||
Details for each specific online store, such as how to configure it in a `feature_store.yaml`, can be found [here](README.md). | ||
|
||
Below is a matrix indicating which online stores support what functionality. | ||
|
||
| | Sqlite | Redis | DynamoDB | Snowflake | Datastore | Postgres | Hbase | Cassandra | | ||
| :-------------------------------------------------------- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | :-- | | ||
| write feature values to the online store | yes | yes | yes | yes | yes | yes | yes | yes | | ||
| read feature values from the online store | yes | yes | yes | yes | yes | yes | yes | yes | | ||
| update infrastructure (e.g. tables) in the online store | yes | yes | yes | yes | yes | yes | yes | yes | | ||
| teardown infrastructure (e.g. tables) in the online store | yes | yes | yes | yes | yes | yes | yes | yes | | ||
| generate a plan of infrastructure changes | yes | no | no | no | no | no | no | yes | | ||
| support for on-demand transforms | yes | yes | yes | yes | yes | yes | yes | yes | | ||
| readable by Python SDK | yes | yes | yes | yes | yes | yes | yes | yes | | ||
| readable by Java | no | yes | no | no | no | no | no | no | | ||
| readable by Go | yes | yes | no | no | no | no | no | no | | ||
| support for entityless feature views | yes | yes | yes | yes | yes | yes | yes | yes | | ||
| support for concurrent writing to the same key | no | yes | no | no | no | no | no | no | | ||
| support for ttl (time to live) at retrieval | no | yes | no | no | no | no | no | no | | ||
| support for deleting expired data | no | yes | no | no | no | no | no | no | | ||
| collocated by feature view | yes | no | yes | yes | yes | yes | yes | yes | | ||
| collocated by feature service | no | no | no | no | no | no | no | no | | ||
| collocated by entity key | no | yes | no | no | no | no | no | no | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.