[发明专利]应用于时序历史数据库的索引方法有效
| 申请号: | 201210413154.4 | 申请日: | 2012-10-25 |
| 公开(公告)号: | CN102890722A | 公开(公告)日: | 2013-01-23 |
| 发明(设计)人: | 郑晓露;陈静 | 申请(专利权)人: | 国家电网公司;江苏瑞中数据股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 南京知识律师事务所 32207 | 代理人: | 汪旭东 |
| 地址: | 100031 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 应用于 时序 历史 数据库 索引 方法 | ||
1.一种应用于时序历史数据库的索引方法,其特征在于,包括如下步骤:
(1)建立索引:
时序历史数据库中的测点文件、索引文件和数据文件三种文件串联,通过二元组结构形式的文件指针进行访问;
对测点文件中的每个测点单独建立索引,所述索引采用多叉树的层级结构;以时间点为关键字,索引节点的每个子指针指向下一级的索引节点,最顶层的索引节点为索引根节点,最下一层的索引节点为索引叶子节点,索引节点的每个时间点关键字左边的子指针指向的下一级索引节点中的时间点关键字都小于此时间点关键字,同样每个时间点关键字右边的子指针指向的下一级索引节点中的时间点关键字都大于此时间点关键字;
索引叶子节点指向数据文件中的数据块在数据文件中的存储位置,所述索引叶子节点的每个子指针指向一个数据块,所述索引叶子节点中的每个时间点关键字左边的子指针指向的数据块中数据的时间都小于此时间点关键字,同样每个时间点关键字右边的子指针指向的数据块中数据的时间都大于此时间点关键字;
每个所述索引叶子节点指向的所有数据块都有前指针和后指针,按照时间的顺序和逆序构建成双向链表,相邻索引叶子节点中的首位数据块也互相串联;
(2)数据存储:
采用内存映射文件的方式进行文件操作,历史数据在写入时,先将一定长度的文件内容映射到数据缓存中,然后在该数据缓存中填入数据块,并将数据缓存中的内容和数据文件进行同步;
按照上述方式将索引节点内容写入索引缓存中,索引节点的子指针指向所述数据块,并将索引缓存中的内容和索引文件进行同步;
在写入下一个数据块和索引时,直接对缓存进行操作,直到映射到缓存中的文件空间用完,则进行下一次文件映射;
循环以上流程;
(3)数据检索:
在查询某个测点的一段历史数据时,根据查询时间的起点查询索引;查询索引时,首先找到该测点索引的起点位置,然后进行内存映射文件操作,将文件中一定空间范围内的所有索引节点映射到缓存中,通过查询的起始时间点和索引中的时间点关键字来进行索引定位,若该索引节点非索引叶子节点,则继续搜索子节点;
找到索引叶子节点之后,根据查询时间段的起点定位该历史数据的起始数据块位置;通过同样的内存映射文件方式读取这个数据块,然后利用数据块之间的双向链表一直向后遍历,直到查询到终止时间,中间不需要再去索引进行查询。
2.根据权利要求1所述的方法,其特征是,步骤(1)建立索引中所述多叉树是根据测点的数量级以及历史数据量的大小来决定具体树的分叉数目以及层次。
3.根据权利要求1或2所述的方法,其特征是,步骤(2)数据存储中所述将一定长度的文件内容映射到数据缓存中,该一次文件映射的长度根据数据库中数据存储或者检索操作中包含的测点粒度来自行定义。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家电网公司;江苏瑞中数据股份有限公司,未经国家电网公司;江苏瑞中数据股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210413154.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种包含MOSFET器件的半导体器件和制作方法
- 下一篇:背光模组





