CN111309725A - 一种基于哈希算法的电力设备数据存取方法及系统 - Google Patents
一种基于哈希算法的电力设备数据存取方法及系统 Download PDFInfo
- Publication number
- CN111309725A CN111309725A CN202010011900.1A CN202010011900A CN111309725A CN 111309725 A CN111309725 A CN 111309725A CN 202010011900 A CN202010011900 A CN 202010011900A CN 111309725 A CN111309725 A CN 111309725A
- Authority
- CN
- China
- Prior art keywords
- hash
- key
- data access
- data
- algorithm
- 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.)
- Pending
Links
Images
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
- G06F16/2255—Hash tables
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Abstract
本发明涉及电力监控技术领域,尤其涉及一种基于哈希算法的电力设备数据存取方法及系统,其不同之处在于,其步骤包括:S1、构建哈希表;S2、取设备ID,以设备ID为哈希键值对的key值;S3、使用APHash算法得到哈希键值对的value值;S4、数据存取。本发明大大提高了存取和查找速度,保证了系统的实时性和运行效率。
Description
技术领域
本发明涉及电力监控技术领域,尤其涉及一种基于哈希算法的电力设备数据存取方法及系统。
背景技术
电力系统是由供电和用电环节组成的电能生产与消费系统。其将自然界的一次能源通过发电动力装置转化成电能,再经输电、变电和配电将电能供应到各用户。为实现这一功能,电力系统在各个环节和不同层次还具有相应的信息与控制系统,对电能的生产过程进行监控和控制,以保证用户获得安全、优质的电能。
在电力监控系统中,如果电力设备过多,数据量过大,则在数据存取时会消耗大量的时间,不利于系统的实时性和运行效率。
鉴于此,为克服上述技术缺陷,提供一种基于哈希算法的电力设备数据存取方法及系统成为本领域亟待解决的问题。
发明内容
本发明的目的在于克服现有技术的缺点,提供一种基于哈希算法的电力设备数据存取方法及系统,大大提高了存取和查找速度,保证了系统的实时性和运行效率。
为解决以上技术问题,本发明的技术方案为:一种基于哈希算法的电力设备数据存取方法,其不同之处在于,其步骤包括:
S1、构建哈希表:
S11、构建链表,以key和value为元素,建立存储哈希键值对的节点;
S12、以步骤S11中构建的链表为元素,构建哈希表;
S2、取设备ID,以设备ID为哈希键值对的key值;
S3、使用APHash算法得到哈希键值对的value值;
S4、数据存取:
S41、存数据:以键值对为元素添加节点,根据value值插入节点到哈希表相应位置;
S42、取数据:根据value值在哈希表中查找到元素,取出key即为设备ID。
按以上技术方案,所述步骤S12中,以指向节点的指针为链表头指针,以指向头指针的指针为哈希表指针,同时在成员变量中有表示散列地址长度的变量即数组的长度。
按以上技术方案,步骤S41中,通过APHash算法得到散列值nHash,分配一个节点,把key和value存入节点,并把节点添加到链表之中。
按以上技术方案,查找时先用key计算出是哪个链表,之后遍历链表,把key值与链表中的节点key值一一比较,即可找到数据点。
一种基于哈希算法的电力设备数据存取系统,其特征在于:其包括电力设备数据、哈希表、主数据库和实时数据库,所述电力设备数据分别存入哈希表和实时数据库中,取数据时利用哈希表一次性找到数据。
按以上技术方案,所述主数据库中建立有与电力设备信息相关的表,包括设备表、信号表、连接表。
按以上技术方案,在所述设备表中以设备id为主键,其它表与设备表相关联,从而建立了以设备id为标志符,以设备id为查找条件可以查找到关于设备所有信息的存取体系。
按以上技术方案,所述实时数据库建立在内存中,绕过访问数据库的过程,可以实现数据的快速读取。
按以上技术方案,所述哈希表包括设备哈希表,遥测哈希表和遥信哈希表。
按以上技术方案,各类哈希表建立一个子类,子类继承哈希算法具体实现中的父类,在子类中增添各个类特有的属性,以类的对象实例分配内存。
对比现有技术,本发明的有益特点为:为了解决大数据存取的问题,设计了这种基于哈希算法的存取系统,本发明引入哈希表和实时数据库,把数据分别存入哈希表和实时数据库中,在系统取数据时利用哈希表的查找便捷性一次性找到数据,大大提高了查找速度,保证了系统的实时性和运行效率。
附图说明
图1为本发明实施例的数据存取系统架构示意图;
图2为本发明实施例的数据存取方法流程示意图;
图3为本发明实施例的各类哈希表示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在下文中,将参考附图来更好地理解本发明的许多方面。附图中的部件未必按照比例绘制。替代地,重点在于清楚地说明本发明的部件。此外,在附图中的若干视图中,相同的附图标记指示相对应零件。
如本文所用的词语“示例性”或“说明性”表示用作示例、例子或说明。在本文中描述为“示例性”或“说明性”的任何实施方式未必理解为相对于其它实施方式是优选的或有利的。下文所描述的所有实施方式是示例性实施方式,提供这些示例性实施方式是为了使得本领域技术人员做出和使用本公开的实施例并且预期并不限制本公开的范围,本公开的范围由权利要求限定。在其它实施方式中,详细地描述了熟知的特征和方法以便不混淆本发明。出于本文描述的目的,术语“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”和其衍生词将与如图1定向的发明有关。而且,并无意图受到前文的技术领域、背景技术、发明内容或下文的详细描述中给出的任何明示或暗示的理论限制。还应了解在附图中示出和在下文的说明书中描述的具体装置和过程是在所附权利要求中限定的发明构思的简单示例性实施例。因此,与本文所公开的实施例相关的具体尺寸和其他物理特征不应被理解为限制性的,除非权利要求书另作明确地陈述。
本发明中使用到的技术有:哈希表技术,哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。
通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许多操作,包括身份验证和数字签名,也称为“消息摘要”。
拉链法就是把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。这种方法的基本思想就是选择足够大的M,使得所有链表都尽可能短以保证高效的查找。查找分两步:首先根据Hash值找到对应的链表,然后沿着链表顺序查找对应的键。
在本系统中哈希函数采用APHash算法,这种算法基于对字符编码的迭代运算,可以很好地解决冲突,由于设备id是设备的唯一标志符,以id为key值,经过哈希运算后得到value值,以value值为哈希数组的位置符,锁定链表的位置,并依次向链表中增添节点,即可把key值散列到整个哈希表中。
1)构建哈希表
首先构建链表,以key和value为元素,建立链表节点;
以上一步构建的链表为元素,构建哈希表,以指向节点的指针为链表头指针,同时以指向头指针的指针为哈希表指针,同时在成员变量中有表示散列地址长度的变量即数组的长度。在结构体中声明增删改查的各个函数,在外部调用时只需以哈希指针定位,直接调用类中的函数。
2)APhash算法
APHash算法,这种算法基于对字符编码的迭代运算,可以很好地解决冲突。不断取key值的低位与计算后的值异或,最后与数组长度取余,即得到hash值。
3)数据存取
在得到value值后即定位链表在哈希数组中的位置,通过APHash算法得到散列值nHash,分配一个节点,把key和value存入节点,并把节点添加到链表之中即可。
查找时先用key算出是哪个链表,之后遍历链表,把key值与链表中的节点key值一一比较,即可找到数据点。
参照图1至图3,本发明公开了一种基于哈希算法的电力设备数据存取方法,其不同之处在于,其步骤包括:
S1、构建哈希表:
S11、构建链表,以key和value为元素,建立存储哈希键值对的节点;
S12、以步骤S11中构建的链表为元素,构建哈希表;
S2、取设备ID,以设备ID为哈希键值对的key值;
S3、使用APHash算法得到哈希键值对的value值;
S4、数据存取:
S41、存数据:以键值对为元素添加节点,根据value值插入节点到哈希表相应位置;
S42、取数据:根据value值在哈希表中查找到元素,取出key即为设备ID。
具体的,所述步骤S12中,以指向节点的指针为链表头指针,以指向头指针的指针为哈希表指针,同时在成员变量中有表示散列地址长度的变量即数组的长度。
优选的,步骤S41中,通过APHash算法得到散列值nHash,分配一个节点,把key和value存入节点,并把节点添加到链表之中。
具体的,查找时先用key计算出是哪个链表,之后遍历链表,把key值与链表中的节点key值一一比较,即可找到数据点。
一种基于哈希算法的电力设备数据存取系统,其特征在于:其包括电力设备数据、哈希表、主数据库和实时数据库,所述电力设备数据分别存入哈希表和实时数据库中,取数据时利用哈希表一次性找到数据。
主数据库建设:在mySQL数据库中建立设备表,信号表,连接表等有关电力设备信息的表,在设备表中以设备id为主键,其它表与设备表相关联,从而建立了以设备id为标志符,以设备id为查找条件可以查找到关于设备所有信息的存取体系。
实时数据库建设:实时数据库建立在内存中,绕过访问数据库的过程,可以实现数据的快速读取。在本系统中对应数据库建立各个结构体,用指针分配内存,把数据填入结构体指针中,在系统启动后会对实时库进行初始化。与哈希表相比,实时数据库的查询更慢,但是保存的数据可以更多,所以在本系统中作为对哈希表的补充,对于一些不会频繁访问的数据保存在实时数据库中。
哈希表建设:由于在电力系统中会对设备和设备信号进行大量和高频的访问,所以把这部分数据存入哈希表,将建立多张哈希表,主要包括设备哈希表,遥测哈希表和遥信哈希表,各类哈希表建立一个子类,子类继承哈希算法具体实现中的父类CInt64Hash,在子类中增添各个类特有的属性,以类的对象实例分配内存。
优选的,所述主数据库中建立有与电力设备信息相关的表,包括设备表、信号表、连接表。
具体的,在所述设备表中以设备id为主键,其它表与设备表相关联,从而建立了以设备id为标志符,以设备id为查找条件可以查找到关于设备所有信息的存取体系。
具体的,所述实时数据库建立在内存中,绕过访问数据库的过程,可以实现数据的快速读取。
优选的,所述哈希表包括设备哈希表,遥测哈希表和遥信哈希表。
具体的,各类哈希表建立一个子类,子类继承哈希算法具体实现中的父类,在子类中增添各个类特有的属性,以类的对象实例分配内存。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于哈希算法的电力设备数据存取方法,其特征在于,其步骤包括:
S1、构建哈希表;
S11、构建链表,以key和value为元素,建立存储哈希键值对的节点;
S12、以步骤S11中构建的链表为元素,构建哈希表;
S2、取设备ID,以设备ID为哈希键值对的key值;
S3、使用APHash算法得到哈希键值对的value值;
S4、数据存取;
S41、存数据:以键值对为元素添加节点,根据value值插入节点到哈希表相应位置;
S42、取数据:根据value值在哈希表中查找到元素,取出key即为设备ID。
2.根据权利要求1所述的基于哈希算法的电力设备数据存取方法,其特征在于:所述步骤S12中,以指向节点的指针为链表头指针,以指向头指针的指针为哈希表指针,同时在成员变量中有表示散列地址长度的变量即数组的长度。
3.根据权利要求1所述的基于哈希算法的电力设备数据存取方法,其特征在于:步骤S41中,通过APHash算法得到散列值nHash,分配一个节点,把key和value存入节点,并把节点添加到链表之中。
4.根据权利要求1所述的基于哈希算法的电力设备数据存取方法,其特征在于:查找时先用key计算出是哪个链表,之后遍历链表,把key值与链表中的节点key值一一比较,即可找到数据点。
5.一种基于哈希算法的电力设备数据存取系统,其特征在于:其包括电力设备数据、哈希表、主数据库和实时数据库,所述电力设备数据分别存入哈希表和实时数据库中,取数据时利用哈希表一次性找到数据。
6.根据权利要求5所述的基于哈希算法的电力设备数据存取系统,其特征在于:所述主数据库中建立有与电力设备信息相关的表,包括设备表、信号表、连接表。
7.根据权利要求6所述的基于哈希算法的电力设备数据存取系统,其特征在于:在所述设备表中以设备id为主键,其它表与设备表相关联,从而建立了以设备id为标志符,以设备id为查找条件可以查找到关于设备所有信息的存取体系。
8.根据权利要求5所述的基于哈希算法的电力设备数据存取系统,其特征在于:所述实时数据库建立在内存中,绕过访问数据库的过程,可以实现数据的快速读取。
9.根据权利要求5所述的基于哈希算法的电力设备数据存取系统,其特征在于:所述哈希表包括设备哈希表,遥测哈希表和遥信哈希表。
10.根据权利要求9所述的基于哈希算法的电力设备数据存取系统,其特征在于:各类哈希表建立一个子类,子类继承哈希算法具体实现中的父类,在子类中增添各个类特有的属性,以类的对象实例分配内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010011900.1A CN111309725A (zh) | 2020-01-07 | 2020-01-07 | 一种基于哈希算法的电力设备数据存取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010011900.1A CN111309725A (zh) | 2020-01-07 | 2020-01-07 | 一种基于哈希算法的电力设备数据存取方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111309725A true CN111309725A (zh) | 2020-06-19 |
Family
ID=71158105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010011900.1A Pending CN111309725A (zh) | 2020-01-07 | 2020-01-07 | 一种基于哈希算法的电力设备数据存取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309725A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116056146A (zh) * | 2023-03-06 | 2023-05-02 | 至控科技(湖州)创新研究院有限公司 | 一种基于哈希数组的无线定位信号缓存传输方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462549A (zh) * | 2014-12-25 | 2015-03-25 | 瑞斯康达科技发展股份有限公司 | 一种数据处理方法和装置 |
CN106569929A (zh) * | 2016-10-26 | 2017-04-19 | 珠海许继芝电网自动化有限公司 | 一种应用于监控系统的实时数据存取方法及系统 |
US20190205288A1 (en) * | 2012-02-02 | 2019-07-04 | Visa International Service Association | Multi-source, multi-dimensional, cross-entity, multimedia merchant analytics database platform apparatuses, methods and systems |
-
2020
- 2020-01-07 CN CN202010011900.1A patent/CN111309725A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190205288A1 (en) * | 2012-02-02 | 2019-07-04 | Visa International Service Association | Multi-source, multi-dimensional, cross-entity, multimedia merchant analytics database platform apparatuses, methods and systems |
CN104462549A (zh) * | 2014-12-25 | 2015-03-25 | 瑞斯康达科技发展股份有限公司 | 一种数据处理方法和装置 |
CN106569929A (zh) * | 2016-10-26 | 2017-04-19 | 珠海许继芝电网自动化有限公司 | 一种应用于监控系统的实时数据存取方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116056146A (zh) * | 2023-03-06 | 2023-05-02 | 至控科技(湖州)创新研究院有限公司 | 一种基于哈希数组的无线定位信号缓存传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488704B (zh) | 一种数据存储方法及装置 | |
CN108769111A (zh) | 一种服务器连接方法、计算机可读存储介质及终端设备 | |
CN111931097B (zh) | 信息展示方法、装置、电子设备以及存储介质 | |
CN111581215B (zh) | 数组树数据储存方法、快速查找方法及可读储存介质 | |
CN107357843B (zh) | 基于数据流结构的海量网络数据查找方法 | |
EP3470992B1 (en) | Efficient storage and utilization of a hierarchical data set | |
CN104268295A (zh) | 一种数据查询方法及装置 | |
WO2023160137A1 (zh) | 图数据存储方法、系统及计算机设备 | |
CN103902595A (zh) | 一种构建数据库的方法和装置 | |
US20080168071A1 (en) | Storing Data in Predicted Formats | |
CN111309725A (zh) | 一种基于哈希算法的电力设备数据存取方法及系统 | |
CN114860627A (zh) | 基于地址信息动态生成页表的方法 | |
CN107273443B (zh) | 一种基于大数据模型元数据的混合索引方法 | |
CN108241709A (zh) | 一种数据集成方法、装置和系统 | |
CN106131115A (zh) | 基于云端通讯录的通讯录数据自动发布和更新系统 | |
CN112948439A (zh) | 一种实时处理gis数据查询请求方法、装置、介质及设备 | |
CN111666302A (zh) | 用户排名的查询方法、装置、设备及存储介质 | |
CN102880629B (zh) | 概率数据库加速查询方法 | |
CN112988744A (zh) | 一种设备数据管理系统及方法 | |
CN112380004A (zh) | 内存管理方法、装置、计算机可读存储介质及电子设备 | |
CN111159175A (zh) | 基于索引的非完整数据库Skyline查询方法 | |
CN107205034A (zh) | 一种数据共享设备及方法 | |
CN109885840A (zh) | 通过16位Trie树实现空间优化的词典排序方法 | |
CN112464821B (zh) | 一种多维空间视界搜索方法及系统 | |
US11870740B2 (en) | Intelligent, personalized, and dynamic chatbot conversation |
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 |