-
Notifications
You must be signed in to change notification settings - Fork 1k
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
feat: Add Milvus Vector Database Implementation #4751
Conversation
a714f85
to
458d434
Compare
c8a989f
to
c8f81a5
Compare
9f883cb
to
01c9a5f
Compare
@franciscojavierarceo as we add support for additional data store types, should we encourage devs to update the operator db store types accordingly as well? or should we treat that as a separate chore since the dev language is different?
feast/infra/feast-operator/api/v1alpha1/featurestore_types.go Lines 169 to 181 in 19424bc
looking at the python code, it appears we need to add several more supported types to the operator. |
83db9bc
to
a026729
Compare
Definitely. We can add an explicit test for it too and update the docs. I can do that in a separate PR after I get this thing wrangled. I'm still only partially through this and I still have quite a bit of work to do. |
e27258d
to
d05d601
Compare
e6a3f1f
to
218f58b
Compare
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
…ine retrieval. long term this can all go in the FeatureView class and in get_online_features Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
218f58b
to
bd5ff48
Compare
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
# [0.43.0](v0.42.0...v0.43.0) (2025-01-20) ### Bug Fixes * Add k8s module to feature-server image ([#4839](#4839)) ([f565565](f565565)) * Adding input to workflow ([e3e8c97](e3e8c97)) * Change image push to use --all-tags option ([#4926](#4926)) ([02458fd](02458fd)) * Fix integration build/push for images ([#4923](#4923)) ([695e49b](695e49b)) * Fix integration operator push ([#4924](#4924)) ([13c7267](13c7267)) * Fix release.yml ([#4845](#4845)) ([b4768a8](b4768a8)) * Fixing some of the warnings with the github actions ([#4763](#4763)) ([1119439](1119439)) * Improve status.applied updates & add offline pvc unit test ([#4871](#4871)) ([3f49517](3f49517)) * Made fixes to Go Operator DB persistence ([#4830](#4830)) ([cdc0753](cdc0753)) * Make transformation_service_endpoint configuration optional ([#4880](#4880)) ([c62377b](c62377b)) * Move pre-release image builds to quay.io, retire gcr.io pushes ([#4922](#4922)) ([40b975b](40b975b)) * Performance regression in /get-online-features ([#4892](#4892)) ([0db56a2](0db56a2)) * Refactor Operator to deploy all feast services to the same Deployment/Pod ([#4863](#4863)) ([88854dd](88854dd)) * Remove unnecessary google cloud steps & upgrade docker action versions ([#4925](#4925)) ([32aaf9a](32aaf9a)) * Remove verifyClient TLS offlineStore option from the Operator ([#4847](#4847)) ([79fa247](79fa247)) * Resolving syntax error while querying a feature view with column name starting with a number and BigQuery as data source ([#4908](#4908)) ([d3495a0](d3495a0)) * Updated python-helm-demo example to use MinIO instead of GS ([#4691](#4691)) ([31afd99](31afd99)) ### Features * Add date field support to spark ([#4913](#4913)) ([a8aeb79](a8aeb79)) * Add date support when converting from python to feast types ([#4918](#4918)) ([bd9f071](bd9f071)) * Add duckdb extra to multicloud release image ([#4862](#4862)) ([b539eba](b539eba)) * Add milvus package to release image & option to Operator ([#4870](#4870)) ([ef724b6](ef724b6)) * Add Milvus Vector Database Implementation ([#4751](#4751)) ([22c7b58](22c7b58)) * Add online/offline replica support ([#4812](#4812)) ([b97da6c](b97da6c)) * Added pvc accessModes support ([#4851](#4851)) ([a73514c](a73514c)) * Adding EnvFrom support for the OptionalConfigs type to the Go Operator ([#4909](#4909)) ([e01e510](e01e510)) * Adding Feature Server to components docs ([#4868](#4868)) ([f95e54b](f95e54b)) * Adding features field to retrieve_online_features to return mor… ([#4869](#4869)) ([7df287e](7df287e)) * Adding packages for Milvus Online Store ([#4854](#4854)) ([49171bd](49171bd)) * Adding vector_search parameter to fields ([#4855](#4855)) ([739eaa7](739eaa7)) * Feast Operator support log level configuration for services ([#4808](#4808)) ([19424bc](19424bc)) * Go Operator - Parsing the output to go structs ([#4832](#4832)) ([732865f](732865f)) * Implement `date_partition_column` for `SparkSource` ([#4844](#4844)) ([c5ffa03](c5ffa03)) * Loading the CA trusted store certificate into Feast to verify the public certificate. ([#4852](#4852)) ([132ce2a](132ce2a)) * Operator E2E test to validate FeatureStore custom resource using remote registry ([#4822](#4822)) ([d558ef7](d558ef7)) * Operator improvements ([#4928](#4928)) ([7a1f4dd](7a1f4dd)) * Removing the tls_verify_client flag from feast cli for offline server. ([#4842](#4842)) ([8320e23](8320e23)) * Separating the RBAC and Remote related integration tests. ([#4905](#4905)) ([76e1e21](76e1e21)) * Snyk vulnerability issues fix. ([#4867](#4867)) ([dbc9207](dbc9207)), closes [#6](#6) [#3](#3) [#4](#4) * Use ASOF JOIN in Snowflake offline store query ([#4850](#4850)) ([8f591a2](8f591a2)) ### Reverts * Revert "chore: Add Milvus to pr_integration_tests.yml" ([#4900](#4900)) ([07958f7](07958f7)), closes [#4891](#4891)
# [0.43.0](feast-dev/feast@v0.42.0...v0.43.0) (2025-01-20) ### Bug Fixes * Add k8s module to feature-server image ([feast-dev#4839](feast-dev#4839)) ([f565565](feast-dev@f565565)) * Adding input to workflow ([e3e8c97](feast-dev@e3e8c97)) * Change image push to use --all-tags option ([feast-dev#4926](feast-dev#4926)) ([02458fd](feast-dev@02458fd)) * Fix integration build/push for images ([feast-dev#4923](feast-dev#4923)) ([695e49b](feast-dev@695e49b)) * Fix integration operator push ([feast-dev#4924](feast-dev#4924)) ([13c7267](feast-dev@13c7267)) * Fix release.yml ([feast-dev#4845](feast-dev#4845)) ([b4768a8](feast-dev@b4768a8)) * Fixing some of the warnings with the github actions ([feast-dev#4763](feast-dev#4763)) ([1119439](feast-dev@1119439)) * Improve status.applied updates & add offline pvc unit test ([feast-dev#4871](feast-dev#4871)) ([3f49517](feast-dev@3f49517)) * Made fixes to Go Operator DB persistence ([feast-dev#4830](feast-dev#4830)) ([cdc0753](feast-dev@cdc0753)) * Make transformation_service_endpoint configuration optional ([feast-dev#4880](feast-dev#4880)) ([c62377b](feast-dev@c62377b)) * Move pre-release image builds to quay.io, retire gcr.io pushes ([feast-dev#4922](feast-dev#4922)) ([40b975b](feast-dev@40b975b)) * Performance regression in /get-online-features ([feast-dev#4892](feast-dev#4892)) ([0db56a2](feast-dev@0db56a2)) * Refactor Operator to deploy all feast services to the same Deployment/Pod ([feast-dev#4863](feast-dev#4863)) ([88854dd](feast-dev@88854dd)) * Remove unnecessary google cloud steps & upgrade docker action versions ([feast-dev#4925](feast-dev#4925)) ([32aaf9a](feast-dev@32aaf9a)) * Remove verifyClient TLS offlineStore option from the Operator ([feast-dev#4847](feast-dev#4847)) ([79fa247](feast-dev@79fa247)) * Resolving syntax error while querying a feature view with column name starting with a number and BigQuery as data source ([feast-dev#4908](feast-dev#4908)) ([d3495a0](feast-dev@d3495a0)) * Updated python-helm-demo example to use MinIO instead of GS ([feast-dev#4691](feast-dev#4691)) ([31afd99](feast-dev@31afd99)) ### Features * Add date field support to spark ([feast-dev#4913](feast-dev#4913)) ([a8aeb79](feast-dev@a8aeb79)) * Add date support when converting from python to feast types ([feast-dev#4918](feast-dev#4918)) ([bd9f071](feast-dev@bd9f071)) * Add duckdb extra to multicloud release image ([feast-dev#4862](feast-dev#4862)) ([b539eba](feast-dev@b539eba)) * Add milvus package to release image & option to Operator ([feast-dev#4870](feast-dev#4870)) ([ef724b6](feast-dev@ef724b6)) * Add Milvus Vector Database Implementation ([feast-dev#4751](feast-dev#4751)) ([22c7b58](feast-dev@22c7b58)) * Add online/offline replica support ([feast-dev#4812](feast-dev#4812)) ([b97da6c](feast-dev@b97da6c)) * Added pvc accessModes support ([feast-dev#4851](feast-dev#4851)) ([a73514c](feast-dev@a73514c)) * Adding EnvFrom support for the OptionalConfigs type to the Go Operator ([feast-dev#4909](feast-dev#4909)) ([e01e510](feast-dev@e01e510)) * Adding Feature Server to components docs ([feast-dev#4868](feast-dev#4868)) ([f95e54b](feast-dev@f95e54b)) * Adding features field to retrieve_online_features to return mor… ([feast-dev#4869](feast-dev#4869)) ([7df287e](feast-dev@7df287e)) * Adding packages for Milvus Online Store ([feast-dev#4854](feast-dev#4854)) ([49171bd](feast-dev@49171bd)) * Adding vector_search parameter to fields ([feast-dev#4855](feast-dev#4855)) ([739eaa7](feast-dev@739eaa7)) * Feast Operator support log level configuration for services ([feast-dev#4808](feast-dev#4808)) ([19424bc](feast-dev@19424bc)) * Go Operator - Parsing the output to go structs ([feast-dev#4832](feast-dev#4832)) ([732865f](feast-dev@732865f)) * Implement `date_partition_column` for `SparkSource` ([feast-dev#4844](feast-dev#4844)) ([c5ffa03](feast-dev@c5ffa03)) * Loading the CA trusted store certificate into Feast to verify the public certificate. ([feast-dev#4852](feast-dev#4852)) ([132ce2a](feast-dev@132ce2a)) * Operator E2E test to validate FeatureStore custom resource using remote registry ([feast-dev#4822](feast-dev#4822)) ([d558ef7](feast-dev@d558ef7)) * Operator improvements ([feast-dev#4928](feast-dev#4928)) ([7a1f4dd](feast-dev@7a1f4dd)) * Removing the tls_verify_client flag from feast cli for offline server. ([feast-dev#4842](feast-dev#4842)) ([8320e23](feast-dev@8320e23)) * Separating the RBAC and Remote related integration tests. ([feast-dev#4905](feast-dev#4905)) ([76e1e21](feast-dev@76e1e21)) * Snyk vulnerability issues fix. ([feast-dev#4867](feast-dev#4867)) ([dbc9207](feast-dev@dbc9207)), closes [#6](feast-dev#6) [#3](feast-dev#3) [#4](feast-dev#4) * Use ASOF JOIN in Snowflake offline store query ([feast-dev#4850](feast-dev#4850)) ([8f591a2](feast-dev@8f591a2)) ### Reverts * Revert "chore: Add Milvus to pr_integration_tests.yml" ([feast-dev#4900](feast-dev#4900)) ([07958f7](feast-dev@07958f7)), closes [feast-dev#4891](feast-dev#4891)
What this PR does / why we need it:
This PR introduces the Milvus Vector Database into Feast. This integration enhances the capability of Feast to handle and store vector embeddings, along with traditional features. More specifically, this allows for vector retrieval configurable at the feature-level.
.github/workflows/pr_local_integration_tests.yml
Makefile
docs/how-to-guides/customizing-feast/adding-support-for-a-new-online-store.md
sdk/python/docs/source/feast.infra.online_stores.milvus_online_store.rst
sdk/python/feast/infra/online_stores/milvus_online_store/milvus.py
sdk/python/feast/repo_config.py
sdk/python/feast/type_map.py
_proto_value_to_value_type
functionsdk/python/tests/foo_provider.py
requested_features
as Optionalsdk/python/tests/integration/online_store/test_universal_online.py
Which issue(s) this PR fixes:
#4364
Misc
Will add docs in subsequent PR