CN107766452A - 一种适合电力调度数据高速存取的索引结构及其索引方法 - Google Patents
一种适合电力调度数据高速存取的索引结构及其索引方法 Download PDFInfo
- Publication number
- CN107766452A CN107766452A CN201710885121.2A CN201710885121A CN107766452A CN 107766452 A CN107766452 A CN 107766452A CN 201710885121 A CN201710885121 A CN 201710885121A CN 107766452 A CN107766452 A CN 107766452A
- Authority
- CN
- China
- Prior art keywords
- index
- node
- data
- last
- markers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000005259 measurement Methods 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 6
- 230000003111 delayed effect Effects 0.000 claims description 3
- 230000001502 supplementing effect Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 abstract description 6
- 230000009466 transformation Effects 0.000 abstract description 5
- 238000011160 research Methods 0.000 abstract description 3
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 238000003745 diagnosis Methods 0.000 abstract description 2
- 238000004458 analytical method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/06—Energy or water supply
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Water Supply & Treatment (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Primary Health Care (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及输变电设备状态监测及故障诊断的研究、应用技术领域,具体涉及一种适合电力调度数据高速存取的索引结构及其索引方法,索引结构包括测量点索引、时标索引、数据块、数据缓存块;每个测量点索引设置一个时标索引;每个时标索引设置若干个数据块;测量点索引依托于关系数据库实现;时标索引采用多级索引实现;本发明率先实现了统一量测点与时标的数据视图,避免了因元数据结构和关系等导致数据表繁多的被动局面,极大地适应了海量结构化数据高并发、低时延的存储需求。创造性地提出了面向电力监控系统量测点时间序列数据的索引结构,打破了关系型数据库仅能进行单列索引的应用局限,极大地提升了检索和读写数据的效率。
Description
技术领域
本发明涉及输变电设备状态监测及故障诊断的研究、应用技术领域,具体涉及一种适合电力调度数据高速存取的索引结构及其索引方法。
背景技术
大数据可以通俗地理解为无法在一定时间内用传统数据库软件工具对其内容进行抓取、管理和处理的数据集合,而电力大数据则需在此基础上重塑电力核心价值和转变电力发展方式。电力大数据的应用流程一般可分为数据获取和集成、数据解释和分析(数据解析)、分析结果展示等环节。其中,数据解释和分析是重要环节。当前,大数据在能源电力领域的应用虽然属于起步阶段,但鉴于大数据分析的作用,电网企业亦充分考虑和研发了电网大数据的分析工具。如中国南方电网公司即明确提出了,各级状态监测评价中心的主站平台需按照统一的标准,实现设备在线监测信息、设备台账信息(含基本信息、技术参数、价值信息、运维资料、大修技改、缺陷记录、绩效评价等七个维度),以及系统运行信息、气象环境信息、视频监视信息等数据的归集和全面融合。
电力企业的数据已告别以往数据类型较为单一、增长较为缓慢的时代,数据规模开始由TB级向PB级转变、增长,且数据结构亦形成以结构化、非结构化和半结构化的多源化数据形式。此时,如何科学的解释、分析电力大数据则成为了限制了数据应用的瓶颈。因此,还亟待提升和不断应用、开发面向电力大数据特征的高速存储体系结构、索引体系结构以及流计算即时处理技术,进而促进大数据分析技术的不断进步,达到智能电网在大数据时代下价值形态的跃升。其中,在数据分析时研究、采用高速存储的索引结构,改变以往关系数据库索引结构的落后方式,便显得尤为重要。如电力调度数据是一种时间序列数据,其特征在于量测点多、采集周期短。通常电力调度数据通常按照关系型数据库的表结构存储,但当数据总量超出既定表的承载极限时,则需按各量测点和采集时间而分库分表存储。此时,非但没有根本解决数据规模的问题,还造成数据分散,检索数据逻辑复杂的被动局面。此外,基于关系数据库的索引特性和读写性能的考虑,若是按量测点维度为主、时间维度为辅查询数据时,传统关系数据库的性能则无法满足检索要求。
鉴于此,急需在研究电力调度业务系统的数据存储、检索、流计算所采用技术架构的基础上,深入分析对即时流处理技术的现状与需求,总结归纳结构化数据与非结构化数据、时间序列数据等所采用的数据存储与检索技术架构与性能,进而提出一种适合电力调度数据高速存取的索引结构,一举扭转以往关系性数据库在处理时间序列数据时体现的逻辑复杂、性能低下等关键难题。
发明内容
为了解决上述问题,本发明提供了一种适合电力调度数据高速存取的索引结构及其索引方法,具体技术方案如下:
一种适合电力调度数据高速存取的索引结构包括测量点索引、时标索引、数据块、数据缓存块;每个测量点索引设置一个时标索引;每个时标索引设置若干个数据块;所述测量点索引依托于关系数据库实现;所述时标索引采用多级索引实现;所述多级索引由顶层索引向下检索直至底层索引;所述多级索引的每一级索引有若干个索引文件,所述索引文件包括若干个索引节点;所述索引节点包括若干个索引项;所述索引项的信息为下一级索引节点的编号、起始时标和结束时标;所述底层索引的下一级索引节点的编号为数据块编号;所述顶层索引除了索引项,还包括下一个索引节点编号信息;所述索引项的时标范围为下一级索引节点所有索引项的时标范围的并集;所述数据缓存块用于在写入数据时先把数据写入数据缓存块,待数据缓存块内存满后再将数据缓存块中的数据以追加的方式转储到数据文件形成数据块,并以数据块的粒度更新多级索引。
进一步,所述一个测量点对应一个数据缓存块。
进一步,所述数据缓存块的格式与数据块的格式相同。
进一步,写入数据的步骤包括:
(1)定位到测量点对应的数据缓存块;
(2)如果数据缓存块未满,则将数据追加到数据缓存块,更新数据过程结束;
(3)如果数据缓存块已满,则将数据缓存块转储到数据块中;
(4)对于从数据缓存块转储形成的数据块,统计数据块的起始时标和结束时标,并将该数据块提交到多级索引,执行更新多级索引步骤;
(5)清空数据缓存块内容,返回执行步骤(2)。
进一步,所述更新多级索引步骤包括:
(1)更新底层索引
1)如果底层索引的最后一个索引节点不存在或者最后一个索引节点的索引项已满,则创建一个新的索引节点并作为最后一个索引节点;
2)在底层索引的最后一个索引节点中添加一个索引项,内容为提交的数据块的编号,数据块的数据的起始时标和结束时标;
3)计算底层索引的最后一个索引节点的所有索引项的时标范围的并集,得到一个起始时标和结束时标,将该时标范围信息连同最后一个索引节点的编号提交到上一级索引;
(2)更新底层索引至顶层索引之间的中间级索引
1)如果该级索引的最后一个索引节点不存在,或者最后一个索引节点的最后一个索引项的下一级索引的索引节点编号不是即将提交的下一级索引的索引节点的编号且最后一个索引节点已满,则在该级索引创建一个新的索引节点作为最后一个索引节点;
2)如果该级索引的最后一个索引节点的最后一个索引项不存在,或者其下一级索引的索引节点编号不是即将提交的下一级索引节点的编号,则在该级最后一个索引节点创建一个新的索引项,作为最后一个索引项;
3)将提交过来的下一级索引的索引节点起始时标和结束时标更新到该级索引的最后一个索引节点的最后一个索引项,更新方法是设置下一级索引的索引节点编号、起始时标和结束时标;如果该级索引为底层索引的上一级索引,则本步骤所述的下一级索引为底层索引;
4)计算该级索引的最后一个索引节点的所有索引项的时标范围的并集,得到一个起始时标和结束时标,将该时标范围信息连同最后一个索引节点的编号提交到顶层索引;
(3)更新顶层索引
1)如果顶层索引的最后一个索引节点不存在,或者最后一个索引节点的最后一个索引项的下一级索引的索引节点编号不是即将提交的下一级索引的索引节点的编号且最后一个索引节点已满,则创建一个新的顶层索引的索引节点作为该级索引的最后一个索引节点;如果创建新的顶层索引节点前已存在最后一个索引节点,那么更新该索引节点的下一个索引节点编号为新建的顶层索引节点的编号,使得顶层索引节点形成链表;
2)如果顶层索引的最后一个索引节点的最后一个索引项不存在,或者其下一级索引节点编号不是即将提交的下一级索引节点的编号,那么在最后一个索引节点创建一个新的索引项作为该级索引的最后一个索引项;
3)将提交过来的下一级索引节点起始时标和结束时标更新到顶层索引的最后一个索引节点的最后一个索引项,更新方法是设置下一级索引的索引节点编号、起始时标和结束时标。
一种适合电力调度数据高速存取的索引结构的索引方法包括以下步骤:
(1)通过测量点索引定位至测量点对应的数据缓存块,通过查询时标范围过滤数据缓存块的数据,返回满足条件的数据;
(2)通过测量点索引获取待查询的测量点的多级索引位置,即多级索引的第一个索引节点编号;
(3)通过多级索引的第一个索引节点编号和查询时标范围参数,调用多级索引检索流程,获得满足查询条件的数据块;
(4)读取所有满足查询条件的数据块,对每个数据块,按查询时标范围进一步过滤数据,返回满足条件的数据。
进一步,所述多级索引检索流程包括以下步骤,设多级索引有N级,N级索引为顶层索引,一级索引为底层索引:
(1)初始化一个空的数据块编号列表;
(2)通过N级索引的第1个索引节点编号,即顶层索引的第一个索引节点编号,读取N级索引的第1个索引节点;
(3)通过N级索引的第1个索引节点,遍历所有N级索引的索引节点,对每个N级索引的索引节点,判断每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则通过该索引项的下一级索引的索引节点编号定位到N-1级索引的索引节点,跳到步骤(4);如果没有交集,那么跳过该索引项;如果N级索引没有任何索引项的时标范围与查询时标范围有交集,则结束检索过程;
(4)判断步骤(3)所述的N-1级索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,那么通过该索引项的下一级索引的索引节点编号定位到N-2级索引的索引节点,继续判断N-2级索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则通过该索引项的下一级索引节点编号定位到N-3级索引的索引节点;如此反复直至N-1级索引为一级索引,即底层索引,则跳到步骤(5);
如果该级索引的下一级索引节点为底层索引,则跳到步骤(5),如果没有交集,那么跳过该索引项;
(5)判断底层索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,那么记录该索引项的下一级索引节点编号,即数据块编号;如果没有交集,那么跳过该索引项;
(6)返回数据块编号列表。
本发明的有益效果为:
本发明率先实现了统一量测点与时标的数据视图,避免了因元数据结构和关系等导致数据表繁多的被动局面,极大地适应了海量结构化数据高并发、低时延的存储需求。
创造性地提出了面向电力监控系统量测点时间序列数据的索引结构,打破了关系型数据库仅能进行单列索引的应用局限,极大地提升了检索和读写数据的效率。
附图说明
图1为本发明的一种适合电力调度数据高速存取的索引结构的结构示意图;
图2为本发明中的更新数据的流程示意图;
图3为本发明中的多级索引的总体结构示意图;
图4为本发明中的多级索引的索引节点结构示意图;
图5为本发明中的多级索引的底层索引和中间层索引的索引项的格式示意图;
图6为本发明中的多级索引的顶层索引的索引项的格式示意图。
具体实施方式
为了更好的理解本发明,下面结合附图和具体实施例对本发明作进一步说明:
如图1和图2所示,一种适合电力调度数据高速存取的索引结构包括测量点索引、时标索引、数据块、数据缓存块;每个测量点索引设置一个时标索引;每个时标索引设置若干个数据块;本发明按测量点维度组织数据,即同一个测量点的数据在物理上是存储在一起的。同一个测量点的数据存放在一个或多个数据块中,一个数据块只存储一个量测点的数据。
测量点索引是全局唯一的,由于测量点规模不大,从几万到几十万级别,测量点索引更新频率不高,因此测量点索引直接依托关系数据库实现。其中,一个测量点对应一个数据缓存块。数据缓存块用于在写入数据时先把数据写入数据缓存块,待数据缓存块内存满后再将数据缓存块中的数据以追加的方式转储到数据文件形成数据块,并以数据块的粒度更新多级索引。其中,数据缓存块的格式与数据块的格式相同。
对于时标索引,一个测量点索引对应一个时标索引,这大大缩小了时标索引检索的数据规模,可极大提高查询性能。由于有很多时标索引从几万到几十万级别,且每个时标索引的更新频率很高,这与量测点数据写入频率相关,本发明中的时标索引采用多级索引实现。
如图3和图4所示的是三级索引的结构示意图,多级索引由顶层索引向下检索直至底层索引;多级索引的每一级索引有若干个索引文件,索引文件包括若干个索引节点;索引节点包括若干个索引项;如图5所示,索引项的信息为下一级索引节点的编号、起始时标和结束时标;底层索引的下一级索引节点的编号为数据块编号;索引项的时标范围为下一级索引节点所有索引项的时标范围的并集;如图6所示,顶层索引节点还包括下一个索引节点编号信息,以构建顶层索引节点链表。
多级索引是一种树形索引,由顶层索引(本实施例为三级索引)向下检索,直到底层索引(即一级索引),最终检索到数据块。多级索引是一种稀疏索引,底层索引是对整个数据块建立索引,而不是为数据块的每一条数据建立索引。相比B树索引及其变体,多级索引主要有以下优势:
(1)稀疏索引,存储开销小;
(2)存储开销小,因而允许每个量测点都有一个多级索引,极大提高检索性能;
(3)以追加的方式更新,不需要合并索引节点和拆分索引节点,极大提高更新索引性能,从而也提高数据写入性能。
由于调度数据是时序数据,数据基本是按时间顺序写入的,因此更新多级索引时,我们采用新增索引节点或更新最后一个索引节点、新增索引项或更新最后一个索引项的方式,而不需要像B树索引及其变体一样合并索引节点或拆分索引节点,造成大量随机磁盘IO。
如图2所示,写入数据的步骤包括:
(1)定位到测量点对应的数据缓存块;
(2)如果数据缓存块未满,则将数据追加到数据缓存块,更新数据过程结束;
(3)如果数据缓存块已满,则将数据缓存块转储到数据块中;
(4)对于从数据缓存块转储形成的数据块,统计数据块的起始时标和结束时标,并将该数据块提交到多级索引,执行多级索引更新步骤;
(5)清空数据缓存块内容,返回执行步骤(2)。
其中,更新多级索引步骤包括:
(1)更新底层索引
1)如果底层索引的最后一个索引节点不存在或者最后一个索引节点的索引项已满,则创建一个新的索引节点并作为最后一个索引节点;
2)在底层索引的最后一个索引节点中添加一个索引项,内容为提交的数据块的编号,数据块的数据的起始时标和结束时标;
3)计算底层索引的最后一个索引节点的所有索引项的时标范围的并集,得到一个起始时标和结束时标,将该时标范围信息连同最后一个索引节点的编号提交到上一级索引。
(2)更新底层索引至顶层索引之间的中间级索引
1)如果该级索引的最后一个索引节点不存在,或者最后一个索引节点的最后一个索引项的下一级索引的索引节点编号不是即将提交的下一级索引的索引节点的编号且最后一个索引节点已满,则在该级索引创建一个新的索引节点作为最后一个索引节点;
2)如果该级索引的最后一个索引节点的最后一个索引项不存在,或者其下一级索引的索引节点编号不是即将提交的下一级索引节点的编号,则在该级最后一个索引节点创建一个新的索引项,作为最后一个索引项;
3)将提交过来的下一级索引的索引节点起始时标和结束时标更新到该级索引的最后一个索引节点的最后一个索引项,更新方法是设置下一级索引的索引节点编号、起始时标和结束时标;如果该级索引为底层索引的上一级索引,则本步骤所述的下一级索引为底层索引;
4)计算该级索引的最后一个索引节点的所有索引项的时标范围的并集,得到一个起始时标和结束时标,将该时标范围信息连同最后一个索引节点的编号提交到顶层索引。
(3)更新顶层索引
1)如果顶层索引的最后一个索引节点不存在,或者最后一个索引节点的最后一个索引项的下一级索引的索引节点编号不是即将提交的下一级索引的索引节点的编号且最后一个索引节点已满,则创建一个新的顶层索引的索引节点作为该级索引的最后一个索引节点;如果创建新的顶层索引节点前已存在最后一个索引节点,那么更新该索引节点的下一个索引节点编号为新建的顶层索引节点的编号,使得顶层索引节点形成链表。
2)如果顶层索引的最后一个索引节点的最后一个索引项不存在,或者其下一级索引节点编号不是即将提交的下一级索引节点的编号,那么在最后一个索引节点创建一个新的索引项作为该级索引的最后一个索引项;
3)将提交过来的下一级索引节点起始时标和结束时标更新到顶层索引的最后一个索引节点的最后一个索引项,更新方法是设置下一级索引的索引节点编号、起始时标和结束时标。
如图3和图4所示,下面以三级索引进一步描述更新多级索引的过程:
1、更新一级索引,即底层索引
(1)如果一级索引的最后一个索引节点不存在或者最后一个索引节点的索引项已满,则创建一个新的索引节点作为一级索引的最后一个索引节点;
(2)在一级索引的最后一个索引节点中添加一个索引项,内容为提交的数据块的编号,数据块的数据的起始时标和结束时标;
(3)计算一级索引的最后一个索引节点的所有索引项的时标范围的并集,得到一个起始时标和结束时标,将该时标范围信息连同最后一个索引节点的编号提交到二级索引。
2、更新二级索引
(1)如果二级索引的最后一个索引节点不存在,或者最后一个索引节点的最后一个索引项的下一级索引的索引节点编号不是即将提交的一级索引节点的编号且最后一个索引节点已满,则创建一个新的二级索引节点作为最后一个索引节点;
(2)如果二级索引的最后一个索引节点的最后一个索引项不存在,或者其下一级索引节点编号不是即将提交的一级索引节点的编号,那么在最后一个索引节点创建一个新的索引项作为最后一个索引项;
(3)将提交过来的一级索引节点起始时标和结束时标更新到二级索引的最后一个索引节点的最后一个索引项,更新方法是设置下一级索引的索引节点编号、起始时标和结束时标;
4)计算二级索引的最后一个索引节点的所有索引项的时标范围的并集,得到一个起始时标和结束时标,将该时标范围信息连同最后一个索引节点的编号提交到顶层索引。
3、更新三级索引
(1)如果三级索引的最后一个索引节点不存在,或者最后一个索引节点的最后一个索引项的下一级索引的索引节点编号不是即将提交的二级索引节点的编号且最后一个索引节点已满,则创建一个新的三级索引节点作为最后一个索引节点;如果创建新的顶层索引节点前已存在最后一个索引节点,那么更新该索引节点的下一个索引节点编号为新建的顶层索引节点的编号,使得顶层索引节点形成链表;
(2)如果三级索引的最后一个索引节点的最后一个索引项不存在,或者其下一级索引节点编号不是即将提交的二级索引节点的编号,那么在最后一个索引节点创建一个新的索引项作为最后一个索引项;
(3)将提交过来的二级索引节点起始时标和结束时标更新到三级索引的最后一个索引节点的最后一个索引项,更新方法是设置下一级索引的索引节点编号、起始时标和结束时标。
一种适合电力调度数据高速存取的索引结构的索引方法包括以下步骤:
(1)通过测量点索引定位至测量点对应的数据缓存块,通过查询时标范围过滤数据缓存块的数据,返回满足条件的数据;
(2)通过测量点索引获取待查询的测量点的多级索引位置,即多级索引的第一个索引节点编号;
(3)通过多级索引的第一个索引节点编号和查询时标范围参数,调用多级索引检索流程,获得满足查询条件的数据块;
(4)读取所有满足查询条件的数据块,对每个数据块,按查询时标范围进一步过滤数据,返回满足条件的数据。
其中多级索引检索流程包括以下步骤,设多级索引有N级,N级索引为顶层索引,一级索引为底层索引:
(1)初始化一个空的数据块编号列表;
(2)通过N级索引的第1个索引节点编号,即顶层索引的第一个索引节点编号,读取N级索引的第1个索引节点;
(3)通过N级索引的第1个索引节点,遍历所有N级索引的索引节点,对每个N级索引的索引节点,判断每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则通过该索引项的下一级索引的索引节点编号定位到N-1级索引的索引节点,跳到步骤(4);如果没有交集,那么跳过该索引项;如果N级索引没有任何索引项的时标范围与查询时标范围有交集,则结束检索过程;
(4)判断步骤(3)所述的N-1级索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,那么通过该索引项的下一级索引的索引节点编号定位到N-2级索引的索引节点,继续判断N-2级索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则通过该索引项的下一级索引节点编号定位到N-3级索引的索引节点;如此反复直至N-1级索引为一级索引,即底层索引,则跳到步骤(5);
如果该级索引的下一级索引节点为底层索引,则跳到步骤(5),如果没有交集,那么跳过该索引项;
(5)判断底层索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,那么记录该索引项的下一级索引节点编号,即数据块编号;如果没有交集,那么跳过该索引项;
(6)返回数据块编号列表。
如图3和图4所示,下面以三级索引进一步描述多级索引的检索流程:
(1)初始化一个空的数据块编号列表;
(2)通过三级索引的第一个索引节点编号,读取三级索引的第一个索引节点,即顶层索引的第一个索引节点;
(3)通过三级索引的第一个索引节点,遍历所有三级索引的索引节点,对每个三级索引的索引节点,判断每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则通过索引项的下一级索引节点编号定位到二级索引节点,按步骤(4)进行处理;如果没有交集,那么跳过该索引项;如果没有任何索引项的时标范围与查询时标范围有交集,那么结束查询过程;
(4)判断二级索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则通过该索引项的下一级索引的索引节点编号定位到一级索引的索引节点,即底层索引的索引节点,按步骤(5)进行处理;如果没有交集,则跳过该索引项;
(5)判断一级索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则记录该索引项的下一级索引的索引节点编号,即数据块编号;如果没有交集,那么跳过该索引项;
(6)返回数据块编号列表。
本发明不局限于以上所述的具体实施方式,以上所述仅为本发明的较佳实施案例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种适合电力调度数据高速存取的索引结构,其特征在于:包括测量点索引、时标索引、数据块、数据缓存块;每个测量点索引设置一个时标索引;每个时标索引设置若干个数据块;所述测量点索引依托于关系数据库实现;所述时标索引采用多级索引实现;所述多级索引由顶层索引向下检索直至底层索引;所述多级索引的每一级索引有若干个索引文件,所述索引文件包括若干个索引节点;所述索引节点包括若干个索引项;所述索引项的信息为下一级索引节点的编号、起始时标和结束时标;所述底层索引的下一级索引节点的编号为数据块编号;所述顶层索引除了索引项,还包括下一个索引节点编号信息;所述索引项的时标范围为下一级索引节点所有索引项的时标范围的并集;所述数据缓存块用于在写入数据时先把数据写入数据缓存块,待数据缓存块内存满后再将数据缓存块中的数据以追加的方式转储到数据文件形成数据块,并以数据块的粒度更新多级索引。
2.根据权利要求1所述的一种适合电力调度数据高速存取的索引结构,其特征在于:所述一个测量点对应一个数据缓存块。
3.根据权利要求1所述的一种适合电力调度数据高速存取的索引结构,其特征在于:所述数据缓存块的格式与数据块的格式相同。
4.根据权利要求1所述的一种适合电力调度数据高速存取的索引结构,其特征在于:写入数据的步骤包括:
(1)定位到测量点对应的数据缓存块;
(2)如果数据缓存块未满,则将数据追加到数据缓存块,更新数据过程结束;
(3)如果数据缓存块已满,则将数据缓存块转储到数据块中;
(4)对于从数据缓存块转储形成的数据块,统计数据块的起始时标和结束时标,并将该数据块提交到多级索引,执行更新多级索引步骤;
(5)清空数据缓存块内容,返回执行步骤(2)。
5.根据权利要求1或4所述的一种适合电力调度数据高速存取的索引结构,其特征在于:所述更新多级索引步骤包括:
(1)更新底层索引
1)如果底层索引的最后一个索引节点不存在或者最后一个索引节点的索引项已满,则创建一个新的索引节点并作为最后一个索引节点;
2)在底层索引的最后一个索引节点中添加一个索引项,内容为提交的数据块的编号,数据块的数据的起始时标和结束时标;
3)计算底层索引的最后一个索引节点的所有索引项的时标范围的并集,得到一个起始时标和结束时标,将该时标范围信息连同最后一个索引节点的编号提交到上一级索引;
(2)更新底层索引至顶层索引之间的中间级索引
1)如果该级索引的最后一个索引节点不存在,或者最后一个索引节点的最后一个索引项的下一级索引的索引节点编号不是即将提交的下一级索引的索引节点的编号且最后一个索引节点已满,则在该级索引创建一个新的索引节点作为最后一个索引节点;
2)如果该级索引的最后一个索引节点的最后一个索引项不存在,或者其下一级索引的索引节点编号不是即将提交的下一级索引节点的编号,则在该级最后一个索引节点创建一个新的索引项,作为最后一个索引项;
3)将提交过来的下一级索引的索引节点起始时标和结束时标更新到该级索引的最后一个索引节点的最后一个索引项,更新方法是设置下一级索引的索引节点编号、起始时标和结束时标;如果该级索引为底层索引的上一级索引,则本步骤所述的下一级索引为底层索引;
4)计算该级索引的最后一个索引节点的所有索引项的时标范围的并集,得到一个起始时标和结束时标,将该时标范围信息连同最后一个索引节点的编号提交到顶层索引;
(3)更新顶层索引
1)如果顶层索引的最后一个索引节点不存在,或者最后一个索引节点的最后一个索引项的下一级索引的索引节点编号不是即将提交的下一级索引的索引节点的编号且最后一个索引节点已满,则创建一个新的顶层索引的索引节点作为该级索引的最后一个索引节点;如果创建新的顶层索引节点前已存在最后一个索引节点,那么更新该索引节点的下一个索引节点编号为新建的顶层索引节点的编号,使得顶层索引节点形成链表;
2)如果顶层索引的最后一个索引节点的最后一个索引项不存在,或者其下一级索引节点编号不是即将提交的下一级索引节点的编号,那么在最后一个索引节点创建一个新的索引项作为该级索引的最后一个索引项;
3)将提交过来的下一级索引节点起始时标和结束时标更新到顶层索引的最后一个索引节点的最后一个索引项,更新方法是设置下一级索引的索引节点编号、起始时标和结束时标。
6.权利要求1-5所述的一种适合电力调度数据高速存取的索引结构的索引方法,其特征在于:包括以下步骤:
(1)通过测量点索引定位至测量点对应的数据缓存块,通过查询时标范围过滤数据缓存块的数据,返回满足条件的数据;
(2)通过测量点索引获取待查询的测量点的多级索引位置,即多级索引的第一个索引节点编号;
(3)通过多级索引的第一个索引节点编号和查询时标范围参数,调用多级索引检索流程,获得满足查询条件的数据块;
(4)读取所有满足查询条件的数据块,对每个数据块,按查询时标范围进一步过滤数据,返回满足条件的数据。
7.根据权利要求6所述的一种适合电力调度数据高速存取的索引结构的索引方法,其特征在于:所述多级索引检索流程包括以下步骤,设多级索引有N级,N级索引为顶层索引,一级索引为底层索引:
(1)初始化一个空的数据块编号列表;
(2)通过N级索引的第1个索引节点编号,即顶层索引的第一个索引节点编号,读取N级索引的第1个索引节点;
(3)通过N级索引的第1个索引节点,遍历所有N级索引的索引节点,对每个N级索引的索引节点,判断每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则通过该索引项的下一级索引的索引节点编号定位到N-1级索引的索引节点,跳到步骤(4);如果没有交集,那么跳过该索引项;如果N级索引没有任何索引项的时标范围与查询时标范围有交集,则结束检索过程;
(4)判断步骤(3)所述的N-1级索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,那么通过该索引项的下一级索引的索引节点编号定位到N-2级索引的索引节点,继续判断N-2级索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,则通过该索引项的下一级索引节点编号定位到N-3级索引的索引节点;如此反复直至N-1级索引为一级索引,即底层索引,则跳到步骤(5);
如果该级索引的下一级索引节点为底层索引,则跳到步骤(5),如果没有交集,那么跳过该索引项;
(5)判断底层索引的索引节点的每个索引项的时标范围是否与查询时标范围有交集,如果有交集,那么记录该索引项的下一级索引节点编号,即数据块编号;如果没有交集,那么跳过该索引项;
(6)返回数据块编号列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710885121.2A CN107766452B (zh) | 2017-09-26 | 2017-09-26 | 一种适合电力调度数据高速存取的索引系统及其索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710885121.2A CN107766452B (zh) | 2017-09-26 | 2017-09-26 | 一种适合电力调度数据高速存取的索引系统及其索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107766452A true CN107766452A (zh) | 2018-03-06 |
CN107766452B CN107766452B (zh) | 2021-07-06 |
Family
ID=61267690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710885121.2A Active CN107766452B (zh) | 2017-09-26 | 2017-09-26 | 一种适合电力调度数据高速存取的索引系统及其索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766452B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046129A (zh) * | 2019-05-13 | 2020-04-21 | 国家计算机网络与信息安全管理中心 | 基于文本内容特征的公众号信息存储方法及检索系统 |
CN113656397A (zh) * | 2021-07-02 | 2021-11-16 | 阿里巴巴新加坡控股有限公司 | 一种针对时序数据的索引构建及查询的方法、装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996246A (zh) * | 2010-11-09 | 2011-03-30 | 中国电信股份有限公司 | 即时索引方法及系统 |
CN102043795A (zh) * | 2009-10-13 | 2011-05-04 | 上海新华控制技术(集团)有限公司 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
US20120254189A1 (en) * | 2011-03-31 | 2012-10-04 | Biren Narendra Shah | Multilevel indexing system |
CN103365960A (zh) * | 2013-06-18 | 2013-10-23 | 国家电网公司 | 电力多级调度管理结构化数据的离线搜索方法 |
CN103593409A (zh) * | 2013-10-22 | 2014-02-19 | 深圳市康拓普信息技术有限公司 | 实时数据库检索方法及检索系统 |
CN104317966A (zh) * | 2014-11-18 | 2015-01-28 | 国家电网公司 | 一种用于电力大数据快速组合查询的动态索引方法 |
CN105205563A (zh) * | 2015-09-28 | 2015-12-30 | 国网山东省电力公司菏泽供电公司 | 一种基于大数据的短期负荷预测平台 |
CN105354251A (zh) * | 2015-10-19 | 2016-02-24 | 国家电网公司 | 电力系统中基于Hadoop的电力云数据管理索引方法 |
US20160275119A1 (en) * | 2015-03-20 | 2016-09-22 | Kabushiki Kaisha Toshiba | Building information processing device, building information processing method, and non-transitory computer readable medium |
-
2017
- 2017-09-26 CN CN201710885121.2A patent/CN107766452B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043795A (zh) * | 2009-10-13 | 2011-05-04 | 上海新华控制技术(集团)有限公司 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
CN101996246A (zh) * | 2010-11-09 | 2011-03-30 | 中国电信股份有限公司 | 即时索引方法及系统 |
US20120254189A1 (en) * | 2011-03-31 | 2012-10-04 | Biren Narendra Shah | Multilevel indexing system |
CN103365960A (zh) * | 2013-06-18 | 2013-10-23 | 国家电网公司 | 电力多级调度管理结构化数据的离线搜索方法 |
CN103593409A (zh) * | 2013-10-22 | 2014-02-19 | 深圳市康拓普信息技术有限公司 | 实时数据库检索方法及检索系统 |
CN104317966A (zh) * | 2014-11-18 | 2015-01-28 | 国家电网公司 | 一种用于电力大数据快速组合查询的动态索引方法 |
US20160275119A1 (en) * | 2015-03-20 | 2016-09-22 | Kabushiki Kaisha Toshiba | Building information processing device, building information processing method, and non-transitory computer readable medium |
CN105205563A (zh) * | 2015-09-28 | 2015-12-30 | 国网山东省电力公司菏泽供电公司 | 一种基于大数据的短期负荷预测平台 |
CN105354251A (zh) * | 2015-10-19 | 2016-02-24 | 国家电网公司 | 电力系统中基于Hadoop的电力云数据管理索引方法 |
Non-Patent Citations (3)
Title |
---|
杨万清 等: ""电力大数据存储方案设计"", 《东北电力技术》 * |
汤羽 等: ""基于HDFS开源架构与多级索引表的海量数据检索mDHT算法"", 《计算机科学》 * |
陶松梅、张炜: ""基于CIM模型的变电站三维可视化交互技术应用"", 《广西电力》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046129A (zh) * | 2019-05-13 | 2020-04-21 | 国家计算机网络与信息安全管理中心 | 基于文本内容特征的公众号信息存储方法及检索系统 |
CN113656397A (zh) * | 2021-07-02 | 2021-11-16 | 阿里巴巴新加坡控股有限公司 | 一种针对时序数据的索引构建及查询的方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107766452B (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103366015B (zh) | 一种基于Hadoop的OLAP数据存储与查询方法 | |
CN104820670B (zh) | 一种电力信息大数据的采集和存储方法 | |
CN105320775B (zh) | 数据的存取方法和装置 | |
CN102270232B (zh) | 一种存储优化的语义数据查询系统 | |
CN104765731B (zh) | 数据库查询优化方法和设备 | |
CN104112011B (zh) | 一种海量数据提取的方法及装置 | |
Abdelguerfi et al. | The 2-3TR-tree, a trajectory-oriented index structure for fully evolving valid-time spatio-temporal datasets | |
CN103631922A (zh) | 基于Hadoop集群的大规模Web信息提取方法及系统 | |
CN104504008B (zh) | 一种基于嵌套的SQL到HBase的数据迁移算法 | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
CN107391502A (zh) | 时间间隔的数据查询方法、装置及索引构建方法、装置 | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
CN108009270A (zh) | 一种基于分布式内存计算的文本检索方法 | |
CN103198150A (zh) | 一种大数据索引方法及系统 | |
CN107784030A (zh) | 一种处理连接查询的方法及装置 | |
CN107766452A (zh) | 一种适合电力调度数据高速存取的索引结构及其索引方法 | |
CN107766451A (zh) | 一种面向电力大数据的跨数据库关联检索方法 | |
CN106682061A (zh) | 一种分布式起源数据收集与存储系统 | |
CN108681577A (zh) | 一种新型的库结构数据索引方法 | |
CN104239447A (zh) | 电网时序大数据存储方法 | |
CN108093010A (zh) | 一种工业实时数据系统及其数据处理方法 | |
CN106951519A (zh) | 基于网格划分的快速轨迹索引更新方法 | |
CN112527836A (zh) | 一种基于t-box平台的大数据查询方法 | |
CN106844539A (zh) | 实时数据分析方法及系统 | |
CN108052637B (zh) | 电网时标量测数据接入全生命周期实时图文监控方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |