diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 096bdb5b810..c47a8ec5c3d 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -204,7 +204,7 @@ jobs: env: COMPILE_GO: "True" run: | - pip install 'grpcio-tools==1.48.0' 'pybindgen==0.22.0' + pip install 'grpcio-tools==1.47.0' 'pybindgen==0.22.0' go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0 go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1.0 pip install dist/*tar.gz diff --git a/Makefile b/Makefile index 6e12f8252c5..ee2b7c8f1b8 100644 --- a/Makefile +++ b/Makefile @@ -199,7 +199,7 @@ install-go-ci-dependencies: python -m pip install pybindgen==0.22.0 protobuf==3.20.1 install-protoc-dependencies: - pip install grpcio-tools==1.48.0 mypy-protobuf==3.1.0 + pip install grpcio-tools==1.47.0 mypy-protobuf==3.1.0 compile-protos-go: install-go-proto-dependencies install-protoc-dependencies python setup.py build_go_protos diff --git a/README.md b/README.md index d367f291fa4..df427378115 100644 --- a/README.md +++ b/README.md @@ -18,14 +18,7 @@ ## Overview -Feast (**Fea**ture **St**ore) is an open source feature store for machine learning. Feast is the fastest path to manage existing infrastructure to productionize analytic data for model training and online inference. - - -Feast allows ML platform teams to: - -* **Make features consistently available for training and serving** by managing an _offline store_ (to process historical data for scale-out batch scoring or model training), a low-latency _online store_ (to power real-time prediction)_,_ and a battle-tested _feature server_ (for serving pre-computed features online). -* **Avoid data leakage** by generating point-in-time correct feature sets so data scientists can focus on feature engineering rather than debugging error-prone dataset joining logic. This ensure that future feature values do not leak to models during training. -* **Decouple ML from data infrastructure** by providing a single data access layer that abstracts feature storage from feature retrieval, ensuring models remain portable as you move from training models to serving models, from batch models to realtime models, and from one data infra system to another. +Feast is an open source feature store for machine learning. Feast is the fastest path to productionizing analytic data for model training and online inference. Please see our [documentation](https://docs.feast.dev/) for more information about the project. @@ -169,6 +162,7 @@ The list below contains the functionality that contributors are planning to deve * [x] [In-memory / Pandas](https://docs.feast.dev/reference/offline-stores/file) * [x] [Custom offline store support](https://docs.feast.dev/how-to-guides/adding-a-new-offline-store) * **Online Stores** + * [x] [Snowflake](https://docs.feast.dev/reference/online-stores/snowflake) * [x] [DynamoDB](https://docs.feast.dev/reference/online-stores/dynamodb) * [x] [Redis](https://docs.feast.dev/reference/online-stores/redis) * [x] [Datastore](https://docs.feast.dev/reference/online-stores/datastore) @@ -203,6 +197,7 @@ The list below contains the functionality that contributors are planning to deve * [x] DataHub integration (see [DataHub Feast docs](https://datahubproject.io/docs/generated/ingestion/sources/feast/)) * [x] Feast Web UI (Alpha release. See [docs](https://docs.feast.dev/reference/alpha-web-ui)) + ## 🎓 Important Resources Please refer to the official documentation at [Documentation](https://docs.feast.dev/) diff --git a/sdk/python/requirements/py3.10-ci-requirements.txt b/sdk/python/requirements/py3.10-ci-requirements.txt index 591787a27bd..4ff99c247fa 100644 --- a/sdk/python/requirements/py3.10-ci-requirements.txt +++ b/sdk/python/requirements/py3.10-ci-requirements.txt @@ -174,7 +174,7 @@ executing==0.9.1 # via stack-data fastapi==0.79.0 # via feast (setup.py) -fastavro==1.5.3 +fastavro==1.5.4 # via # feast (setup.py) # pandavro @@ -186,7 +186,7 @@ firebase-admin==5.2.0 # via feast (setup.py) fissix==21.11.13 # via bowler -flake8==4.0.1 +flake8==5.0.2 # via feast (setup.py) frozenlist==1.3.0 # via @@ -261,9 +261,7 @@ googleapis-common-protos==1.56.4 # tensorflow-metadata great-expectations==0.14.13 # via feast (setup.py) -greenlet==1.1.2 - # via sqlalchemy -grpcio==1.48.0 +grpcio==1.47.0 # via # feast (setup.py) # google-api-core @@ -272,13 +270,13 @@ grpcio==1.48.0 # grpcio-status # grpcio-testing # grpcio-tools -grpcio-reflection==1.48.0 +grpcio-reflection==1.47.0 # via feast (setup.py) -grpcio-status==1.48.0 +grpcio-status==1.47.0 # via google-api-core -grpcio-testing==1.48.0 +grpcio-testing==1.47.0 # via feast (setup.py) -grpcio-tools==1.48.0 +grpcio-tools==1.47.0 # via feast (setup.py) h11==0.13.0 # via uvicorn @@ -329,7 +327,7 @@ jsonpatch==1.32 # via great-expectations jsonpointer==2.3 # via jsonpatch -jsonschema==4.8.0 +jsonschema==4.9.0 # via # altair # feast (setup.py) @@ -346,7 +344,7 @@ markupsafe==2.1.1 # werkzeug matplotlib-inline==0.1.3 # via ipython -mccabe==0.6.1 +mccabe==0.7.0 # via flake8 minio==7.1.0 # via feast (setup.py) @@ -438,7 +436,7 @@ pathspec==0.9.0 # via black pbr==5.9.0 # via mock -pep517==0.12.0 +pep517==0.13.0 # via build pexpect==4.8.0 # via ipython @@ -513,7 +511,7 @@ pyasn1-modules==0.2.8 # via google-auth pybindgen==0.22.1 # via feast (setup.py) -pycodestyle==2.8.0 +pycodestyle==2.9.0 # via flake8 pycparser==2.21 # via cffi @@ -523,7 +521,7 @@ pydantic==1.9.1 # via # fastapi # feast (setup.py) -pyflakes==2.4.0 +pyflakes==2.5.0 # via flake8 pygments==2.12.0 # via @@ -636,7 +634,7 @@ s3fs==2022.1.0 # via feast (setup.py) s3transfer==0.5.2 # via boto3 -scipy==1.8.1 +scipy==1.9.0 # via great-expectations six==1.16.0 # via @@ -735,15 +733,15 @@ types-pytz==2022.1.2 # via feast (setup.py) types-pyyaml==6.0.11 # via feast (setup.py) -types-redis==4.3.11 +types-redis==4.3.13 # via feast (setup.py) -types-requests==2.28.5 +types-requests==2.28.6 # via feast (setup.py) types-setuptools==63.2.2 # via feast (setup.py) types-tabulate==0.8.11 # via feast (setup.py) -types-urllib3==1.26.17 +types-urllib3==1.26.20 # via types-requests typing-extensions==4.3.0 # via @@ -793,7 +791,7 @@ wrapt==1.14.1 # testcontainers xmltodict==0.13.0 # via moto -yarl==1.7.2 +yarl==1.8.0 # via aiohttp zipp==3.8.1 # via importlib-metadata diff --git a/sdk/python/requirements/py3.10-requirements.txt b/sdk/python/requirements/py3.10-requirements.txt index f86636e227d..8ae219f1fe9 100644 --- a/sdk/python/requirements/py3.10-requirements.txt +++ b/sdk/python/requirements/py3.10-requirements.txt @@ -40,7 +40,7 @@ dill==0.3.5.1 # via feast (setup.py) fastapi==0.79.0 # via feast (setup.py) -fastavro==1.5.3 +fastavro==1.5.4 # via # feast (setup.py) # pandavro @@ -57,13 +57,11 @@ googleapis-common-protos==1.56.4 # feast (setup.py) # google-api-core # tensorflow-metadata -greenlet==1.1.2 - # via sqlalchemy -grpcio==1.48.0 +grpcio==1.47.0 # via # feast (setup.py) # grpcio-reflection -grpcio-reflection==1.48.0 +grpcio-reflection==1.47.0 # via feast (setup.py) h11==0.13.0 # via uvicorn @@ -75,7 +73,7 @@ idna==3.3 # requests jinja2==3.1.2 # via feast (setup.py) -jsonschema==4.8.0 +jsonschema==4.9.0 # via feast (setup.py) locket==1.0.0 # via partd diff --git a/sdk/python/requirements/py3.8-ci-requirements.txt b/sdk/python/requirements/py3.8-ci-requirements.txt index a55759ca7d0..931a7d1e249 100644 --- a/sdk/python/requirements/py3.8-ci-requirements.txt +++ b/sdk/python/requirements/py3.8-ci-requirements.txt @@ -178,7 +178,7 @@ executing==0.9.1 # via stack-data fastapi==0.79.0 # via feast (setup.py) -fastavro==1.5.3 +fastavro==1.5.4 # via # feast (setup.py) # pandavro @@ -190,7 +190,7 @@ firebase-admin==5.2.0 # via feast (setup.py) fissix==21.11.13 # via bowler -flake8==4.0.1 +flake8==5.0.2 # via feast (setup.py) frozenlist==1.3.0 # via @@ -265,9 +265,7 @@ googleapis-common-protos==1.56.4 # tensorflow-metadata great-expectations==0.14.13 # via feast (setup.py) -greenlet==1.1.2 - # via sqlalchemy -grpcio==1.48.0 +grpcio==1.47.0 # via # feast (setup.py) # google-api-core @@ -276,13 +274,13 @@ grpcio==1.48.0 # grpcio-status # grpcio-testing # grpcio-tools -grpcio-reflection==1.48.0 +grpcio-reflection==1.47.0 # via feast (setup.py) -grpcio-status==1.48.0 +grpcio-status==1.47.0 # via google-api-core -grpcio-testing==1.48.0 +grpcio-testing==1.47.0 # via feast (setup.py) -grpcio-tools==1.48.0 +grpcio-tools==1.47.0 # via feast (setup.py) h11==0.13.0 # via uvicorn @@ -335,7 +333,7 @@ jsonpatch==1.32 # via great-expectations jsonpointer==2.3 # via jsonpatch -jsonschema==4.8.0 +jsonschema==4.9.0 # via # altair # feast (setup.py) @@ -352,7 +350,7 @@ markupsafe==2.1.1 # werkzeug matplotlib-inline==0.1.3 # via ipython -mccabe==0.6.1 +mccabe==0.7.0 # via flake8 minio==7.1.0 # via feast (setup.py) @@ -444,7 +442,7 @@ pathspec==0.9.0 # via black pbr==5.9.0 # via mock -pep517==0.12.0 +pep517==0.13.0 # via build pexpect==4.8.0 # via ipython @@ -452,6 +450,8 @@ pickleshare==0.7.5 # via ipython pip-tools==6.8.0 # via feast (setup.py) +pkgutil-resolve-name==1.3.10 + # via jsonschema platformdirs==2.5.2 # via # black @@ -519,7 +519,7 @@ pyasn1-modules==0.2.8 # via google-auth pybindgen==0.22.1 # via feast (setup.py) -pycodestyle==2.8.0 +pycodestyle==2.9.0 # via flake8 pycparser==2.21 # via cffi @@ -529,7 +529,7 @@ pydantic==1.9.1 # via # fastapi # feast (setup.py) -pyflakes==2.4.0 +pyflakes==2.5.0 # via flake8 pygments==2.12.0 # via @@ -644,7 +644,7 @@ s3fs==2022.1.0 # via feast (setup.py) s3transfer==0.5.2 # via boto3 -scipy==1.8.1 +scipy==1.9.0 # via great-expectations six==1.16.0 # via @@ -743,15 +743,15 @@ types-pytz==2022.1.2 # via feast (setup.py) types-pyyaml==6.0.11 # via feast (setup.py) -types-redis==4.3.11 +types-redis==4.3.13 # via feast (setup.py) -types-requests==2.28.5 +types-requests==2.28.6 # via feast (setup.py) types-setuptools==63.2.2 # via feast (setup.py) types-tabulate==0.8.11 # via feast (setup.py) -types-urllib3==1.26.17 +types-urllib3==1.26.20 # via types-requests typing-extensions==4.3.0 # via @@ -804,7 +804,7 @@ wrapt==1.14.1 # testcontainers xmltodict==0.13.0 # via moto -yarl==1.7.2 +yarl==1.8.0 # via aiohttp zipp==3.8.1 # via diff --git a/sdk/python/requirements/py3.8-requirements.txt b/sdk/python/requirements/py3.8-requirements.txt index e75d23fe954..362780d69ee 100644 --- a/sdk/python/requirements/py3.8-requirements.txt +++ b/sdk/python/requirements/py3.8-requirements.txt @@ -40,7 +40,7 @@ dill==0.3.5.1 # via feast (setup.py) fastapi==0.79.0 # via feast (setup.py) -fastavro==1.5.3 +fastavro==1.5.4 # via # feast (setup.py) # pandavro @@ -57,13 +57,11 @@ googleapis-common-protos==1.56.4 # feast (setup.py) # google-api-core # tensorflow-metadata -greenlet==1.1.2 - # via sqlalchemy -grpcio==1.48.0 +grpcio==1.47.0 # via # feast (setup.py) # grpcio-reflection -grpcio-reflection==1.48.0 +grpcio-reflection==1.47.0 # via feast (setup.py) h11==0.13.0 # via uvicorn @@ -77,7 +75,7 @@ importlib-resources==5.9.0 # via jsonschema jinja2==3.1.2 # via feast (setup.py) -jsonschema==4.8.0 +jsonschema==4.9.0 # via feast (setup.py) locket==1.0.0 # via partd @@ -107,6 +105,8 @@ pandavro==1.5.2 # via feast (setup.py) partd==1.2.0 # via dask +pkgutil-resolve-name==1.3.10 + # via jsonschema proto-plus==1.20.6 # via feast (setup.py) protobuf==3.20.1 diff --git a/sdk/python/requirements/py3.9-ci-requirements.txt b/sdk/python/requirements/py3.9-ci-requirements.txt index 2b43bde5442..5d118a3ae22 100644 --- a/sdk/python/requirements/py3.9-ci-requirements.txt +++ b/sdk/python/requirements/py3.9-ci-requirements.txt @@ -174,7 +174,7 @@ executing==0.9.1 # via stack-data fastapi==0.79.0 # via feast (setup.py) -fastavro==1.5.3 +fastavro==1.5.4 # via # feast (setup.py) # pandavro @@ -186,7 +186,7 @@ firebase-admin==5.2.0 # via feast (setup.py) fissix==21.11.13 # via bowler -flake8==4.0.1 +flake8==5.0.2 # via feast (setup.py) frozenlist==1.3.0 # via @@ -261,9 +261,7 @@ googleapis-common-protos==1.56.4 # tensorflow-metadata great-expectations==0.14.13 # via feast (setup.py) -greenlet==1.1.2 - # via sqlalchemy -grpcio==1.48.0 +grpcio==1.47.0 # via # feast (setup.py) # google-api-core @@ -272,13 +270,13 @@ grpcio==1.48.0 # grpcio-status # grpcio-testing # grpcio-tools -grpcio-reflection==1.48.0 +grpcio-reflection==1.47.0 # via feast (setup.py) -grpcio-status==1.48.0 +grpcio-status==1.47.0 # via google-api-core -grpcio-testing==1.48.0 +grpcio-testing==1.47.0 # via feast (setup.py) -grpcio-tools==1.48.0 +grpcio-tools==1.47.0 # via feast (setup.py) h11==0.13.0 # via uvicorn @@ -329,7 +327,7 @@ jsonpatch==1.32 # via great-expectations jsonpointer==2.3 # via jsonpatch -jsonschema==4.8.0 +jsonschema==4.9.0 # via # altair # feast (setup.py) @@ -346,7 +344,7 @@ markupsafe==2.1.1 # werkzeug matplotlib-inline==0.1.3 # via ipython -mccabe==0.6.1 +mccabe==0.7.0 # via flake8 minio==7.1.0 # via feast (setup.py) @@ -438,7 +436,7 @@ pathspec==0.9.0 # via black pbr==5.9.0 # via mock -pep517==0.12.0 +pep517==0.13.0 # via build pexpect==4.8.0 # via ipython @@ -513,7 +511,7 @@ pyasn1-modules==0.2.8 # via google-auth pybindgen==0.22.1 # via feast (setup.py) -pycodestyle==2.8.0 +pycodestyle==2.9.0 # via flake8 pycparser==2.21 # via cffi @@ -523,7 +521,7 @@ pydantic==1.9.1 # via # fastapi # feast (setup.py) -pyflakes==2.4.0 +pyflakes==2.5.0 # via flake8 pygments==2.12.0 # via @@ -630,15 +628,15 @@ responses==0.21.0 # via moto rsa==4.9 # via google-auth -ruamel.yaml==0.17.17 +ruamel-yaml==0.17.17 # via great-expectations -ruamel.yaml.clib==0.2.6 - # via ruamel.yaml +ruamel-yaml-clib==0.2.6 + # via ruamel-yaml s3fs==2022.1.0 # via feast (setup.py) s3transfer==0.5.2 # via boto3 -scipy==1.8.1 +scipy==1.9.0 # via great-expectations six==1.16.0 # via @@ -737,15 +735,15 @@ types-pytz==2022.1.2 # via feast (setup.py) types-pyyaml==6.0.11 # via feast (setup.py) -types-redis==4.3.11 +types-redis==4.3.13 # via feast (setup.py) -types-requests==2.28.5 +types-requests==2.28.6 # via feast (setup.py) types-setuptools==63.2.2 # via feast (setup.py) types-tabulate==0.8.11 # via feast (setup.py) -types-urllib3==1.26.17 +types-urllib3==1.26.20 # via types-requests typing-extensions==4.3.0 # via @@ -798,7 +796,7 @@ wrapt==1.14.1 # testcontainers xmltodict==0.13.0 # via moto -yarl==1.7.2 +yarl==1.8.0 # via aiohttp zipp==3.8.1 # via importlib-metadata diff --git a/sdk/python/requirements/py3.9-requirements.txt b/sdk/python/requirements/py3.9-requirements.txt index 593e0807253..1ef60c531ac 100644 --- a/sdk/python/requirements/py3.9-requirements.txt +++ b/sdk/python/requirements/py3.9-requirements.txt @@ -40,7 +40,7 @@ dill==0.3.5.1 # via feast (setup.py) fastapi==0.79.0 # via feast (setup.py) -fastavro==1.5.3 +fastavro==1.5.4 # via # feast (setup.py) # pandavro @@ -57,13 +57,11 @@ googleapis-common-protos==1.56.4 # feast (setup.py) # google-api-core # tensorflow-metadata -greenlet==1.1.2 - # via sqlalchemy -grpcio==1.48.0 +grpcio==1.47.0 # via # feast (setup.py) # grpcio-reflection -grpcio-reflection==1.48.0 +grpcio-reflection==1.47.0 # via feast (setup.py) h11==0.13.0 # via uvicorn @@ -75,7 +73,7 @@ idna==3.3 # requests jinja2==3.1.2 # via feast (setup.py) -jsonschema==4.8.0 +jsonschema==4.9.0 # via feast (setup.py) locket==1.0.0 # via partd