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
相关产品推荐
相关产品推荐

