Skip to content

Commit

Permalink
Add SingleStore as an OnlineStore
Browse files Browse the repository at this point in the history
Signed-off-by: Olha Kramarenko <okramarenko-ua@singlestore.com>
  • Loading branch information
okramarenko committed Jun 17, 2024
1 parent ae4fc6c commit c19758b
Show file tree
Hide file tree
Showing 43 changed files with 1,067 additions and 544 deletions.
11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,17 @@ test-python-universal-cassandra-no-cloud-providers:
not test_snowflake" \
sdk/python/tests

test-python-universal-singlestore-online:
PYTHONPATH='.' \
FULL_REPO_CONFIGS_MODULE=sdk.python.feast.infra.online_stores.contrib.singlestore_repo_configuration \
PYTEST_PLUGINS=sdk.python.tests.integration.feature_repos.universal.online_store.singlestore \
python -m pytest -n 8 --integration \
-k "not test_universal_cli and \
not gcs_registry and \
not s3_registry and \
not test_snowflake" \
sdk/python/tests

test-python-universal:
python -m pytest -n 8 --integration sdk/python/tests

Expand Down
1 change: 1 addition & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@
* [Rockset (contrib)](reference/online-stores/rockset.md)
* [Hazelcast (contrib)](reference/online-stores/hazelcast.md)
* [ScyllaDB (contrib)](reference/online-stores/scylladb.md)
* [SingleStore (contrib)](reference/online-stores/singlestore.md)
* [Providers](reference/providers/README.md)
* [Local](reference/providers/local.md)
* [Google Cloud Platform](reference/providers/google-cloud-platform.md)
Expand Down
3 changes: 3 additions & 0 deletions docs/reference/online-stores/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,7 @@ Please see [Online Store](../../getting-started/architecture-and-components/onli

{% content-ref url="remote.md" %}
[remote.md](remote.md)

{% content-ref url="singlestore.md" %}
[singlestore.md](singlestore.md)
{% endcontent-ref %}
51 changes: 51 additions & 0 deletions docs/reference/online-stores/singlestore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# SingleStore online store (contrib)

## Description

The SingleStore online store provides support for materializing feature values into a SingleStore database for serving online features.

## Getting started
In order to use this online store, you'll need to run `pip install 'feast[singlestore]'`. You can get started by then running `feast init` and then setting the `feature_store.yaml` as described below.

## Example

{% code title="feature_store.yaml" %}
```yaml
project: my_feature_repo
registry: data/registry.db
provider: local
online_store:
type: singlestore
host: DB_HOST
port: DB_PORT
database: DB_NAME
user: DB_USERNAME
password: DB_PASSWORD
```
{% endcode %}
## Functionality Matrix
The set of functionality supported by online stores is described in detail [here](overview.md#functionality).
Below is a matrix indicating which functionality is supported by the SingleStore online store.
| | SingleStore |
| :-------------------------------------------------------- | :----------- |
| write feature values to the online store | yes |
| read feature values from the online store | yes |
| update infrastructure (e.g. tables) in the online store | yes |
| teardown infrastructure (e.g. tables) in the online store | yes |
| generate a plan of infrastructure changes | no |
| support for on-demand transforms | yes |
| readable by Python SDK | yes |
| readable by Java | no |
| readable by Go | no |
| support for entityless feature views | yes |
| support for concurrent writing to the same key | no |
| support for ttl (time to live) at retrieval | no |
| support for deleting expired data | no |
| collocated by feature view | yes |
| collocated by feature service | no |
| collocated by entity key | no |
To compare this set of functionality against other online stores, please see the full [functionality matrix](overview.md#functionality-matrix).
29 changes: 29 additions & 0 deletions sdk/python/docs/source/feast.embedded_go.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
feast.embedded\_go package
==========================

Submodules
----------

feast.embedded\_go.online\_features\_service module
---------------------------------------------------

.. automodule:: feast.embedded_go.online_features_service
:members:
:undoc-members:
:show-inheritance:

feast.embedded\_go.type\_map module
-----------------------------------

.. automodule:: feast.embedded_go.type_map
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

.. automodule:: feast.embedded_go
:members:
:undoc-members:
:show-inheritance:
45 changes: 45 additions & 0 deletions sdk/python/docs/source/feast.infra.contrib.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
feast.infra.contrib package
===========================

Submodules
----------

feast.infra.contrib.azure\_provider module
------------------------------------------

.. automodule:: feast.infra.contrib.azure_provider
:members:
:undoc-members:
:show-inheritance:

feast.infra.contrib.grpc\_server module
---------------------------------------

.. automodule:: feast.infra.contrib.grpc_server
:members:
:undoc-members:
:show-inheritance:

feast.infra.contrib.spark\_kafka\_processor module
--------------------------------------------------

.. automodule:: feast.infra.contrib.spark_kafka_processor
:members:
:undoc-members:
:show-inheritance:

feast.infra.contrib.stream\_processor module
--------------------------------------------

.. automodule:: feast.infra.contrib.stream_processor
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

.. automodule:: feast.infra.contrib
:members:
:undoc-members:
:show-inheritance:
29 changes: 29 additions & 0 deletions sdk/python/docs/source/feast.infra.feature_servers.aws_lambda.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
feast.infra.feature\_servers.aws\_lambda package
================================================

Submodules
----------

feast.infra.feature\_servers.aws\_lambda.app module
---------------------------------------------------

.. automodule:: feast.infra.feature_servers.aws_lambda.app
:members:
:undoc-members:
:show-inheritance:

feast.infra.feature\_servers.aws\_lambda.config module
------------------------------------------------------

.. automodule:: feast.infra.feature_servers.aws_lambda.config
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

.. automodule:: feast.infra.feature_servers.aws_lambda
:members:
:undoc-members:
:show-inheritance:
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
feast.infra.feature\_servers.gcp\_cloudrun package
==================================================

Submodules
----------

feast.infra.feature\_servers.gcp\_cloudrun.app module
-----------------------------------------------------

.. automodule:: feast.infra.feature_servers.gcp_cloudrun.app
:members:
:undoc-members:
:show-inheritance:

feast.infra.feature\_servers.gcp\_cloudrun.config module
--------------------------------------------------------

.. automodule:: feast.infra.feature_servers.gcp_cloudrun.config
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

.. automodule:: feast.infra.feature_servers.gcp_cloudrun
:members:
:undoc-members:
:show-inheritance:
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
feast.infra.feature\_servers.local\_process package
===================================================

Submodules
----------

feast.infra.feature\_servers.local\_process.config module
---------------------------------------------------------

.. automodule:: feast.infra.feature_servers.local_process.config
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

.. automodule:: feast.infra.feature_servers.local_process
:members:
:undoc-members:
:show-inheritance:
10 changes: 10 additions & 0 deletions sdk/python/docs/source/feast.infra.feature_servers.multicloud.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
feast.infra.feature\_servers.multicloud package
===============================================

Module contents
---------------

.. automodule:: feast.infra.feature_servers.multicloud
:members:
:undoc-members:
:show-inheritance:
32 changes: 32 additions & 0 deletions sdk/python/docs/source/feast.infra.feature_servers.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
feast.infra.feature\_servers package
====================================

Subpackages
-----------

.. toctree::
:maxdepth: 4

feast.infra.feature_servers.aws_lambda
feast.infra.feature_servers.gcp_cloudrun
feast.infra.feature_servers.local_process
feast.infra.feature_servers.multicloud

Submodules
----------

feast.infra.feature\_servers.base\_config module
------------------------------------------------

.. automodule:: feast.infra.feature_servers.base_config
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

.. automodule:: feast.infra.feature_servers
:members:
:undoc-members:
:show-inheritance:
14 changes: 7 additions & 7 deletions sdk/python/docs/source/feast.infra.materialization.contrib.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
feast.infra.materialization.contrib package
==========================================
===========================================

Subpackages
-----------
Module contents
---------------

.. toctree::
:maxdepth: 4

feast.infra.materialization.contrib.bytewax
.. automodule:: feast.infra.materialization.contrib
:members:
:undoc-members:
:show-inheritance:
45 changes: 45 additions & 0 deletions sdk/python/docs/source/feast.infra.materialization.kubernetes.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
feast.infra.materialization.kubernetes package
==============================================

Submodules
----------

feast.infra.materialization.kubernetes.k8s\_materialization\_engine module
--------------------------------------------------------------------------

.. automodule:: feast.infra.materialization.kubernetes.k8s_materialization_engine
:members:
:undoc-members:
:show-inheritance:

feast.infra.materialization.kubernetes.k8s\_materialization\_job module
-----------------------------------------------------------------------

.. automodule:: feast.infra.materialization.kubernetes.k8s_materialization_job
:members:
:undoc-members:
:show-inheritance:

feast.infra.materialization.kubernetes.k8s\_materialization\_task module
------------------------------------------------------------------------

.. automodule:: feast.infra.materialization.kubernetes.k8s_materialization_task
:members:
:undoc-members:
:show-inheritance:

feast.infra.materialization.kubernetes.main module
--------------------------------------------------

.. automodule:: feast.infra.materialization.kubernetes.main
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

.. automodule:: feast.infra.materialization.kubernetes
:members:
:undoc-members:
:show-inheritance:
3 changes: 2 additions & 1 deletion sdk/python/docs/source/feast.infra.materialization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ Subpackages
.. toctree::
:maxdepth: 4

feast.infra.materialization.lambda
feast.infra.materialization.contrib
feast.infra.materialization.kubernetes

Submodules
----------
Expand Down
16 changes: 16 additions & 0 deletions sdk/python/docs/source/feast.infra.offline_stores.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,14 @@ feast.infra.offline\_stores.bigquery\_source module
:undoc-members:
:show-inheritance:

feast.infra.offline\_stores.duckdb module
-----------------------------------------

.. automodule:: feast.infra.offline_stores.duckdb
:members:
:undoc-members:
:show-inheritance:

feast.infra.offline\_stores.file module
---------------------------------------

Expand All @@ -44,6 +52,14 @@ feast.infra.offline\_stores.file\_source module
:undoc-members:
:show-inheritance:

feast.infra.offline\_stores.ibis module
---------------------------------------

.. automodule:: feast.infra.offline_stores.ibis
:members:
:undoc-members:
:show-inheritance:

feast.infra.offline\_stores.offline\_store module
-------------------------------------------------

Expand Down
Loading

0 comments on commit c19758b

Please sign in to comment.