掌桥专利:专业的专利平台
掌桥专利
首页

一种电力数据入库方法、装置和计算机可读存储介质

文献发布时间:2023-06-19 11:16:08


一种电力数据入库方法、装置和计算机可读存储介质

技术领域

本申请涉及电力系统技术领域,特别涉及一种电力数据入库方法、装置、电子设备和计算机可读存储介质

背景技术

电力采集系统中采集质量的一项重要指标是数据归档进行存储的效率。目前绝大部分的采集系统存在数据存储滞后不及时、效率不高等现象,当前在电力采集系统中数据存储方式为:数据采集回来之后,直接利用merge操作存储到数据库,由于数据库merge操作过程较复杂耗时较长,导致数据存储的效率较低,影响用户的系统使用体验。

发明内容

本申请的目的是提供一种电力数据入库方法,能够有效地提高数据存储到数据库的效率,减小内存占用,提高数据存储效率。其具体方案如下:

第一方面,本申请公开了一种电力数据入库的方法,包括:

获取电表的电力数据,并将所述电力数据存储至内存中;

对内存中的所述电力数据进行数据规整,生成key-value键值对;所述key-value键值对中的value值采用bitmap方式来记录电表的采集状态;

利用数据库insert操作,将所述key-value键值对写入数据库。

可选的,所述对内存中的所述电力数据进行数据规整,生成key-value键值对,包括:

对内存中的所述电力数据进行数据规整,生成初始key-value键值对;

对所述初始key-value键值对中的value值采用压缩bitmap方式进行记录,生成所述key-value键值对。

可选的,所述获取电表的电力数据,包括:

利用profile曲线形式获取所述电表的电力数据。

可选的,所述对内存中的所述电力数据进行数据规整,包括:

对所述内存中的电力数据进行数据时间点和业务数据类型归类。

可选的,利用数据库insert操作,将所述key-value键值对写入数据库之后,还包括:

判断所述key-value键值对是否全部写入成功;

若否,则切换为数据库merge操作写入所述数据库。

可选的,在所述对内存中的所述电力数据进行数据规整,生成key-value键值对之后,还包括:

根据所述key-value键值对中的value值,判断对应的电表是否采集成功;

若否,则发送未成功消息至接入层,以控制对应的电表重新采集电力数据。

第二方面,本申请公开了一种电力数据入库的装置,包括:

获取模块,用于获取电表的电力数据,并将所述电力数据存储至内存中;

生成模块,用于对内存中的所述电力数据进行数据规整,生成key-value键值对;所述key-value键值对中的value值采用bitmap方式来记录电表的采集状态;

写入模块,用于利用数据库insert操作,将所述key-value键值对写入数据库。

可选的,所述生成模块,包括:

第一生成单元,用于对内存中的所述电力数据进行数据规整,生成初始key-value键值对;

第二生成单元,用于对所述初始key-value键值对中的value值采用压缩bitmap方式进行记录,生成所述key-value键值对。

第三方面,本申请公开了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述电力数据入库方法的步骤。

第四方面,本申请公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述电力数据入库方法的步骤。

本申请提供一种电力数据入库方法,包括:获取电表的电力数据,并将所述电力数据存储至内存中;对内存中的所述电力数据进行数据规整,生成key-value键值对;所述key-value键值对中的value值采用bitmap方式来记录电表的采集状态;利用数据库insert操作,将所述key-value键值对写入数据库。

可见,本申请通过数据库insert操作将key-value键值对写入数据库,由于数据库insert操作简单高效,能够有效地提高数据存储到数据库的效率,避免了相关技术中采用数据库merge操作,由于数据库merge操作过程较复杂耗时较长,导致数据存储的效率较低的缺点,并且本申请采用bitmap的方式记录电表的采集状态,能够有效减小内存占用,进一步提高数据存储效率,改善用户的使用体验。本申请同时还提供了一种电力数据入库装置、一种电子设备和计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种电力数据入库方法的流程图;

图2为本申请实施例所提供的一种电力数据入库装置的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在电力采集系统中,常见的将电力数据存入数据库的方式是采用merge操作,在实际数据库中的merge(replace)操作与insert操作的性能相差非常大,操作流程较复杂耗时较长。而且,目前绝大部分电力采集系统中,当数据采集回来之后,直接存储到数据库,中间较少进行其他的干预。这种方式虽然简单,但是效率不高,未考虑批量存储方案;并且系统处理效率不佳,未进行数据规整等操作。

基于上述技术问题,本实施例提供一种电力数据入库方法,能够有效地提高数据存储到数据库的效率,减小内存占用,提高数据存储效率,具体请参考图1,图1为本申请实施例所提供的一种电力数据入库方法的流程图,具体包括:

S101、获取电表的电力数据,并将电力数据存储至内存中。

本实施例并不限定电力数据的具体内容,可以包括电压、电流、电能、功率等,还可以包括其他电力数据,可根据实际情况进行选取。可以理解的是,本实施例中采用先将电力数据存储到内存中,可以在内存中对电力数据进行规整,与相关技术中数据采集回来之后直接存储到数据库,未进行规整的情况相比较,可以有效提高数据存储效率。本实施例并不限定获取的方式,可以采用profile曲线形式获取,也可以按照时间点一个个的获取,也可以采用其他方式。

在一种具体的实施例中,为了提高获取电力数据的效率,本实施例中获取电表的电力数据,可以包括:

利用profile曲线形式获取电表的电力数据。

即本实施例中采用profile曲线形式获取电表的电力数据,可以有效提高获取电力数据的效率,减少获取的时间成本。本实施例并不限定电力采集系统中profile曲线的个数,可根据实际需求进行设定。相同的,本实施例也不限定profile曲线各个值的间隔时间。例如,profile1可以包括正向有功电能总、正向有功电能费率1、正向有功电能费率2、正向有功电能费率3、正向有功电能费率4,间隔为1小时;profile2可以包括A相电压、A相电流、B相电压、B相电流、C相电压、C相电流,间隔为30分钟。即本实施例中实际的电力数据可以通过profile曲线形式采集或者主动push之后,记录在系统自身缓存中,也就是存储到内存中。

S102、对内存中的电力数据进行数据规整,生成key-value键值对;key-value键值对中的value值采用bitmap方式来记录电表的采集状态。

本实施例并不限定对电力数据进行规整的具体内容,可以是对数据的时间点进行规整,可以是对电压、电流、功率等进行归类,可根据实际的需求进行整理。

在一种具体的实施例中,对内存中的电力数据进行数据规整,可以包括:

对内存中的电力数据进行数据时间点和业务数据类型归类。

即本实施例中对缓存到内存中的电力数据进行数据时间点和业务数据类型进行归类,实现对电力数据进行规整。例如,对各个电表中采集的电压数据归为一类,功率数据归为一类等。

需要说明的是,本申请实施例中主要是对电表采集电力数据的状态进行数据存储,即是否采集成功的状态进行存储。可以理解的是,在内存中对电力数据进行规整后,再获取采集成功与否的状态可以更清晰高效,进而提高数据存储的效率。还可以理解的是,本实施例对电力数据进行规整后,生成key-value键值对,key-value键值对中的key指的是某一时间点的某个电表项,对应的,value值记录的是采集成功的状态,可以是采集成功记为1,未成功记为0。也就是说可通过key这一项查询到对应的value值。

还可以理解的是,本实施例中采用bitmap方式来记录电表的采集状态,与采用map的方式中,每个电表采用一个key的方式记录状态相比较,可以减小内存的占用,并提高查询效率。

在一种具体的实施例中,为了进一步减少内存占用,对内存中的电力数据进行数据规整,生成key-value键值对,可以包括:

对内存中的电力数据进行数据规整,生成初始key-value键值对;

对初始key-value键值对中的value值采用压缩bitmap方式进行记录,生成key-value键值对。

即本实施例中对内存中的电力数据进行数据规整,生成初始的key-value键值对,然后对初始key-value键值对中的value值采用压缩bitmap方式进行记录,生成最终的key-value键值对,可以理解的是,EWAHCompressedBitmap格式即压缩的bitmap方式,可以对中间连续相同的状态进行进一步压缩,从而达到进一步减少内存占用的作用。可以理解的是,Bitmap方式采用二进制的形式记录采集状态,二进制的每一位都可以记录采集状态,若采用map的方式,n个电表的抄表成功状态需要申请n个key来存储,但是若采用bitmap的方式来存储,理论上只需要1个字节,大大缩减了存储的空间。而采用EWAHCompressedBitmap格式,可以对中间连续相同的状态进行进一步压缩,从而达到进一步减少内存占用。

在一种具体的实施例中,为了减少数据缺失点,在对内存中的电力数据进行数据规整,生成key-value键值对之后,还可以包括:

根据key-value键值对中的value值,判断对应的电表是否采集成功;

若否,则发送未成功消息至接入层,以控制对应的电表重新采集电力数据。

即本实施例中可以通过key-value键值对中的value值,判断对应的电表是否采集成功,即当value值为1,则说明对应的电表采集成功;当value值为0,则说明对应的电表采集未成功。当判断得到对应的电表采集未成功时,则可以发送未成功消息到接入层,使接入层控制对应的电表重新采集电力数据。可以提高后续的采集成功率,减少数据缺失点。

以下提供一种具体的实施例。

外层采用Map的方式进行记录,key为tv+tableName,value值为EWAHCompressedBitmap,在加载档案的时候,对档案的id重新进行编号,从1开始连续编号,若相应的表计采集成功,则对相应的时间节点的值,相位的位数置为1。例如,表A对应的编号为5000,13:00的数据采集成功,则对13:00相应的业务表的数据,第5000的bit位设置为1。后续判断是否采集成功,则只需要根据时间+表名,再获取相应bit位的值即可。例如,有10000只电表数据需要采集,有3条profile,profile1间隔为1小时、profile2间隔为30分钟、profile3间隔为2小时:

profile1:一天之内有24个key-value键值对,key值为00:00:00+xxx、01:00:00+xxx、02:00:00+xxx,,,。value值10000个bitmap。

profile2:一天之内有48个key-value键值对,key值为00:00:00+xxx、00:30:00+xxx、01:00:00+xxx、,,。value值10000个bitmap。

profile3:一天之内有12个key-value键值对,key值为00:00:00+xxx、02:00:00+xxx、04:00:00+xxx、,,。value值10000个bitmap。

S103、利用数据库insert操作,将key-value键值对写入数据库。

本实施例对key-value键值对使用数据库insert操作写入到数据库中,数据库insert操作与数据库merge操作相比较,具有操作简单高效的特点,能够有效提高数据存储效率。

在一种具体的实施例中,为了提升整体的入库成功率,利用数据库insert操作,将key-value键值对写入数据库之后,还可以包括:

判断key-value键值对是否全部写入成功;

若否,则切换为数据库merge操作写入数据库。

即本实施例中当存在key-value键值对通过数据库insert操作写入数据库失败的情况时,也就是发现有出错或者抛出异常的,可切换为数据库merge操作继续写入数据库,能够提升整体的入库成功率。

可以理解的是,本实施例可通过找到对应的profile曲线中的key值,根据所属电表设备的信息,更新其中的value值;然后定期更新该bitmap中的值,并更新数据到数据库;然后,先使用数据库insert操作,写入成功率较高,如可达到97%以上;若发现有出错或者抛出异常的,再切换到数据库merge操作进行入库;而且对于bitmap值的操作,由于均在内存中进行,操作性能较好。

基于上述技术方案,本实施例通过记录每只电表每条profile曲线的采集进度到对应的bitmap,通过记录电表的采集状态,尽量采用数据库insert操作进行入库,避免不必要的数据库merge操作等耗时动作,整体数据存储效率得到有效提高。

下面对本申请实施例提供的一种电力数据入库装置进行介绍,下文描述的电力数据入库装置与上文描述的电力数据入库方法可相互对应参照,相关模块均设置于中,参考图2,图2为本申请实施例所提供的一种电力数据入库装置的结构示意图,包括:

在一些具体的实施例中,具体包括:

获取模块201,用于获取电表的电力数据,并将电力数据存储至内存中;

生成模块202,用于对内存中的电力数据进行数据规整,生成key-value键值对;key-value键值对中的value值采用bitmap方式来记录电表的采集状态;

写入模块203,用于利用数据库insert操作,将key-value键值对写入数据库。

在一些具体的实施例中,生成模块202,包括:

第一生成单元,用于对内存中的电力数据进行数据规整,生成初始key-value键值对;

第二生成单元,用于对初始key-value键值对中的value值采用压缩bitmap方式进行记录,生成key-value键值对。

在一些具体的实施例中,获取模块201,包括:

获取单元,用于利用profile曲线形式获取电表的电力数据。

在一些具体的实施例中,生成模块202,包括:

归类单元,用于对内存中的电力数据进行数据时间点和业务数据类型归类。

在一些具体的实施例中,还包括:

第一判断模块,用于判断key-value键值对是否全部写入成功;

切换模块,用于若否,则切换为数据库merge操作写入数据库。

在一些具体的实施例中,还包括:

第二判断模块,用于根据key-value键值对中的value值,判断对应的电表是否采集成功;

发送模块,用于若否,则发送未成功消息至接入层,以控制对应的电表重新采集电力数据。

由于电力数据入库装置部分的实施例与电力数据入库方法部分的实施例相互对应,因此电力数据入库装置部分的实施例请参见电力数据入库方法部分的实施例的描述,这里暂不赘述。

下面对本申请实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的电力数据入库方法可相互对应参照。

本申请还公开一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述电力数据入库方法的步骤。

由于电子设备部分的实施例与电力数据入库方法部分的实施例相互对应,因此电子设备部分的实施例请参见电力数据入库方法部分的实施例的描述,这里暂不赘述。

下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的方法可相互对应参照。

本申请还公开一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述电力数据入库方法的步骤。

由于计算机可读存储介质部分的实施例与电力数据入库方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见电力数据入库方法部分的实施例的描述,这里暂不赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种电力数据入库方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

相关技术
  • 一种电力数据入库方法、装置和计算机可读存储介质
  • 数据入库方法、装置、设备及计算机可读存储介质
技术分类

06120112859626