Commit 49171bd 1 parent 79fa247 commit 49171bd Copy full SHA for 49171bd
File tree 10 files changed +114
-12
lines changed
feast/infra/online_stores/milvus_online_store
tests/integration/feature_repos/universal/online_store
10 files changed +114
-12
lines changed Original file line number Diff line number Diff line change
1
+ from tests .integration .feature_repos .integration_test_repo_config import (
2
+ IntegrationTestRepoConfig ,
3
+ )
4
+ from tests .integration .feature_repos .universal .online_store .milvus import (
5
+ MilvusOnlineStoreCreator ,
6
+ )
7
+
8
+ FULL_REPO_CONFIGS = [
9
+ IntegrationTestRepoConfig (
10
+ online_store = "milvus" , online_store_creator = MilvusOnlineStoreCreator
11
+ ),
12
+ ]
Original file line number Diff line number Diff line change @@ -180,6 +180,8 @@ elasticsearch==8.16.0
180
180
# via feast (setup.py)
181
181
entrypoints==0.4
182
182
# via altair
183
+ environs==9.5.0
184
+ # via pymilvus
183
185
exceptiongroup==1.2.2
184
186
# via
185
187
# anyio
@@ -275,6 +277,7 @@ grpcio==1.68.0
275
277
# grpcio-status
276
278
# grpcio-testing
277
279
# grpcio-tools
280
+ # pymilvus
278
281
# qdrant-client
279
282
grpcio-health-checking==1.62.3
280
283
# via feast (setup.py)
@@ -443,13 +446,17 @@ markupsafe==3.0.2
443
446
# nbconvert
444
447
# werkzeug
445
448
marshmallow==3.23.1
446
- # via great-expectations
449
+ # via
450
+ # environs
451
+ # great-expectations
447
452
matplotlib-inline==0.1.7
448
453
# via
449
454
# ipykernel
450
455
# ipython
451
456
mdurl==0.1.2
452
457
# via markdown-it-py
458
+ milvus-lite==2.4.10
459
+ # via pymilvus
453
460
minio==7.1.0
454
461
# via feast (setup.py)
455
462
mistune==3.0.2
@@ -548,6 +555,7 @@ pandas==2.2.3
548
555
# google-cloud-bigquery
549
556
# great-expectations
550
557
# ibis-framework
558
+ # pymilvus
551
559
# snowflake-connector-python
552
560
pandocfilters==1.5.1
553
561
# via nbconvert
@@ -614,6 +622,7 @@ protobuf==4.25.5
614
622
# grpcio-tools
615
623
# mypy-protobuf
616
624
# proto-plus
625
+ # pymilvus
617
626
# substrait
618
627
psutil==5.9.0
619
628
# via
@@ -658,7 +667,7 @@ pybindgen==0.22.1
658
667
# via feast (setup.py)
659
668
pycparser==2.22
660
669
# via cffi
661
- pydantic==2.10.1
670
+ pydantic==2.10.2
662
671
# via
663
672
# feast (setup.py)
664
673
# fastapi
@@ -679,6 +688,8 @@ pyjwt[crypto]==2.10.0
679
688
# msal
680
689
# singlestoredb
681
690
# snowflake-connector-python
691
+ pymilvus==2.4.9
692
+ # via feast (setup.py)
682
693
pymssql==2.3.2
683
694
# via feast (setup.py)
684
695
pymysql==1.1.1
@@ -738,7 +749,9 @@ python-dateutil==2.9.0.post0
738
749
# pandas
739
750
# trino
740
751
python-dotenv==1.0.1
741
- # via uvicorn
752
+ # via
753
+ # environs
754
+ # uvicorn
742
755
python-json-logger==2.0.7
743
756
# via jupyter-events
744
757
python-keycloak==4.2.2
@@ -839,6 +852,7 @@ setuptools==75.6.0
839
852
# jupyterlab
840
853
# kubernetes
841
854
# pip-tools
855
+ # pymilvus
842
856
# singlestoredb
843
857
singlestoredb==1.7.2
844
858
# via feast (setup.py)
@@ -939,6 +953,7 @@ tqdm==4.67.1
939
953
# via
940
954
# feast (setup.py)
941
955
# great-expectations
956
+ # milvus-lite
942
957
traitlets==5.14.3
943
958
# via
944
959
# comm
@@ -1018,6 +1033,8 @@ tzlocal==5.2
1018
1033
# via
1019
1034
# great-expectations
1020
1035
# trino
1036
+ ujson==5.10.0
1037
+ # via pymilvus
1021
1038
uri-template==1.3.0
1022
1039
# via jsonschema
1023
1040
urllib3==2.2.3
Original file line number Diff line number Diff line change @@ -95,7 +95,7 @@ pyarrow==18.0.0
95
95
# via
96
96
# feast (setup.py)
97
97
# dask-expr
98
- pydantic==2.10.1
98
+ pydantic==2.10.2
99
99
# via
100
100
# feast (setup.py)
101
101
# fastapi
Original file line number Diff line number Diff line change @@ -178,6 +178,8 @@ elasticsearch==8.16.0
178
178
# via feast (setup.py)
179
179
entrypoints==0.4
180
180
# via altair
181
+ environs==9.5.0
182
+ # via pymilvus
181
183
execnet==2.1.1
182
184
# via pytest-xdist
183
185
executing==2.1.0
@@ -268,6 +270,7 @@ grpcio==1.68.0
268
270
# grpcio-status
269
271
# grpcio-testing
270
272
# grpcio-tools
273
+ # pymilvus
271
274
# qdrant-client
272
275
grpcio-health-checking==1.62.3
273
276
# via feast (setup.py)
@@ -434,13 +437,17 @@ markupsafe==3.0.2
434
437
# nbconvert
435
438
# werkzeug
436
439
marshmallow==3.23.1
437
- # via great-expectations
440
+ # via
441
+ # environs
442
+ # great-expectations
438
443
matplotlib-inline==0.1.7
439
444
# via
440
445
# ipykernel
441
446
# ipython
442
447
mdurl==0.1.2
443
448
# via markdown-it-py
449
+ milvus-lite==2.4.10
450
+ # via pymilvus
444
451
minio==7.1.0
445
452
# via feast (setup.py)
446
453
mistune==3.0.2
@@ -539,6 +546,7 @@ pandas==2.2.3
539
546
# google-cloud-bigquery
540
547
# great-expectations
541
548
# ibis-framework
549
+ # pymilvus
542
550
# snowflake-connector-python
543
551
pandocfilters==1.5.1
544
552
# via nbconvert
@@ -605,6 +613,7 @@ protobuf==4.25.5
605
613
# grpcio-tools
606
614
# mypy-protobuf
607
615
# proto-plus
616
+ # pymilvus
608
617
# substrait
609
618
psutil==5.9.0
610
619
# via
@@ -649,7 +658,7 @@ pybindgen==0.22.1
649
658
# via feast (setup.py)
650
659
pycparser==2.22
651
660
# via cffi
652
- pydantic==2.10.1
661
+ pydantic==2.10.2
653
662
# via
654
663
# feast (setup.py)
655
664
# fastapi
@@ -670,6 +679,8 @@ pyjwt[crypto]==2.10.0
670
679
# msal
671
680
# singlestoredb
672
681
# snowflake-connector-python
682
+ pymilvus==2.4.9
683
+ # via feast (setup.py)
673
684
pymssql==2.3.2
674
685
# via feast (setup.py)
675
686
pymysql==1.1.1
@@ -729,7 +740,9 @@ python-dateutil==2.9.0.post0
729
740
# pandas
730
741
# trino
731
742
python-dotenv==1.0.1
732
- # via uvicorn
743
+ # via
744
+ # environs
745
+ # uvicorn
733
746
python-json-logger==2.0.7
734
747
# via jupyter-events
735
748
python-keycloak==4.2.2
@@ -830,6 +843,7 @@ setuptools==75.6.0
830
843
# jupyterlab
831
844
# kubernetes
832
845
# pip-tools
846
+ # pymilvus
833
847
# singlestoredb
834
848
singlestoredb==1.7.2
835
849
# via feast (setup.py)
@@ -920,6 +934,7 @@ tqdm==4.67.1
920
934
# via
921
935
# feast (setup.py)
922
936
# great-expectations
937
+ # milvus-lite
923
938
traitlets==5.14.3
924
939
# via
925
940
# comm
@@ -994,6 +1009,8 @@ tzlocal==5.2
994
1009
# via
995
1010
# great-expectations
996
1011
# trino
1012
+ ujson==5.10.0
1013
+ # via pymilvus
997
1014
uri-template==1.3.0
998
1015
# via jsonschema
999
1016
urllib3==2.2.3
Original file line number Diff line number Diff line change @@ -93,7 +93,7 @@ pyarrow==18.0.0
93
93
# via
94
94
# feast (setup.py)
95
95
# dask-expr
96
- pydantic==2.10.1
96
+ pydantic==2.10.2
97
97
# via
98
98
# feast (setup.py)
99
99
# fastapi
Original file line number Diff line number Diff line change @@ -182,6 +182,8 @@ elasticsearch==8.16.0
182
182
# via feast (setup.py)
183
183
entrypoints==0.4
184
184
# via altair
185
+ environs==9.5.0
186
+ # via pymilvus
185
187
exceptiongroup==1.2.2
186
188
# via
187
189
# anyio
@@ -277,6 +279,7 @@ grpcio==1.68.0
277
279
# grpcio-status
278
280
# grpcio-testing
279
281
# grpcio-tools
282
+ # pymilvus
280
283
# qdrant-client
281
284
grpcio-health-checking==1.62.3
282
285
# via feast (setup.py)
@@ -452,13 +455,17 @@ markupsafe==3.0.2
452
455
# nbconvert
453
456
# werkzeug
454
457
marshmallow==3.23.1
455
- # via great-expectations
458
+ # via
459
+ # environs
460
+ # great-expectations
456
461
matplotlib-inline==0.1.7
457
462
# via
458
463
# ipykernel
459
464
# ipython
460
465
mdurl==0.1.2
461
466
# via markdown-it-py
467
+ milvus-lite==2.4.10
468
+ # via pymilvus
462
469
minio==7.1.0
463
470
# via feast (setup.py)
464
471
mistune==3.0.2
@@ -556,6 +563,7 @@ pandas==2.2.3
556
563
# google-cloud-bigquery
557
564
# great-expectations
558
565
# ibis-framework
566
+ # pymilvus
559
567
# snowflake-connector-python
560
568
pandocfilters==1.5.1
561
569
# via nbconvert
@@ -622,6 +630,7 @@ protobuf==4.25.5
622
630
# grpcio-tools
623
631
# mypy-protobuf
624
632
# proto-plus
633
+ # pymilvus
625
634
# substrait
626
635
psutil==5.9.0
627
636
# via
@@ -666,7 +675,7 @@ pybindgen==0.22.1
666
675
# via feast (setup.py)
667
676
pycparser==2.22
668
677
# via cffi
669
- pydantic==2.10.1
678
+ pydantic==2.10.2
670
679
# via
671
680
# feast (setup.py)
672
681
# fastapi
@@ -687,6 +696,8 @@ pyjwt[crypto]==2.10.0
687
696
# msal
688
697
# singlestoredb
689
698
# snowflake-connector-python
699
+ pymilvus==2.4.9
700
+ # via feast (setup.py)
690
701
pymssql==2.3.2
691
702
# via feast (setup.py)
692
703
pymysql==1.1.1
@@ -746,7 +757,9 @@ python-dateutil==2.9.0.post0
746
757
# pandas
747
758
# trino
748
759
python-dotenv==1.0.1
749
- # via uvicorn
760
+ # via
761
+ # environs
762
+ # uvicorn
750
763
python-json-logger==2.0.7
751
764
# via jupyter-events
752
765
python-keycloak==4.2.2
@@ -847,6 +860,7 @@ setuptools==75.6.0
847
860
# jupyterlab
848
861
# kubernetes
849
862
# pip-tools
863
+ # pymilvus
850
864
# singlestoredb
851
865
singlestoredb==1.7.2
852
866
# via feast (setup.py)
@@ -947,6 +961,7 @@ tqdm==4.67.1
947
961
# via
948
962
# feast (setup.py)
949
963
# great-expectations
964
+ # milvus-lite
950
965
traitlets==5.14.3
951
966
# via
952
967
# comm
@@ -1028,6 +1043,8 @@ tzlocal==5.2
1028
1043
# via
1029
1044
# great-expectations
1030
1045
# trino
1046
+ ujson==5.10.0
1047
+ # via pymilvus
1031
1048
uri-template==1.3.0
1032
1049
# via jsonschema
1033
1050
urllib3==1.26.20
Original file line number Diff line number Diff line change @@ -97,7 +97,7 @@ pyarrow==18.0.0
97
97
# via
98
98
# feast (setup.py)
99
99
# dask-expr
100
- pydantic==2.10.1
100
+ pydantic==2.10.2
101
101
# via
102
102
# feast (setup.py)
103
103
# fastapi
Original file line number Diff line number Diff line change
1
+ from typing import Any , Dict
2
+
3
+ from testcontainers .milvus import MilvusContainer
4
+
5
+ from tests .integration .feature_repos .universal .online_store_creator import (
6
+ OnlineStoreCreator ,
7
+ )
8
+
9
+
10
+ class MilvusOnlineStoreCreator (OnlineStoreCreator ):
11
+ def __init__ (self , project_name : str , ** kwargs ):
12
+ super ().__init__ (project_name )
13
+ self .fixed_port = 19530
14
+ self .container = MilvusContainer ("milvusdb/milvus:v2.4.4" ).with_exposed_ports (
15
+ self .fixed_port
16
+ )
17
+
18
+ def create_online_store (self ) -> Dict [str , Any ]:
19
+ self .container .start ()
20
+ # Wait for Milvus server to be ready
21
+ host = "localhost"
22
+ port = self .container .get_exposed_port (self .fixed_port )
23
+ return {
24
+ "type" : "milvus" ,
25
+ "host" : host ,
26
+ "port" : int (port ),
27
+ "index_type" : "IVF_FLAT" ,
28
+ "metric_type" : "L2" ,
29
+ "embedding_dim" : 2 ,
30
+ "vector_enabled" : True ,
31
+ "nlist" : 1 ,
32
+ }
33
+
34
+ def teardown (self ):
35
+ self .container .stop ()
You can’t perform that action at this time.
0 commit comments