如何在小内存环境中实现全市场数据的aj

本页介绍在小内存环境下对全市场股票数据进行 aj 关联的总体思路,并给出示例代码实现。

Source: https://dolphindb.cn/blogs/129

What this page covers

技能认证特训营第二期正式开启(限时报名)

页面顶部提供培训营活动报名引导,并提示优惠相关信息。

如何在小内存环境中实现全市场数据的aj

该部分说明小内存场景下进行全市场股票数据 aj 关联的思路,并通过示例函数展示实现方式。

作者与日期

该部分提供文章作者署名与发布日期信息。

实测结果与社区版内存限制背景

该部分给出全市场 aj 结果集体量的实测数据,并说明社区版在内存中获取全量结果集存在困难。

后续优化点

该部分列出降低内存占用与将结果进行持久化存储的优化方向。

Facts Index

Entity Attribute Value Confidence
文章发布日期2024-12-13high
文章作者署名笨笨high
小内存环境实现全市场数据 aj 的总体思路方法原则拿时间换空间,尽可能串行,及时释放中间变量medium
实现方式按股票处理策略按股票进行 aj + eachhigh
函数 ajBySecurityID输入参数securityIDStr, aDatehigh
ajBySecurityID 读取数据源tick 表位置与名称dfs://SH_TSDB_tick, 表名 tickhigh
ajBySecurityID 读取数据源snapshot 表位置与名称dfs://SH_TSDB_snapshot_ArrayVector1, 表名 snapshothigh
ajBySecurityID 数据过滤条件(tick)where 条件date(Tradetime) = aDate 且 securityID = securityIDStrhigh
ajBySecurityID 数据过滤条件(snapshot)where 条件date(DateTime) = aDate 且 securityID = securityIDStrhigh
ajBySecurityID aj 关联键aj 参数(键列)`SecurityID`TradeTime 与 `SecurityID`DateTimehigh
allSecurityID 生成方式取数逻辑从 dfs://SH_TSDB_tick 的 tick 表中按 date(TradeTime)=2021.01.04 取 distinct securityIDhigh
函数 ajBySecurityID2输入参数securityIDStr, aDatehigh
loadTable行为描述loadTable ONLY load metadatamedium
ajBySecurityID2 aj 关联方式在 dfs tables 上进行 aj 并筛选select * from aj(tick, snapshot, `SecurityID`TradeTime`TradeTime, `SecurityID`DateTime`DateTime) 并在 where 中按日期与两表 SecurityID 过滤high
执行方式each 调用rst = each(ajBySecurityID, allSecurityID, 2021.01.04)(另提供注释掉的 ajBySecurityID2 版本)high
2021.01.04 全市场 aj 结果集股票数量1800 只股票medium
2021.01.04 全市场 aj 结果集结果集大小25GB 左右medium
社区版内存中获取全量结果集的可行性无法在内存中获得所有结果集;要拿到所有结果集需要优化medium
优化点字段读取策略只读取所需字段,而不是 select *high
优化点结果集存储策略将结果数据存回 dfs 表而不是放在内存中(将 return data 部分改为写入 dfs 表)high
技能认证特训营第二期报名链接https://www.qingsuyun.com/h5/e/217471/5/high
技能认证特训营第二期活动状态与优惠描述正式开启;限时报名;享专属福利优惠low