Feast 官方项目标识

Feast

—Stars

面向机器学习的开源特征存储,为训练、批量评分与在线推理统一管理特征定义和数据访问,并通过文件、SQL、Snowflake 与远程服务等多种 registry 后端保存特征元数据。

Feature StoreTraining · Online InferencePython · SQL · Registry
FEATURE STORE · REGISTRY BACKEND DISPATCH

配置选择了什么 Registry,CLI 就应该读取什么 Registry

`registry-dump` 是读取元数据的观察工具,不能绕过统一后端分派,再把 SQL 连接串误解成文件 URI。

REPO CONFIGregistrysqlite:///registry.db
projectdriver_features
commandfeast registry-dump
BEFORE · HARDCODED FILE REGISTRYRegistry(config, repo_path)
SQL URL→URI PARSER
UNSUPPORTED SCHEME

metadata read never starts

AFTER · FEATURESTORE DISPATCHFeatureStore(...).registry
FILESQLSNOWFLAKEREMOTE
SQLite entitydriver→JSON ✓

one configuration · one backend path

错误分派

SQL URL 被文件型 Registry 当成对象存储路径

`feast registry-dump` 没有沿用项目已经配置的 registry backend,而是直接构造文件型 `Registry`。当配置使用 `sqlite:///…` 或 `postgresql+psycopg://…` 时,SQL 连接串会被误送进对象存储 URI 解析器,在读取任何元数据之前就以 unsupported scheme 失败。

职责归位

FeatureStore 统一解释 Registry 配置

registry 类型的选择属于 `FeatureStore` 的配置解析职责;CLI 若自行实例化某个具体实现,就会与 Feast 其余读写路径产生两套后端分派规则。修复需要复用统一入口,同时继续把仓库路径交给文件型 registry,以保留相对路径解析。

读取修复

CLI 直接使用已经选择好的 Backend

让 `registry_dump()` 由当前 `RepoConfig` 与 `repo_path` 创建 `FeatureStore`,再通过 `feature_store.registry.to_dict()` 读取元数据;移除对文件型 `Registry` 的直接依赖。新增真实 SQLite registry 回归,先通过 `SqlRegistry` 写入 `driver` 实体,再确认 dump 能返回包含该实体的 JSON。

真实回归

SQLite 写入实体后可完整导出 JSON

SQL、Snowflake、远程与文件型 registry 现在都经过同一后端选择链路,调试命令不再把数据库 URL 当成对象存储路径;聚焦的 repo operation 与 registry dump 测试 41 项通过,CLI 测试 15 项通过,并完成类型检查、格式检查和手工 SQLite 复现。