是否有可能从Parquet和NoSQL目标中删除特定项目?



是否可以从MLRun中的Parquet和NoSQL目标中删除特定项目?我没有找到相关的方法,我检查了FeatureStore, parquetttarget和NoSQLTarget。

我只看到了从metastore(从DB)中删除整个功能集而不触及特定数据项的能力,参见:

mlrun.feature_store.delete_feature_set(name, project='', tag=None, uid=None, force=False)

但这不是我的情况,我必须只删除特定的数据项(不是来自metastore的信息)。谢谢你的帮助。

BTW:我使用MLRun 1.2.1版本

我没有在MLRun 1.2.1中看到相关的方法,但是您可以使用一些变通方法。

1。关于ParquetTarget

  • 这个格式是不可变的
  • 但是如果您在parquet中使用分区,那么您可以删除特定的parquet文件。例如,如果你使用按年分区,你可以很容易地在文件系统的特定年份删除文件(通过命令行rm),实际上你删除了请求的内容。

2。关于NoSqlTarget

  • 这不是不可变的格式,你可以很容易地更新值,但是MLRun 1.2.1没有相关的API来删除项目
  • 可以看到每个密钥在文件系统上的持久性(v3io与文件系统兼容)。这意味着您还可以通过删除文件(同样通过命令行rm)删除内容(密钥或密钥)。

3。关于RedisTarget

  • 它靠近NoSqlTarget(易于更新值)
  • 你可以看到redis对删除键的完全支持

命令行:

DEL user
redis-cli KEYS "user*" | xargs redis-cli DEL

python代码:

import redis
r = redis.Redis()
r.delete('test')

相关内容

  • 没有找到相关文章

最新更新