You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FeatureStore数据摄入计数异常问题排查咨询

FeatureStore统计计数与实际摄入数据不匹配问题定位

问题描述

通过以下代码分两次向FeatureStore的test01特征集各摄入3条数据,但统计结果仅显示3条(统计面板数值计数为3):

project_name = 'test-load'
project = mlrun.get_or_create_project(project_name, context='./', user_project=True)

fset = fstore.FeatureSet("test01", entities=['id'])
# 第一次摄入3条数据
fstore.ingest(fset, CSVSource("mycsv", path="a1.csv"), overwrite=False)
# 第二次摄入3条数据
fstore.ingest(fset, CSVSource("mycsv", path="a2.csv"), overwrite=False)

可能的原因及验证方案

  • 实体键重复导致覆盖
    FeatureStore的ingest方法在overwrite=False时,若两次摄入的数据集存在相同的实体键(此处为id),新数据会覆盖原有实体的特征值,而非追加。如果a1.csv和a2.csv的id列存在重复值,最终存储的唯一实体数仍为3条。
    验证:

    # 查询特征集所有数据,统计实际条数
    fs = fstore.get_feature_set("test01")
    df = fs.to_dataframe()
    print(f"实际存储条数: {len(df)}")
    

    同时检查两个CSV文件的id值是否重复。

  • 统计信息未实时刷新
    FeatureStore的统计面板可能依赖缓存,多次增量摄入后未自动更新。可手动触发统计更新:

    fs = fstore.get_feature_set("test01")
    fs.update_stats()
    

    刷新后查看统计面板数值是否修正。

  • 第二次摄入未成功执行
    检查两次摄入的运行日志或返回结果,确认第二次任务完成状态:

    # 打印每次摄入的实际行数
    result1 = fstore.ingest(fset, CSVSource("mycsv", path="a1.csv"), overwrite=False)
    print(f"第一次摄入行数: {result1.rows_ingested}")
    result2 = fstore.ingest(fset, CSVSource("mycsv", path="a2.csv"), overwrite=False)
    print(f"第二次摄入行数: {result2.rows_ingested}")
    

    同时查看MLRun控制台的运行日志,确认无报错或中断。

  • 存储引擎配置不支持追加
    若特征集使用的存储引擎(如Parquet)未配置为追加模式,可能导致第二次摄入的数据未被正确写入。检查存储路径下的文件数量,确认是否生成了新的数据文件;同时验证特征集的存储配置是否支持增量写入。


内容的提问来源于stack exchange,提问作者user20531732

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:55:29