feast

feast-devApache-2.0活跃维护

开源特征存储,统一管理机器学习特征的注册、存储与在线离线服务,解决训练和推理特征不一致的问题。

The Open Source Feature Store for AI/ML

v0.67.0发布于 2026-10-13 13:23 UTC7,357star +1 / 7 天1,493fork同步于 2026-11-10 05:32 UTC

怎么上手

由 README 提炼,执行前请确认
pip install feast
feast init my_feature_repo
cd my_feature_repo/feature_repo
feast apply
硬件要求按 README 说明

README 未说明硬件要求,仅需 Python 环境即可 pip 安装运行

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

开源特征存储,统一管理训练与在线推理的特征数据,避免数据泄漏

开源特征存储,统一管理机器学习特征的注册、存储与在线离线服务,解决训练和推理特征不一致的问题。

核心能力

  • 用离线存储处理历史数据生成训练集
  • 用低延迟在线存储支撑实时预测
  • 生成 point-in-time 正确特征集避免数据泄漏
  • 提供抽象数据访问层解耦 ML 与数据基础设施
  • 内置 feature server 在线提供预计算特征

容易踩的坑

Web UI 标注为 experimental,功能可能不稳定;在线特征需先执行 feast materialize 系列命令写入在线存储;部分数据源和存储为 contrib 或 community 插件,需额外安装

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.67.0
  1. v0.67.0最新正式版2026-10-13 · 2026-10-13 13:23 UTC

    0.67.0 (2026-10-13)

    Bug Fixes

    • Allow dill 0.4 so UDF serialization works on Python 3.14 (#6858) (139704f)
    • Allow serving features while a feature view is MATERIALIZING (#6789) (e2d7fe2), closes #6780
    • Allowlist the pinned commit SHA flagged by detect-secrets (4b81d18)
    • Apply point-in-time filter correctly with the Polars backend (#6992) (01224d0)
    • Authorize registry server writes before deserializing UDFs (e0ef16e)
    • Automate versioned documentation publication (#6763) (5ad5592), closes #6762
    • Avoid NumPy generic-unit deprecation when importing feast.type_map (5fea698)
    • Bind metrics, REST registry, ui, and lineage servers dual-stack (#6886) (8d2773c)
    • Bound Arrow Flight batch size in the offline server (#6896) (d169238)
    • Compute std and var correctly for tiled aggregations (213a130)
    • Convert PdfBytes values to protos like ImageBytes (#6968) (af20fe4)
    • Decode fixed_size_list as the matching Feast list value type (#6944) (8cfe891)
    • Do not log /metrics requests from the pre-fork metrics server thread (7087f1f), closes #6928
    • Don't return from finally blocks in REST registry helpers (d7cb4d0)
    • Encode non-finite floats in feature server JSON responses (#6930) (211ecb8)
    • Feature freshness logic updated (#6765) (f0bc070)
    • Fix monitoring auth (015cc84)
    • Handle non-nanosecond timestamps in tiled aggregations (b8989cb)
    • Improve feature list column sizing (#6793) (2573693)
    • Include vector attributes in Field equality (#6934) ([298c3f6](https://github.com/feast-dev/feast/commit/298c3f6a480b6088eba3498194d6e7b02
  2. v0.66.02026-08-21 · 2026-08-21 03:31 UTC
    查看更新说明

    0.66.0 (2026-08-21)

    Bug Fixes

    • Add connection pre-warming for DynamoDB async client (89240fa), closes #6060
    • Add remote registry client extra (#6697) (b8dfcb0)
    • Address review feedback on FIPS cipher suite configuration (4a35fba)
    • Allow remote-registry first apply for new projects (39d408d)
    • Avoid importing feast.feature_store at mcp_server import time (ddb2e9a)
    • Bump pymssql to >=2.3.6 for macOS arm64 wheel support (181eb35), closes #5636 #5193 #5636
    • Call ApplySavedDataset RPC instead of ApplyFeatureService in RemoteRegistry.apply_saved_dataset() (934d341)
    • Catch missing dbt parser dependency in dbt CLI commands (#6534) (3c2ae3c)
    • Default authentication to kubernetes auth (6a4690a)
    • Defer feature-freshness thread to post-fork to avoid Gunicorn deadlock (#6648) (104ad10), closes #6647
    • Do not pass undeclared feature view columns to ODFV UDFs (#6527) (75b9463)
    • downgrade mcp pin to 1.29.0 and fix CI lockfiles and unit tests (98e5bca), closes #6706
    • Feast apply silently ignoring ttl updates to None or timedelta(0) (#6709) (97b0f25), closes #6703
    • Fix mypy TorchTensor type alias error (#6712) (34de6fa), closes #5563
    • Fixed data source creation form gaps (5d0f7d6)
    • Handle parameterized and complex Trino types in type map (326554d)
    • Isolate default user permissions (e37adbf)
    • Isolate projection join key maps (d1c709d)
    • Map Postgres real to FLOAT instead of DOUBLE (62db435)
    • Merge shared ODFV source projections in feature resolution (d269946), closes [#6621](https://g
  3. v0.65.02026-07-20 · 2026-07-20 13:28 UTC
    查看更新说明

    0.65.0 (2026-07-20)

    Bug Fixes

    • add debug logging for FIPS mode detection fallback (6c1b24e)
    • Build embedded UI from local source (#6525) (3500349)
    • Bump decommissioned Snowflake Python UDF runtime from 3.9 to 3.10 (#6606) (#6608) (10341e4)
    • configure FIPS-compliant gRPC cipher suites for offline server (6bc80a2)
    • Correct Flink PyArrow dependency constraints (#6604) (70a9751)
    • Fix ValueError in signal handling for Trino worker threads (#6428) (506d919)
    • Fixed monitoring page issues (7946018)
    • Make pytest config compatible with newer pytest (#5779) (a57ea33)
    • Replace comma with space in DynamoDB-incompatible label tag value (51e3a16)
    • Resolve UI build warnings (#6529) (abe92af)
    • Unblock nightly UI build (#6570) (f296d4b)
    • Use LONGBLOB for SQL registry proto columns on MySQL (#6566) (7e4beb2)

    Features

    • Add click-to-zoom lightbox for blog post images (#6575) (1cb23fd)
    • Add dark mode support to website and blog (#6589) (7358fb8)
    • Add OnlineStore for Aerospike (#6532) (9cd35e1)
    • Add OpenLineage Consumer to Feast - receive, store, and visualize cross-producer lineage (#6549) (a834126)
    • Add registry list feature views by updated since (#6092) (#6093) (006c606)
    • Add ScyllaDB online store with vector search (#6508) (1669661)
    • Added compute and jobs UI (ba2c05c)
    • Added Iceberg REST Catalog data source support (e0a8573)
    • Bring Your Own Spark - SparkApplication ([#6550]
  4. v0.64.02026-06-13 · 2026-06-13 11:22 UTC
    查看更新说明

    0.64.0 (2026-06-13)

    Bug Fixes

    • Add async_supported property to RedisOnlineStore (9b088fe)
    • Add missing feast init templates to operator CRD and enhance persistence documentation (1941d4d)
    • Allow to publish from reference branch (5458ec8)
    • API calls list (4203eb7)
    • bigquery: Enable list inference for parquet loads in offline_write_batch (9243497), closes #5845
    • Bump grpcio dependencies (07b4782)
    • compute-engine/local: Honor field_mapping on join keys in dedup + join nodes (#6395) (bd01824)
    • dynamodb: Avoid tag race condition by using diff-based tag updates (#6479) (bad2b7d), closes #6418
    • dynamodb: Fix mypy type for _build_projection_expression return (217b4da)
    • Fix intermittent async test failures for DynamoDB and Redis (63c5eb1)
    • Fix mongodb blog title (57d28d4)
    • Fix shared SQL registry crash - avoid unnecessary UDF deserialization in proto cache building (ac588d7)
    • Fix SparkRetrievalJob.persist() failing for SparkSource (209d7cd)
    • Fixed formatting and image for mongo blog (#6377) (f8389fb)
    • Fixes for ray source (7f592a4)
    • go: skip registry refresh when cache_ttl_seconds <= 0 (97ed40c)
    • Handle array of strings columns in Athena materialization (#6324) (4ed0278)
    • make milvus VARCHAR max_length configurable, remove hardcoded 512 limit (3b98c22)
    • operator: Set appProtocol: grpc on registry gRPC Service (#6367) (c9ae2b4)
    • PyJWT 2.10+ added validation that rejects empty HMAC keys (e756ffe)
    • RemoteOnlineStore sends all features in a single HTTP request (8f187dd)
    • Remove registry proto dump to enforce RBAC and add permission checks to Commit/Refresh RPCs (328431f)
    • Remove selector migration job - no longer needed ([5
  5. v0.63.02026-05-04 · 2026-05-04 03:44 UTC
    查看更新说明

    0.63.0 (2026-05-04)

    Bug Fixes

    • Add project filter to apply_data_source and delete_data_source (closes #6206) (#6322) (96562c4)
    • Add project_id filter to SnowflakeRegistry UPDATE path (#6243) (6658b71), closes #6208 feast-dev/feast#6208
    • Add subprocess timeouts to prevent test_e2e_local hanging on Dask atexit handler (3de6556)
    • Ambiguous truth value of array during materialization (#6259) (d0c8984)
    • Auto-detect GCS/S3 registry store when registry is passed as string (#6260) (7ebcf03)
    • bigquery: Prefer query over table in get_table_query_string (#6360) (77ed779), closes #6200
    • correct project_id scoping in get_user_metadata and delete_project (0c469a7)
    • disable Redis RDB persistence in test deployments (44cd682)
    • Disable snowflake tests temporarily in CI (#6356) (31d5a98)
    • Filter empty SQL commands at execute_snowflake_statement call sites (#6249) (92ffbb9)
    • Fix five bugs in milvus online store (#6275) (212504b)
    • Fix issue with apply feature view (835cda8)
    • Fix streaming materialization for exotic sources with lazy UDF pipelines (c07972d)
    • Handle missing features gracefully instead of panicking (7d00b3a)
    • Harden informer cache with label selectors and memory optimizations (#6242) (3f11356)
    • helm: Avoid nil pointer for metrics.enabled inside podAnnotations (#6251) (c833f1a)
    • Include git in feast server image (fb03c46)
    • Include StreamFeatureView in freshness metric (#6269) (463f16c)
    • Pre-create S3A event log dir before SparkContext init (#6317) ([9feca77](https://github.com/feast-dev/feast/commit/9feca77f855db527b2d494e28bd8c872a3

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    PyPI - Downloads GitHub contributors unit-tests integration-tests-and-build linter Docs Latest Python API License GitHub Release

    Join us on Slack!

    👋👋👋 Come say hi on Slack!

    Check out our DeepWiki!

    Overview

    Feast (Feature Store) 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 (to serve 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.

    Please see our documentation for more information about the project.

    📐 Architecture

    The above architecture is the minimal Feast deployment. Want to run the full Feast on Snowflake/GCP/AWS? Click here.

    🐣 Getting Started

    1. Install Feast

    pip install feast
    

    2. Create a feature repository

    feast init my_feature_repo
    cd my_feature_repo/feature_repo
    

    3. Register your feature definitions and set up your feature store

    feast apply
    

    4. Explore your data in the web UI (experimental)

    Web UI

    feast ui
    

    5. Build a training dataset

    from feast import FeatureStore
    import pandas as pd
    from datetime import datetime
    
    entity_df = pd.DataFrame.from_dict({
        "driver_id": [1001, 1002, 1003, 1004],
        "event_timestamp": [
            datetime(2021, 4, 12, 10, 59, 42),
            datetime(2021, 4, 12, 8,  12, 10),
            datetime(2021, 4, 12, 16, 40, 26),
            datetime(2021, 4, 12, 15, 1 , 12)
        ]
    })
    
    store = FeatureStore(repo_path=".")
    
    training_df = store.get_historical_features(
        entity_df=entity_df,
        features = [
            'driver_hourly_stats:conv_rate',
            'driver_hourly_stats:acc_rate',
            'driver_hourly_stats:avg_daily_trips'
        ],
    ).to_df()
    
    print(training_df.head())
    
    # Train model
    # model = ml.fit(training_df)
    
                event_timestamp  driver_id  conv_rate  acc_rate  avg_daily_trips
    0 2021-04-12 08:12:10+00:00       1002   0.713465  0.597095              531
    1 2021-04-12 10:59:42+00:00       1001   0.072752  0.044344               11
    2 2021-04-12 15:01:12+00:00       1004   0.658182  0.079150              220
    3 2021-04-12 16:40:26+00:00       1003   0.162092  0.309035              959
    
    

    6. Load feature values into your online store

    Option 1: Incremental materialization (recommended)

    CURRENT_TIME=$(date -u +"%Y-%m-%dT%H:%M:%S")
    feast materialize-incremental $CURRENT_TIME
    

    Option 2: Full materialization with timestamps

    CURRENT_TIME=$(date -u +"%Y-%m-%dT%H:%M:%S")
    feast materialize 2021-04-12T00:00:00 $CURRENT_TIME
    

    Option 3: Simple materialization without timestamps

    feast materialize --disable-event-timestamp
    

    The --disable-event-timestamp flag allows you to materialize all available data (from 1970-01-01 up to the current UTC time) without specifying start and end timestamps. Rows keep the event timestamps from the source.

    Materializing feature view driver_hourly_stats from 2021-04-14 to 2021-04-15 done!
    

    7. Read online features at low latency

    from pprint import pprint
    from feast import FeatureStore
    
    store = FeatureStore(repo_path=".")
    
    feature_vector = store.get_online_features(
        features=[
            'driver_hourly_stats:conv_rate',
            'driver_hourly_stats:acc_rate',
            'driver_hourly_stats:avg_daily_trips'
        ],
        entity_rows=[{"driver_id": 1001}]
    ).to_dict()
    
    pprint(feature_vector)
    
    # Make prediction
    # model.predict(feature_vector)
    
    {
        "driver_id": [1001],
        "driver_hourly_stats__conv_rate": [0.49274],
        "driver_hourly_stats__acc_rate": [0.92743],
        "driver_hourly_stats__avg_daily_trips": [72]
    }
    

    📦 Functionality and Roadmap

    The list below contains the functionality that contributors are planning to develop for Feast.

    🎓 Important Resources

    Please refer to the official documentation at Documentation

    👋 Contributing

    Feast is a community project and is still under active development. Please have a look at our contributing and development guides if you want to contribute to the project:

    🌟 GitHub Star History

    ✨ Contributors

    Thanks goes to these incredible people: