Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Issue-3771, fix document error as not shortcut -f option in code. #3783

Closed
wants to merge 69 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
49da37c
fix: issue-3771, fix document error as not shortcut -f option in code.
shuchu Oct 9, 2023
018d0ea
fix: Update jackson and remove unnecessary logging (#3809)
achals Oct 20, 2023
ea12133
chore: Add harry to CODEOWNERS (#3808)
achals Oct 20, 2023
f7a98e2
chore: Bump golang.org/x/net from 0.7.0 to 0.17.0 (#3792)
dependabot[bot] Oct 20, 2023
98e0ce8
chore: Bump @babel/traverse from 7.17.10 to 7.23.2 in /sdk/python/fea…
dependabot[bot] Oct 20, 2023
f05a6e7
chore: Bump avro from 1.10.0 to 1.11.3 in /sdk/python/requirements (#…
dependabot[bot] Oct 20, 2023
fb6b807
feat: Support GCS filesystem for bytewax engine (#3774)
sudohainguyen Oct 20, 2023
9b0e5ce
feat: Make bytewax job write as mini-batches (#3777)
sudohainguyen Oct 20, 2023
7376db8
fix: Resolve hbase hotspot issue when materializing (#3790)
sudohainguyen Oct 20, 2023
175d796
fix: Make generated temp table name escaped (#3797)
BearDimonR Oct 20, 2023
b3852bf
fix: Adopt connection pooling for HBase (#3793)
sudohainguyen Oct 21, 2023
417b16b
fix: Redundant feature materialization and premature incremental mate…
james-crabtree-sp Oct 25, 2023
0151961
chore: Bump urllib3 from 1.26.16 to 1.26.18 in /sdk/python/requiremen…
dependabot[bot] Oct 25, 2023
01db8cc
feat: Add get online feature rpc to gprc server (#3815)
sudohainguyen Oct 31, 2023
9583ed6
fix: Add async refresh to prevent synchronous refresh in main thread …
sudohainguyen Oct 31, 2023
25e9775
fix: Bytewax engine create configmap from object (#3821)
sudohainguyen Nov 8, 2023
2151c39
fix: Set upper bound for bigquery client due to its breaking changes
sudohainguyen Nov 4, 2023
5dc0b24
fix: update dependencies versions due to conflicts
sudohainguyen Nov 8, 2023
1f91fc6
chore: generate reqs file from up-to-date deps
sudohainguyen Nov 8, 2023
9cf9d96
feat: Optimize bytewax pod resource with zero-copy
sudohainguyen Nov 4, 2023
5983f40
fix: improve parsing bytewax job status
sudohainguyen Nov 6, 2023
ae1bb8b
fix: make bytewax settings unexposed
sudohainguyen Nov 8, 2023
4337c89
feat: add redis sentinel support
snowron Nov 2, 2023
3387a15
feat: add redis sentinel support
snowron Nov 2, 2023
aad8718
feat: add redis sentinel support format lint
snowron Nov 2, 2023
77d7eb0
chore: Bump pyarrow
dependabot[bot] Nov 9, 2023
052182b
fix: upgrade the pyarrow to latest v14.0.1 for CVE-2023-47248.
shuchu Nov 17, 2023
4f8efa7
chore: Bump follow-redirects from 1.15.0 to 1.15.4 in /sdk/python/fea…
dependabot[bot] Jan 10, 2024
e436f77
chore: Bump follow-redirects from 1.14.7 to 1.15.4 in /ui (#3878)
dependabot[bot] Jan 10, 2024
b26f25a
Update release.yml to latest nodejs
woop Jan 13, 2024
9237361
chore(release): release 0.35.0
feast-ci-bot Jan 13, 2024
8688acd
feat: Add python bytes to array type conversion support proto (#3874)
robhowley Jan 15, 2024
99178f9
chore: Bump jupyter-server from 2.10.1 to 2.11.2 in /sdk/python/requi…
dependabot[bot] Jan 15, 2024
f4a3cb1
chore: Bump jinja2 from 3.1.2 to 3.1.3 in /sdk/python/requirements (#…
dependabot[bot] Jan 16, 2024
ac6529c
Move maintainers to emeritus (#3888)
woop Jan 16, 2024
4c90624
chore: Bump jupyter-lsp from 2.2.0 to 2.2.2 in /sdk/python/requiremen…
dependabot[bot] Jan 19, 2024
8f65fe1
chore: Bump cryptography from 41.0.5 to 41.0.6 in /sdk/python/require…
dependabot[bot] Jan 19, 2024
bdd7dfb
fix: Allow trancated timestamps when converting (#3861)
jparkzz Jan 19, 2024
0a06a2b
chore: Bump zod from 3.15.1 to 3.22.3 in /sdk/python/feast/ui (#3816)
dependabot[bot] Jan 22, 2024
b80bcd6
chore: Bump google.golang.org/grpc from 1.53.0 to 1.56.3 (#3820)
dependabot[bot] Jan 22, 2024
61fdb00
chore: Bump @babel/traverse from 7.16.10 to 7.23.2 in /ui (#3801)
dependabot[bot] Jan 22, 2024
a75d417
chore: Bump zod from 3.19.1 to 3.22.3 in /ui (#3817)
dependabot[bot] Jan 22, 2024
86d6221
fix: Correct the returning class proto type of StreamFeatureView to S…
shuchu Jan 24, 2024
9a3590e
fix: Verify the existence of Registry tables in snowflake before call…
shuchu Jan 24, 2024
c0d358a
revert: Verify the existence of Registry tables in snowflake… (#3907)
etirelli Jan 25, 2024
8d6bec8
feat: Add support for arrays in snowflake (#3769)
JohnLemmonMedely Jan 25, 2024
ea8ad17
feat: Support s3gov schema by snowflake offline store during material…
alex-vinnik-sp Jan 27, 2024
2f99a61
fix: Create index only if not exists during MySQL online store update…
gee-senbong Jan 30, 2024
987f0fd
fix: Bytewax materialization engine fails when loading feature_store.…
marti-jorda-roca Jan 30, 2024
fa8cfd4
Update maintainers.md (#3918)
woop Jan 30, 2024
936ecfd
docs: Updating maintainers.md (#3919)
franciscojavierarceo Jan 30, 2024
8bce6dc
docs: Updated development guide to include compiling the protos (#3896)
franciscojavierarceo Jan 31, 2024
7153cad
fix: Prevent spamming pull busybox from dockerhub (#3923)
sudohainguyen Feb 2, 2024
bf026a0
chore: Bump jupyterlab from 4.0.8 to 4.0.11 in /sdk/python/requiremen…
dependabot[bot] Feb 4, 2024
f494f02
fix: Remove unnecessary dependency on mysqlclient (#3925)
tokoko Feb 4, 2024
1f3cab8
ci: Extend python base version for test cases (#3929)
sudohainguyen Feb 6, 2024
373e624
feat: Add gRPC Registry Server (#3924)
tokoko Feb 6, 2024
b4aed65
chore: Set upper bound for moto package (#3937)
sudohainguyen Feb 7, 2024
49d2988
fix: Trino as an OfflineStore Access Denied when BasicAuthenticaion (…
Woo-Dong Feb 8, 2024
c16e5af
fix: Typo Correction in Feast UI Readme (#3939)
tsisodia10 Feb 8, 2024
bdce99d
docs: Add ScyllaDB as online store alternative (fixed DCO) (#3944)
zseta Feb 9, 2024
7d75fc5
fix: Add conn.commit() to Postgresonline_write_batch.online_write_bat…
job-almekinders Feb 9, 2024
d3a2a45
fix: Transformation server doesn't generate files from proto (#3902)
tokoko Feb 9, 2024
4e450ad
chore: Bumping fastapi + starlette (#3938)
bushwhackr Feb 10, 2024
dbb59ba
fix: Rewrite Spark materialization engine to use mapInPandas (#3936)
tokoko Feb 13, 2024
5c9f592
chore: Loosen fsspec requirements to allow recent releases (#3922)
cburroughs Feb 14, 2024
ec11a7c
feat: Update the Pydantic from v1 to v2 (#3948)
shuchu Feb 15, 2024
8d45c93
fix: issue-3771, fix document error as not shortcut -f option in code.
shuchu Oct 9, 2023
4016aa4
Merge branch 'issue-3771' of github.com:shuchu/feast into issue-3771
shuchu Feb 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr_integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [ "3.8" ]
python-version: [ "3.8", "3.10" ]
os: [ ubuntu-latest ]
env:
OS: ${{ matrix.os }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr_local_integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [ "3.8" ]
python-version: [ "3.8", "3.10" ]
os: [ ubuntu-latest ]
env:
OS: ${{ matrix.os }}
Expand Down
18 changes: 8 additions & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
node-version: "lts/*"
- name: Release (Dry Run)
id: get_versions
run: |
Expand All @@ -60,10 +59,10 @@ jobs:
NEXT_VERSION: ${{ needs.get_dry_release_versions.outputs.next_version }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
node-version: "lts/*"
- name: Bump file versions
run: python ./infra/scripts/release/bump_file_versions.py ${CURRENT_VERSION} ${NEXT_VERSION}
- name: Install yarn dependencies
Expand Down Expand Up @@ -101,10 +100,10 @@ jobs:
NEXT_VERSION: ${{ needs.get_dry_release_versions.outputs.next_version }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
node-version: "lts/*"
- name: Bump file versions (temporarily for Web UI publish)
run: python ./infra/scripts/release/bump_file_versions.py ${CURRENT_VERSION} ${NEXT_VERSION}
- name: Install yarn dependencies
Expand Down Expand Up @@ -139,8 +138,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
node-version: "lts/*"
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ jobs:
exclude:
- os: macOS-latest
python-version: "3.9"
- os: macOS-latest
python-version: "3.10"
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
Expand Down
37 changes: 37 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,42 @@
# Changelog

# [0.35.0](https://github.com/feast-dev/feast/compare/v0.34.0...v0.35.0) (2024-01-13)


### Bug Fixes

* Add async refresh to prevent synchronous refresh in main thread ([#3812](https://github.com/feast-dev/feast/issues/3812)) ([9583ed6](https://github.com/feast-dev/feast/commit/9583ed6b4ae8d3b97934bf0c80ecb236ed1e2895))
* Adopt connection pooling for HBase ([#3793](https://github.com/feast-dev/feast/issues/3793)) ([b3852bf](https://github.com/feast-dev/feast/commit/b3852bfb8b27bf07736935f465da3067fcbac0ae))
* Bytewax engine create configmap from object ([#3821](https://github.com/feast-dev/feast/issues/3821)) ([25e9775](https://github.com/feast-dev/feast/commit/25e97756adedfd1227d591ae74bdf60655f9067e))
* Fix warnings from deprecated paths and update default log level ([#3757](https://github.com/feast-dev/feast/issues/3757)) ([68a8737](https://github.com/feast-dev/feast/commit/68a87379c42567f338d86cb2be90520cc6d4bfb6))
* improve parsing bytewax job status ([5983f40](https://github.com/feast-dev/feast/commit/5983f40f8f5df5dbbcd2640f83ef82c19cdb4d19))
* make bytewax settings unexposed ([ae1bb8b](https://github.com/feast-dev/feast/commit/ae1bb8bdd1b9e293809519971935c93c2214d791))
* Make generated temp table name escaped ([#3797](https://github.com/feast-dev/feast/issues/3797)) ([175d796](https://github.com/feast-dev/feast/commit/175d7969b1f75ab797aff9c92a70d845297444ad))
* Pin numpy version to avoid spammy deprecation messages ([774ed33](https://github.com/feast-dev/feast/commit/774ed33a067bf9bf087520325b72f4f4d194106a))
* Redundant feature materialization and premature incremental materialization timestamp updates ([#3789](https://github.com/feast-dev/feast/issues/3789)) ([417b16b](https://github.com/feast-dev/feast/commit/417b16b57af7b38fbd0708b9a0c5d5035ed021fd)), closes [#6](https://github.com/feast-dev/feast/issues/6) [#7](https://github.com/feast-dev/feast/issues/7)
* Resolve hbase hotspot issue when materializing ([#3790](https://github.com/feast-dev/feast/issues/3790)) ([7376db8](https://github.com/feast-dev/feast/commit/7376db8dbd1d3168a1262fbbc0ce3899be8d0c34))
* Set keepalives_idle None by default ([#3756](https://github.com/feast-dev/feast/issues/3756)) ([8717e9b](https://github.com/feast-dev/feast/commit/8717e9bf0fd253454982b9c9e9527c4d41906e9c))
* Set upper bound for bigquery client due to its breaking changes ([2151c39](https://github.com/feast-dev/feast/commit/2151c39d1a8d8eba114306411dd4bd91ac0ce3f6))
* UI project cannot handle fallback routes ([#3766](https://github.com/feast-dev/feast/issues/3766)) ([96ece0f](https://github.com/feast-dev/feast/commit/96ece0fe94a07cc6f1dabf5d6c9b061b48b06d67))
* update dependencies versions due to conflicts ([5dc0b24](https://github.com/feast-dev/feast/commit/5dc0b241ec68aa10fd783569bf0ae12c5752f20f))
* Update jackson and remove unnecessary logging ([#3809](https://github.com/feast-dev/feast/issues/3809)) ([018d0ea](https://github.com/feast-dev/feast/commit/018d0eab69dde63266f2c56813045ea5c5523f76))
* upgrade the pyarrow to latest v14.0.1 for CVE-2023-47248. ([052182b](https://github.com/feast-dev/feast/commit/052182bcca046e35456674fc7d524825882f4b35))


### Features

* Add get online feature rpc to gprc server ([#3815](https://github.com/feast-dev/feast/issues/3815)) ([01db8cc](https://github.com/feast-dev/feast/commit/01db8cce6f82d4c6e496041351fb6b56eb2645b0))
* Add materialize and materialize-incremental rest endpoints ([#3761](https://github.com/feast-dev/feast/issues/3761)) ([fa600fe](https://github.com/feast-dev/feast/commit/fa600fe3c4b1d5fdd383a9367511ac5616ee7a32)), closes [#3760](https://github.com/feast-dev/feast/issues/3760)
* add redis sentinel support ([3387a15](https://github.com/feast-dev/feast/commit/3387a15d2b7e8dea430a271570be5a19b32bd3fe))
* add redis sentinel support ([4337c89](https://github.com/feast-dev/feast/commit/4337c89083a3cfca21ee1beef473fda13b0e9014))
* add redis sentinel support format lint ([aad8718](https://github.com/feast-dev/feast/commit/aad8718d24d893b3ff8c5864c5b8d210cfcdb22f))
* Add support for `table_create_disposition` in bigquery job for offline store ([#3762](https://github.com/feast-dev/feast/issues/3762)) ([6a728fe](https://github.com/feast-dev/feast/commit/6a728fe66db0286ea10301d1fe693d6dcba4e4f4))
* Add support for in_cluster config and additional labels for bytewax materialization ([#3754](https://github.com/feast-dev/feast/issues/3754)) ([2192e65](https://github.com/feast-dev/feast/commit/2192e6527fa10f1580e4dd8f350e05e45af981b7))
* Apply cache to load proto registry for performance ([#3702](https://github.com/feast-dev/feast/issues/3702)) ([709c709](https://github.com/feast-dev/feast/commit/709c7098dc28a35dd488f5079d3787cf1f74ec03))
* Make bytewax job write as mini-batches ([#3777](https://github.com/feast-dev/feast/issues/3777)) ([9b0e5ce](https://github.com/feast-dev/feast/commit/9b0e5ce2d1b617fcdcf0699c8b0cf8549a5e5ac5))
* Optimize bytewax pod resource with zero-copy ([9cf9d96](https://github.com/feast-dev/feast/commit/9cf9d965a5566a87bb7419f2e8509666076f035f))
* Support GCS filesystem for bytewax engine ([#3774](https://github.com/feast-dev/feast/issues/3774)) ([fb6b807](https://github.com/feast-dev/feast/commit/fb6b807f8b32776d388757ca431d290c03170c66))

# [0.34.0](https://github.com/feast-dev/feast/compare/v0.33.0...v0.34.0) (2023-09-07)


Expand Down
11 changes: 10 additions & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,14 @@
# Core utils
/sdk/python/feast/infra/offline_stores/offline_utils.py @feast-dev/maintainers @sfc-gh-madkins

# BigQuery
# Offline interfaces
/sdk/python/feast/infra/offline_stores/offline_store.py @feast-dev/maintainers

# BigQuery
/sdk/python/feast/infra/offline_stores/bigquery.py @sudohainguyen
/sdk/python/feast/infra/offline_stores/bigquery_source.py @sudohainguyen
/sdk/python/tests/integration/feature_repos/universal/data_sources/bigquery.py @sudohainguyen

# Snowflake
/sdk/python/feast/infra/offline_stores/snowflake* @sfc-gh-madkins

Expand All @@ -27,6 +32,10 @@

# ==== Online Stores ====

# HBase
/sdk/python/feast/infra/online_stores/hbase.py @sudohainguyen
/sdk/python/feast/infra/online_stores/contrib/hbase_online_store @sudohainguyen

# Redis
/sdk/python/feast/infra/online_stores/redis.py @DvirDukhan
/java/feast/serving/connectors/redis/ @DvirDukhan
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ format-python:
cd ${ROOT_DIR}/sdk/python; python -m black --target-version py38 feast tests

lint-python:
cd ${ROOT_DIR}/sdk/python; python -m mypy
cd ${ROOT_DIR}/sdk/python; python -m mypy --exclude=/tests/ --follow-imports=skip feast
cd ${ROOT_DIR}/sdk/python; python -m isort feast/ tests/ --check-only
cd ${ROOT_DIR}/sdk/python; python -m flake8 feast/ tests/
cd ${ROOT_DIR}/sdk/python; python -m black --check feast tests
Expand Down
13 changes: 9 additions & 4 deletions community/maintainers.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@ In alphabetical order
| Name | GitHub Username | Email | Organization |
| -------------- | ---------------- |-----------------------------| ------------------ |
| Achal Shah | `achals` | [email protected] | Tecton |
| Felix Wang | `felixwang9817` | [email protected] | Tecton |
| Kevin Zhang | `kevjumba` | [email protected] | Tecton |
| Miles Adkins | `sfc-gh-madkins` | [email protected] | Snowflake |
| Willem Pienaar | `woop` | [email protected] | Tecton |
| Edson Tirelli | `etirelli` | [email protected] | Red Hat |
| Francisco Javier Arceo | `franciscojavierarceo` | [email protected] | Affirm |
| Hao Xu | `HaoXuAI` | [email protected] | JPMorgan |
| Jeremy Ary | `jeremyary` | [email protected] | Red Hat |
| Shuchu Han | `shuchu` | [email protected] | Independent |
| Willem Pienaar | `woop` | [email protected] | Cleric |
| Zhiling Chen | `zhilingc` | [email protected] | GetGround |

## Emeritus Maintainers
Expand All @@ -29,3 +31,6 @@ In alphabetical order
| Danny Chiao | adchia | [email protected] | Tecton |
| David Liu | mavysavydav | [email protected] | Twitter |
| Matt Delacour | MattDelac | [email protected] | Shopify |
| Miles Adkins | sfc-gh-madkins | [email protected] | Snowflake |
| Felix Wang | `felixwang9817` | [email protected] | Tecton |
| Kevin Zhang | `kevjumba` | [email protected] | Tecton |
1 change: 1 addition & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
* [MySQL (contrib)](reference/online-stores/mysql.md)
* [Rockset (contrib)](reference/online-stores/rockset.md)
* [Hazelcast (contrib)](reference/online-stores/hazelcast.md)
* [ScyllaDB (contrib)](reference/online-stores/scylladb.md)
* [Providers](reference/providers/README.md)
* [Local](reference/providers/local.md)
* [Google Cloud Platform](reference/providers/google-cloud-platform.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/how-to-guides/structuring-repos.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ An example of how such a repository would be structured is as follows:

Users can then apply the applying them to each environment in this way:
```shell
feast -f staging/feature_store.yaml apply
feast --feature-store-yaml staging/feature_store.yaml apply
```

This setup has the advantage that you can share the feature definitions entirely, which may prevent issues with copy-pasting code.
Expand Down
10 changes: 10 additions & 0 deletions docs/project/development-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,16 @@ pip install -e ".[dev]"

This will allow the installed feast version to automatically reflect changes to your local development version of Feast without needing to reinstall everytime you make code changes.

10. Compile the protubufs
```sh
make compile-protos-python
```

11. Spin up Docker Image
```sh
docker build -t docker-whale -f ./sdk/python/feast/infra/feature_servers/multicloud/Dockerfile .
```

### Code Style & Linting
Feast Python SDK / CLI codebase:
- Conforms to [Black code style](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html)
Expand Down
4 changes: 3 additions & 1 deletion docs/reference/online-stores/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,6 @@ Please see [Online Store](../../getting-started/architecture-and-components/onli
[hazelcast.md](hazelcast.md)
{% endcontent-ref %}


{% content-ref url="scylladb.md" %}
[scylladb.md](scylladb.md)
{% endcontent-ref %}
15 changes: 15 additions & 0 deletions docs/reference/online-stores/redis.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,21 @@ online_store:
```
{% endcode %}

Connecting to a Redis Sentinel with SSL enabled and password authentication:

{% code title="feature_store.yaml" %}
```yaml
project: my_feature_repo
registry: data/registry.db
provider: local
online_store:
type: redis
redis_type: redis_sentinel
sentinel_master: mymaster
connection_string: "redis1:26379,ssl=true,password=my_password"
```
{% endcode %}

Additionally, the redis online store also supports automatically deleting data via a TTL mechanism.
The TTL is applied at the entity level, so feature values from any associated feature views for an entity are removed together.
This TTL can be set in the `feature_store.yaml`, using the `key_ttl_seconds` field in the online store. For example:
Expand Down
94 changes: 94 additions & 0 deletions docs/reference/online-stores/scylladb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# ScyllaDB Cloud online store

## Description

ScyllaDB is a low-latency and high-performance Cassandra-compatible (uses CQL) database. You can use the existing Cassandra connector to use ScyllaDB as an online store in Feast.

The [ScyllaDB](https://www.scylladb.com/) online store provides support for materializing feature values into a ScyllaDB or [ScyllaDB Cloud](https://www.scylladb.com/product/scylla-cloud/) cluster for serving online features real-time.

## Getting started

Install Feast with Cassandra support:
```bash
pip install "feast[cassandra]"
```

Create a new Feast project:
```bash
feast init REPO_NAME -t cassandra
```

### Example (ScyllaDB)

{% code title="feature_store.yaml" %}
```yaml
project: scylla_feature_repo
registry: data/registry.db
provider: local
online_store:
type: cassandra
hosts:
- 172.17.0.2
keyspace: feast
username: scylla
password: password
```
{% endcode %}

### Example (ScyllaDB Cloud)

{% code title="feature_store.yaml" %}
```yaml
project: scylla_feature_repo
registry: data/registry.db
provider: local
online_store:
type: cassandra
hosts:
- node-0.aws_us_east_1.xxxxxxxx.clusters.scylla.cloud
- node-1.aws_us_east_1.xxxxxxxx.clusters.scylla.cloud
- node-2.aws_us_east_1.xxxxxxxx.clusters.scylla.cloud
keyspace: feast
username: scylla
password: password
```
{% endcode %}


The full set of configuration options is available in [CassandraOnlineStoreConfig](https://rtd.feast.dev/en/master/#feast.infra.online_stores.contrib.cassandra_online_store.cassandra_online_store.CassandraOnlineStoreConfig).
For a full explanation of configuration options please look at file
`sdk/python/feast/infra/online_stores/contrib/cassandra_online_store/README.md`.

Storage specifications can be found at `docs/specs/online_store_format.md`.

## 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 Cassandra plugin.

| | Cassandra |
| :-------------------------------------------------------- | :-------- |
| 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 | yes |
| 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).

## Resources

* [Sample application with ScyllaDB](https://feature-store.scylladb.com/stable/)
* [ScyllaDB website](https://www.scylladb.com/)
* [ScyllaDB Cloud documentation](https://cloud.docs.scylladb.com/stable/)
18 changes: 9 additions & 9 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ require (
github.com/apache/arrow/go/v8 v8.0.0
github.com/ghodss/yaml v1.0.0
github.com/go-redis/redis/v8 v8.11.4
github.com/golang/protobuf v1.5.2
github.com/golang/protobuf v1.5.3
github.com/google/uuid v1.3.0
github.com/mattn/go-sqlite3 v1.14.12
github.com/pkg/errors v0.9.1
github.com/spaolacci/murmur3 v1.1.0
github.com/stretchr/testify v1.7.0
google.golang.org/grpc v1.53.0
google.golang.org/protobuf v1.28.1
google.golang.org/grpc v1.56.3
google.golang.org/protobuf v1.30.0
)

require (
Expand All @@ -37,13 +37,13 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/zeebo/xxh3 v1.0.2 // indirect
golang.org/x/exp v0.0.0-20220407100705-7b9b53b0aca4 // indirect
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
golang.org/x/net v0.7.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
golang.org/x/tools v0.1.12 // indirect
golang.org/x/mod v0.8.0 // indirect
golang.org/x/net v0.17.0 // indirect
golang.org/x/sys v0.13.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/tools v0.6.0 // indirect
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect
google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
Expand Down
Loading
Loading