【学院教程】缓存DataSource的使用

新手专区
标签: #<Tag:0x00007fc83c5279f0>

(iQuant) #1

很多用户刚来到平台对于平台的数据存储方式不是很清楚,本文对DataSource进行介绍。

平台使用缓存进行数据存储和缓存加速,每个模块运行后的结果都会自动保存到一个缓存地址中,并可以在平台磁盘上保存一段时间,通常是几小时至几天。平台的数据表读取、模块运行结果读取都可以通过DataSource命令获取。

一、获取平台数据

DataSource(‘表名’).read(start_date=xxx,end_date=xxx,fields=[xxx,xxx])
具体API的用法可以参考学院教程专题。

二、 获取模块的运行结果

 m1.data.read()

其中 m1是模块号,当m1模块运行后,m1.data存储了结果存放的缓存地址,通过.read()方 法可以读取其中的内容。

  • 对于平台模块而言在第一次运行后结果会自动保存,如果输入的数据和模块参数没有变化,后面再次运行时会自动去读取第一次运行的结果而不会重新运行一次模块代码,这样就实现了加速的功能。

  • 如果有时候发生异常改变参数但一直命中缓存,可以通过取消模块的“缓存加速”功能,强制重新运行模块。

三、将自定义的计算结果数据存为缓存,供其他策略/文档notebook使用。

  • 假设计算了一个list或字典等对象变量名为xxx,可以执行DataSource().write_pickle(xxx)存储,运行后会返回一个结果保存的地址address;
  • 假设计算了一个DataFrame对象,变量名为xxx,可以执行DataSource().write_df(xxx)存储,运行后会返回一个结果保存的地址address。
  • 上述保存的对象均可以通过DataSource(address).read()读取查看。