十年期货股票行情数据轻松处理——TDengine在同心源基金的应用( 二 )


2)期货 X 频率数据库:根据时间周期 X 设定 , 记录聚合后的数据
3)期货 Y 频率数据库:根据时间周期 Y 设定 , 记录聚合后的数据
以上三个库分别包含 3351、5315、5208 张子表 , 与股票库一样 , 它们同样包括长期的历史数据以及实时数据 。
具体的表结构如下所示:

十年期货股票行情数据轻松处理——TDengine在同心源基金的应用
文章图片

文章图片

在查询方面 , 由于当前我们的查询只是针对单表进行 , 因此逻辑比较简单 , 代码如下:

十年期货股票行情数据轻松处理——TDengine在同心源基金的应用
文章图片

文章图片

此外 , 由于期货不存在连续多年的行情 , 所以对于长期的数据展示 , 我们选择用多段的每 X 个月数据进行拼接 , 查询效率非常快 。例如:在 TDengine 客户端服务器使用 Python 从服务端拉取连续两个月的期货行情数据 , 耗时仅需 0.16 秒 。

十年期货股票行情数据轻松处理——TDengine在同心源基金的应用
文章图片

文章图片

下图为因子 1 在期货菜粕上的收益曲线 , 从这张图中我们也可以看出 , 一些其他常用的函数比如 max、last , 基于 TDengine 的缓存等技术也都实现了毫秒级返回数据 。

十年期货股票行情数据轻松处理——TDengine在同心源基金的应用
文章图片

文章图片

从“两点问题”到深入合作
细心的读者可能也留意到了文章中的两个小问题:为什么我们在估算原数据量时 , 是通过脚本来统计所有子表行数 , 再将其乘以单行字节 , 而不是直接通过 TDengine 的“超级表”?又为什么在文章开头的数据分类描述中 , 1-4 条都在后文中都看到了实际对应的数据库 , 但是唯独没有出现第 5 条——依据以上数据产生的大量衍生数据?
其实是这样 , 由于项目初期没有多表聚合查询的需求 , 外加为了降低数据迁移的复杂度 , 因此在环境搭建初期时我们并没有选择超级表 。
但是随着业务的不断完善 , 我们将会需要更大量的数据来做更复杂的分析 , 这也就出现了第 5 条的数据种类——依据以上数据产生的更大量级衍生数据 。所以说 , 这部分数据将来源于我们后面的待上线业务中 。
届时 , 我们将会更深入地用到 TDengine 的其他核心特性 , 如超级表、众多计算函数等等 。但仅就当下而言 , TDengine 强大的存储能力和快速查询已经非常令我们惊喜 , 也让我们对未来更加深入的合作充满期待 。
【十年期货股票行情数据轻松处理——TDengine在同心源基金的应用】?关于作者:
刘健 , 北京航空航天大学模式识别专业硕士学历 , 曾经供职于中国航天科技集团从事软件研发工作 。2014 年与朋友一起创业从事外汇、期货、股票 ETF 的自动交易至今 。着重致力于通过数据挖掘、自动模式识别等方式在国内二级市场中进行自动量化交易 。
来源:搜狐