Feast 路线图深度解读:数据源、存储矩阵、特性工程与服务治理的演进蓝图
【免费下载链接】feastThe Open Source Feature Store for AI/ML项目地址: https://gitcode.com/GitHub_Trending/fe/feast
Feast 仓库中的 roadmap.md 是一份以勾选清单形式维护的项目功能路线图,覆盖了数据源、离线/在线存储、特性工程(Transformations)、流式摄取、部署形态、特性服务与数据治理九大领域。本文以该路线图为骨架,逐项对照当前仓库中的源码、ADR 与参考文档,说明每项功能的完成状态、对应的实现位置与可验证的落地点,帮助你在为模型选择 Feast 组件组合时,判断哪些能力是稳定可用的、哪些仍处于 Alpha/Beta 演进阶段。
路线图的组织方式与阅读方法
路线图按功能域分组列出条目,每条目标注完成状态:[x]表示已交付(部分条目标明 Alpha/Beta 成熟度),[ ]表示尚未完成或正在进行中。路线图文首明确欢迎社区对所有条目进行贡献。
理解这份路线图的一个关键背景是:Feast 的架构决策均沉淀在 docs/adr/ 的 ADR(Architecture Decision Records)目录中。路线图上若干重要条目与 ADR 一一对应,例如:
| 路线图片项 | 对应 ADR |
|---|---|
| Feature Services(模型中心的特性追踪) | ADR-0001 |
| On-Demand Transformations | ADR-0003 |
| Streaming Transformations | ADR-0005 |
| Kubernetes Operator 部署形态 | ADR-0006 |
| 统一特性转换与 Feature View | ADR-0007 |
| 向量数据库集成(LLM/RAG 支持) | ADR-0010 |
| 数据质量监控(DQM) | ADR-0011 |
这些 ADR 记录了决策背景与后果,是理解"路线图为什么长这样"的一手资料。
NLP 与向量检索:Alpha 已落地,原生 NLP 服务仍在路上
路线图 NLP 板块包含两项:
- Vector Search(向量检索,已完成,Alpha)——这是 Feast 面向 RAG/LLM 场景的能力基础,其设计依据见 ADR-0010,面向用户的文档为 alpha-vector-database.md。
- 面向 NLP 的增强 Feature Server 与 SDK(未完成)——这是路线图中标记为
[ ]的条目之一,说明原生的 NLP 推理链路尚未内建到 Feature Server 中。
从源码结构看,向量能力目前的实现入口是 FeastVectorStore,其下挂载了三个向量型在线存储:
- QdrantOnlineStore
- MilvusOnlineStore
- FaissOnlineStore
对应的使用文档分别位于 qdrant.md、milvus.md 与 faiss.md。仓库中还提供了可运行的 RAG 示例,如 examples/rag/README.md 与 examples/rag-retriever/README.md,可用于验证向量特性视图的端到端流程。
数据源生态:从云数仓到流式消息的完整矩阵
路线图 Data Sources 板块已全部勾选完成,共 14 项。按存储介质归类如下:
| 类别 | 数据源 | 参考文档 |
|---|---|---|
| 云数仓 | Snowflake、Redshift、BigQuery、Athena、Oracle、Azure Synapse + Azure SQL(contrib 插件) | snowflake.md、redshift.md、bigquery.md、athena.md、oracle.md、mssql.md |
| 文件/表格式 | Parquet 文件源 | file.md |
| 开源大数据 | Spark(contrib 插件)、Hive(社区插件) | spark.md |
| NoSQL / 列存 | Couchbase、ClickHouse、MongoDB | couchbase.md、clickhouse.md、mongodb.md |
| Python 生态 | Ray(contrib 插件) | ray.md |
| 流式 | Kafka / Kinesis(经由在线存储的 Push 支持) | push.md |
几个值得注意的实现细节:
- Kafka/Kinesis 的接入路径:路线图注明流式数据源是"经由在线存储的 push 支持"实现的,即通过在线存储的写入 API 完成实时摄取,而非独立的消息队列连接器。使用方式见 push.md 及专题文档 kafka.md、kinesis.md。
- 贡献插件的存放位置:Postgres、Spark、Couchbase、Athena、ClickHouse、Oracle、MongoDB、Ray 等以 contrib 插件形式维护,源码集中在 sdk/python/feast/infra/offline_stores/contrib/ 下各自独立的目录中(如
mssql_offline_store、spark_offline_store、ray_offline_store等),每个插件通常自带tests/data_source.py中的DataSourceCreator,用于该插件的离线/在线一体化测试。 - 扩展新数据源:路线图中"Custom offline store support"一项指向的扩展指南即仓库内的 adding-a-new-offline-store.md 与 adding-support-for-a-new-online-store.md,说明了以插件形式贡献新存储的完整流程。
离线存储(Offline Stores):16 项全部交付
路线图 Offline Stores 板块 16 个条目全部为[x]状态,覆盖 SQL 数仓、分析引擎、分布式计算与混合部署:
- 核心内置:Snowflake、Redshift、BigQuery、DuckDB、Dask、Remote
- contrib 插件:MSSQL(mssql.py)、Postgres、Trino、Spark、Couchbase、Athena、ClickHouse、Ray、Oracle、MongoDB
- 特殊形态:HybridOfflineStore(混合存储,见 hybrid.md)与 Hive 社区插件。
每个实现类都继承统一的OfflineStore基类(例如 SnowflakeOfflineStore、PostgreSQLOfflineStore),这保证了各存储对上层feature_store.apply()、pull等 SDK 操作呈现一致的接口契约。选型参考可查阅 offline-stores 总览。
在线存储(Online Stores):低延迟服务层,含向量存储三件套
Online Stores 板块是路线图条目最多的部分,全部完成。其源码位于 sdk/python/feast/infra/online_stores/,可直接对照类定义验证:
| 存储 | 源码位置 | 文档 |
|---|---|---|
| Redis | RedisOnlineStore | redis.md |
| DynamoDB | DynamoDBOnlineStore | dynamodb.md |
| Snowflake | snowflake_online_store | snowflake.md |
| PostgreSQL | PostgreSQLOnlineStore | postgres.md |
| SQLite | sqlite | sqlite.md |
| Cassandra / AstraDB | CassandraOnlineStore | cassandra.md |
| ScyllaDB | ScyllaDBOnlineStore | scylladb.md |
| MySQL | MySQLOnlineStore | mysql.md |
| HBase | HbaseOnlineStore | hbase.md |
| Hazelcast | HazelcastOnlineStore | hazelcast.md |
| Elasticsearch | ElasticSearchOnlineStore | elasticsearch.md |
| SingleStore | SingleStoreOnlineStore | singlestore.md |
| Couchbase | CouchbaseOnlineStore | couchbase.md |
| MongoDB | MongoDBOnlineStore | mongodb.md |
| Aerospike | AerospikeOnlineStore | aerospike.md |
| Bigtable / Datastore | BigtableOnlineStore、DatastoreOnlineStore | bigtable.md、datastore.md |
| Dragonfly | dragonfly | dragonfly.md |
| Qdrant / Milvus / Faiss | 见上文 NLP 一节 | 向量存储文档 |
| Remote | RemoteOnlineStore | remote.md |
| Hybrid | HybridOnlineStore | hybrid.md |
两点与路线图相关的说明:
- Azure Cache for Redis以社区插件形式完成,不属于核心仓库代码。
- 自定义在线存储扩展:路线图该项指向的指南即 adding-support-for-a-new-online-store.md,与离线存储插件机制对称。
特性工程(Transformations):三类模式,批量转换仍在进行
Feature Engineering 板块是路线图成熟度标注最细致的部分:
| 条目 | 状态 | 说明 |
|---|---|---|
| On-demand Transformations (On Read) | 已完成(Beta) | 读取时计算,见 beta-on-demand-feature-view.md |
| On-demand Transformations (On Write) | 已完成(Beta) | 写入时计算 |
| Streaming Transformations | 已完成(Alpha) | 流式计算 |
| Batch transformation | 未完成(In progress) | 路线图中标记为[ ]的进行中项 |
从源码结构看,转换引擎的实现集中在 sdk/python/feast/transformation/ 目录:
- factory.py 负责按语言类型分发到具体引擎;
- 各引擎实现为独立模块:pandas_transformation.py、sql_transformation.py、python_transformation.py、ray_transformation.py、spark_transformation.py、flink_transformation.py、substrait_transformation.py;
- 上层 API 则以特性视图形式暴露:on_demand_feature_view.py 与 stream_feature_view.py,其架构决策分别记录在 ADR-0003、ADR-0005,统一后的特性转换模型见 ADR-0007。
此外,SDK 还包含独立运行的转换服务入口 transformation_server.py,支持将转换逻辑与在线服务解耦部署。
流式摄取:自定义 Provider 与 Push 双通道
Streaming 板块三项均已完成:
- 自定义流式摄取作业支持——通过自定义 Provider 机制实现,指南为 creating-a-custom-provider.md;
- Push 式摄取到在线存储与Push 式摄取到离线存储——两者共用同一套 push 数据源机制,文档见 push.md。
Push 通道正是前文"Kafka/Kinesis 数据源"的落地方式:业务侧将消息推入在线存储的写入接口,Feast 将其作为流式数据源对待。对于需要完全接管摄取作业(如自带 Spark Streaming/Flink 作业)的场景,则走自定义 Provider 路线。
部署形态:AWS Lambda 与 Kubernetes
Deployments 板块两项均为[x]:
- AWS Lambda(Alpha)——将 Feature Server 以无服务器函数形态部署,相关背景可参考 feast-0-14-adds-aws-lambda-feature-servers.md;
- Kubernetes——生产部署指南为 running-feast-in-production.md 与 feast-on-kubernetes.md。
Kubernetes 路线在仓库中有两条并行实现,选型时需区分:
- Helm Charts:infra/charts/feast/ 提供标准组件的 Chart 化部署(含
values.yaml与 README.md); - Feast Operator:infra/feast-operator/ 是一个基于 Kubernetes Operator 模式的部署形态(Alpha),拥有独立的 CRD 定义(config/crd/)、控制器(internal/controller/)与 API 类型(api/v1/),其架构决策记录为 ADR-0006,使用教程可参考 docs/how-to-guides/feast-operator/README.md。
特性服务(Feature Serving):多语言服务矩阵
Feature Serving 板块列出六项服务形态,全部完成,成熟度除 Python 侧外均为 Alpha:
| 服务 | 成熟度 | 源码/文档 |
|---|---|---|
| Python Client | 稳定 | feature_store.py 中的get_online_features等 API |
| Python Feature Server | 稳定 | feature_server.py、python-feature-server.md |
| Go Feature Server | Alpha | go/main.go、go-feature-server.md |
| Java Feature Server | Alpha | java/serving/、java/README.md |
| Offline Feature Server | Alpha | offline_server.py、offline-feature-server.md |
| Registry Server | Alpha | registry_server.py、registry-server.md |
| Feast Operator | Alpha | infra/feast-operator/README.md |
服务层共用的 gRPC/Protobuf 契约定义在 protos/ 目录(core/registry/serving/storage 四组),这也是 Python/Go/Java 三端能够共享同一注册表数据模型的基础。
数据质量管理:DQM 已交付
Data Quality Management 板块的一项——Feature Quality Monitoring——已完成,交付内容包括:内建指标(built-in metrics)、漂移检测(drift detection)、服务日志监控(serving log monitoring)与 UI 仪表盘。
仓库内的对应实现与文档:
- 使用指南:feature-monitoring.md;
- 参考文档:dqm.md;
- 架构决策:ADR-0011;
- 代码实现:sdk/python/feast/dqm/,其中
profilers子目录承载特征剖析器(即漂移检测与统计指标的计算逻辑); - 特征日志采集入口:feature_logging.py,与 serving 日志监控配合。
从源码结构看,DQM 的指标计算依赖在线服务的日志回流与 SDK 侧的 profiler 组件,这意味着启用该能力的前提是部署了在线服务(Feature Server 或 Operator)并开启特征日志。
特性发现与治理:SDK/CLI/Web UI 已就位,血缘浏览器未立项
Feature Discovery and Governance 板块七项中六项完成:
- Python SDK 浏览注册表——例如 feature_store.py 中的
list_feature_views(约 L791)与list_feature_services(约 L746)等方法,支持以编程方式枚举注册表内容; - CLI 浏览注册表——命令体系见 feast-cli-commands.md;
- 模型中心的特性追踪(Feature Services)——架构记录为 ADR-0001;
- 第三方元数据集成——路线图注明已提供 Amundsen 与 DataHub 两套提取器集成(面向外部元数据平台的插件,不在本仓库内);
- Feast Web UI(Beta)——前端源码位于 ui/,文档见 alpha-web-ui.md;
- Feast Lineage Explorer——唯一标记为
[ ]的条目,血缘可视化浏览器尚未交付。
未完成项汇总与贡献指引
通读路线图,当前尚未完成或仍在进行中的条目集中在三处:
- NLP:Enhanced Feature Server and SDK for native support for NLP——原生 NLP 服务链;
- Feature Engineering:Batch transformation——批量转换(In progress);
- Governance:Feast Lineage Explorer——血缘可视化。
路线图在开头明确"We welcome contribution to all items in the roadmap",即上述未完成项均开放社区贡献。若要参与开发,建议的路径是:先阅读对应功能的 ADR(docs/adr/)理解既有架构约束,再对照 CONTRIBUTING.md 与 docs/project/contributing.md 的规范提交变更;对于存储类扩展,则直接参考 customizing-feast 系列指南中的插件编写流程。
小结
这份路线图的价值不仅在于列出功能清单,更在于它精确标注了每项能力的成熟度(稳定 / Beta / Alpha / In progress)。对照仓库源码可以确认:Feast 的存储矩阵(14 种数据源、16 种离线存储、20+ 种在线存储)与多语言特性服务矩阵已全面落地并有明确的源码位置可查;特性工程三大转换模式已交付其中两种,批量转换仍在推进;向量检索为 RAG 场景提供了 Alpha 级支撑,而原生 NLP 服务与血缘浏览器是接下来最值得关注的演进方向。
【免费下载链接】feastThe Open Source Feature Store for AI/ML项目地址: https://gitcode.com/GitHub_Trending/fe/feast
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考