一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于复合分配算法的数据存储方法与流程

2022-04-13 20:14:43 来源:中国专利 TAG:


1.本技术涉及光伏发电数据存储技术领域,具体而言,涉及一种基于复合分配算法的数据存储方法。


背景技术:

2.光伏发电是利用半导体界面的光生伏特效应而将光能直接转变为电能的一种技术。光伏作为一种新能源装机容量在不断增加,一些小的扰动会影响光伏发电的正常运行,则需要时刻掌握光伏电站设备的稳定运行状态。但获取有关光伏电站设备稳定运行的信息需要对电力设备各个点位信息数据进行分析处理。但光伏电站的设备点位多,数据量大。
3.目前,通常使用mysql数据库、oracle数据库等这类数据库进行光伏电站设备的点位数据数据存储。但此类数据库在由于光伏电站设备点位多,数据量大的情况下会因引擎自身瓶颈问题导致数据读写困难、访问超时,维护困难,进而导致光伏电站设备点位数据分配存储困难,例如mysql数据库,当单表数据量超过1000万时数据读写性能差,访问时间长。


技术实现要素:

4.本技术提供了一种基于复合分配算法的数据存储方法,以解决现有技术中存在读写困难、访问超时,维护困难,进而数据存储困难的问题。
5.本技术的实施例是这样实现的:
6.本技术实施例提供一种基于复合分配算法的数据存储方法,包括:根据年限建立数据库,并在所述数据库中建立不同类型的数据库引擎表,其中数据库引擎表包括:采集时间和序列id;基于预设的复合分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则,其中,所述复合分配算法包括:精确分配算法、范围分配算法和包含精确分配算法和范围分配算法的复式分配算法;根据所述配置规则,将所述待存储数据分配至相应类型的数据库引擎表中,以实现数据存储。
7.在一些实施例中,所述在所述数据库中建立不同类型的数据库引擎表的具体步骤包括:设计不同类型数据库引擎表的结构,根据所述不同类型数据库引擎表的结构,建立对应的数据库引擎表脚本;根据所述数据库引擎表脚本,建立不同类型的数据库引擎表;其中,所述序列id根据雪花算法生成,具有唯一性。
8.在一些实施例中,所述确定所述待存储数据对应的配置规则的具体步骤包括:对待存储数据进行分配算法分析,得到所述待存储数据对应的分配算法;若所述待存储数据对应的分配算法为精确分配算法,通过所述精确分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则为精确分配规则;若所述待存储数据对应的分配算法为范围分配算法,通过所述范围分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则为范围分配规则;若所述待存储数据对应的分配算法为复式分配算法,通过所述复式分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则为复式分配规则。
9.在一些实施例中,所述根据所述配置规则,将所述待存储数据分配至相应类型的数据库引擎表中的具体步骤包括:若所述待存储数据对应的配置规则为精确分配规则,根据所述精确分配规则对所述待存储数据按照时间类别进行精确分配,得到所述待存储数据对应的时间规则,将所述待存储数据分配至所述时间规则下的数据库引擎表中;其中,所述时间类别包括年类别、月类别、日类别、时类别,所述年类别对应的时间规则为数据库日期年限规则,所述月类别对应的时间规则为数据库日期月规则,所述日类别对应的时间规则为数据库日期日规则,所述时类别对应的时间规则为数据库日期小时规则。
10.所述根据所述配置规则,将所述待存储数据分配至相应类型的数据库引擎表中的具体步骤包括:若所述待存储数据对应的配置规则为范围分配规则,根据所述范围分配规则对所述待存储数据按照时间类别进行范围分配,得到所述待存储数据对应的时限范围;根据所述时限范围,将所述待存储数据分配至所述时限范围下的数据库引擎表中。
11.根据所述范围分配规则对所述待存储数据按照时间类别进行范围分配,还包括:用于设置范围分配界限的范围配置开关;根据所述范围配置开关,设置范围分配的最高界限和最低界限。
12.本技术的有益效果在于,本技术提供一种基于复合分配算法的数据存储方法,根据年限建立数据库,并在所述数据库中建立不同类型的数据库引擎表,其中数据库引擎表包括:采集时间和序列id;基于预设的复合分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则;根据所述配置规则,将所述待存储数据分配至相应类型的数据库引擎表中,以实现数据存储,使得大型光伏电站能够以最小成本进行数据存储,为光伏设备进行智能分析提供数据存储支持,解决了光伏电站运行设备数据存储成本高、数据存储读写困难、访问时间长等问题。
附图说明
13.具体为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
14.图1示出了本技术实施例一种基于复合分配算法的数据存储方法的流程示意图;
15.图2示出了本技术实施例基于预设的复合分配算法确定数据配置规则的示意图。
具体实施方式
16.现在将描述某些示例性实施方案,以从整体上理解本文所公开的装置和方法的结构、功能、制造和用途的原理。这些实施方案的一个或多个示例已在附图中示出。本领域的普通技术人员将会理解,在本文中具体描述并示出于附图中的装置和方法为非限制性的示例性实施方案,并且本技术的多个实施方案的范围仅由权利要求书限定。结合一个示例性实施方案示出或描述的特征可与其他实施方案的特征进行组合。这种修改和变型旨在包括在本技术的范围之内。
17.本说明书通篇提及的“多个实施例”、“一些实施例”、“一个实施例”或“实施例”等,意味着结合该实施例描述的具体特征、结构或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语“在多个实施例中”、“在一些实施例中”、“在至少另一个实施例中”或“在
实施例中”等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、结构或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、结构或特性可全部或部分地与一个或多个其他实施例的特征、结构或特性进行组合。这种修改和变型旨在包括在本技术的范围之内。
18.本技术中使用了流程图用来说明根据本技术的一些实施例的系统所执行的操作。应当明确理解,流程图的操作可以不按顺序来精确地执行。相反,这些操作可以以相反的顺序或同时执行。而且,可以将一个或多个其他操作添加到流程图。一个或多个操作可以从流程图中移除。
19.图1示出了本技术实施例一种基于复合分配算法的数据存储方法的流程示意图。
20.在步骤101中,根据年限建立数据库,并在所述数据库中建立不同类型的数据库引擎表,其中数据库引擎表包括:采集时间和序列id。
21.在一些实施例中,所述在所述数据库中建立不同类型的数据库引擎表的具体步骤包括:设计不同类型数据库引擎表的结构,根据所述不同类型数据库引擎表的结构,建立对应的数据库引擎表脚本;根据所述数据库引擎表脚本,建立不同类型的数据库引擎表;其中,所述序列id根据雪花算法生成,具有唯一性。
22.其中,在设计不同类型数据库引擎表的结构之前都包含序列id和采集时间两个字段,序列id字段数据依赖雪花算法进行生成,具有唯一性,采集时间和雪花算法时间序列保持一致。需要手动建立数据库,编写好建立数据库引擎表脚本,将数据库引擎表脚本通过程序上传程序中,建立不同类型的数据库引擎表。
23.图2示出了本技术实施例基于预设的复合分配算法确定数据配置规则的示意图。
24.在步骤102中,基于预设的复合分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则;其中,所述复合分配算法包括:精确分配算法、范围分配算法和包含精确分配算法和范围分配算法的复式分配算法。
25.在一些实施例中,所述确定所述待存储数据对应的配置规则的具体步骤包括:对待存储数据进行分配算法分析,得到所述待存储数据对应的分配算法;若所述待存储数据对应的分配算法为精确分配算法,通过所述精确分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则为精确分配规则;若所述待存储数据对应的分配算法为范围分配算法,通过所述范围分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则为范围分配规则;若所述待存储数据对应的分配算法为复式分配算法,通过所述复式分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则为复式分配规则。
26.其中,基于采集时间和序列id反向解析待存储数据,并对待存储数据进行分配计算,确定所述待存储数据对应的配置规则,通过配置规则使用不同的存储模式,按照不同场景设备数据量多少进行选择存储模式,使用不同的配置规则进行数据存储;其中,序列id反向解析可以得出和采集时间一致的时间信息。
27.在一些实施例中,所述根据所述配置规则,将所述待存储数据分配至相应类型的数据库引擎表中的具体步骤包括:若所述待存储数据对应的配置规则为精确分配规则,根据所述精确分配规则对所述待存储数据按照时间类别进行精确分配,得到所述待存储数据对应的时间规则,将所述待存储数据分配至所述时间规则下的数据库引擎表中;其中,所述
时间类别包括年类别、月类别、日类别、时类别,所述年类别对应的时间规则为数据库日期年限规则,所述月类别对应的时间规则为数据库日期月规则,所述日类别对应的时间规则为数据库日期日规则,所述时类别对应的时间规则为数据库日期小时规则。
28.其中,根据序列id和采集时间,对待存储数据进行年月日时精确分配,根据精确分配规则对待存储数据精确分配到包含年、月、日、小时的时间规则,获取字段数据,精确匹配到所述时间规则下的数据库引擎表中。
29.例如:按日分配,最终会根据采集时间、或者序列id精确到按日时间规则分配的数据库引擎表下;精确分配算法支持序列id和采集时间单独进行使用、或支持兼容修改,也可以单独使用,可升级为组合模式,但是表分配规则选定后不能进行升级、或者降级。若一定需要修改规则,则回到通过删除表进行重新表初始化配置,然后回到选择配置相应模式。
30.在一些实施例中,通过数据库年限等值判断方法、或数据表日期月规则等值判断方法、或数据表日期日规则等值判断方法、或数据表日期小时规则等值判断方法,获取字段内容值,对序列id进行反向解析,转换时间后进行时间匹配,对时间字段进行数据格式兼容,long类型的时间戳,字符串类型的时间内容,统一进行类型转换,转换为date后使用util工具进行值判断。
31.在一些实施例中,所述根据所述配置规则,将所述待存储数据分配至相应类型的数据库引擎表中的具体步骤包括:若所述待存储数据对应的配置规则为范围分配规则,根据所述范围分配规则对所述待存储数据按照时间类别进行范围分配,得到所述待存储数据对应的时限范围;根据所述时限范围,将所述待存储数据分配至所述时限范围下的数据库引擎表中。
32.其中,根据序列id和采集时间,采用确定的范围分配规则对待存储数据进行年月日时范围分配,分配到包含年、月、日、小时的时间类别进行时间范围跨度分配,理论上可以横跨一年,但是不建议这样使用,这样会造成资源过度使用,对服务器资源影响较大,使用不同的配置规则,可以按照范围分配规则到范围覆盖到的所有相关数据库引擎表中。注意:序列和采集时间可以也单独进行使用。
33.在一些实施例中,根据所述范围分配规则对所述待存储数据按照时间类别进行范围分配,还包括:用于设置范围分配界限的范围配置开关;根据所述范围配置开关,设置范围分配的最高界限和最低界限。
34.其中,对待存储数据进行范围分配时还提供一个范围配置开关,可以设置范围分配大小,若使用》、《、》=、《=。此时范围配置开关使用的具体值标定了上下界限(即,最高界限和最低界限),此时不会扫描数据库引擎中的所有表,而是会根据范围配置范围开关中的具体值,进行上下界限隔离。
35.例如,使用天分配规则对待存储数据进行范围分配,此时范围配置开关中指定的值例如是5,那么此时使用》2021-11-14,那么此时会分配到的时间范围为:2021-11-14至2021-11-19所包含的所有数据库引擎表,反之亦然。具体使用时根据设备类型,点位多少,数据量多少,具体场景具体使用。
36.在一些实施例中,在范围分配规则中包含数据日期边界判断方法和数据库引擎表日期范围判断方法获取字段内容值。
37.其中,数据日期边界判断方法中根据配置使用的日期划分界限进行范围规则判
断,所有范围规则使用相同配置,不论使用哪种规则,边界判断方法统一进行处理,不支持单个规则,单个配置。拿到界限配置值后,对待存储数据进行上下界限限制:若》》=进行 界限值操作,若《《=进行-界限值操作。
38.例如设置临界值为5,针对月范围临界值计算:》》=,获取当前配置字段数据内容,进行month 5,返回当前月份及 5范围内所有数据库引擎表,执行查询,写入等操作,进行返回;《《=,获取当前配置字段数据内容,进行month-5,返回当前月份及-5范围内所有数据库引擎表,执行查询,写入等操作,进行返回。针对日范围临界值计算:》》=,获取当前配置字段数据内容,进行day 5计算,返回当前日期及 5范围内所有数据库引擎表,执行查询,写入等操作,进行返回;《《=,获取当前配置字段数据内容,进行day-5计算,返回当前日期及-5范围内所有数据库引擎表,执行查询,写入等操作,进行返回。针对小时范围临界值计算:》》=,获取当前配置字段数据内容,进行hour 5,返回当前小时及 5范围内所有数据库引擎表,执行查询,写入等操作,进行返回;《《=,获取当前配置字段数据内容,进行hour-5,返回当前小时及-5范围内所有数据库引擎表,执行查询,写入等操作,进行返回。
39.在一些实施例中,数据库引擎表日期范围判断方法中根据待存储数据,根据配置规则进行时间范围判断,读取设备配置使用规则进行匹配,包括二种情况:a.有明确界限的,方法返回所有界限内所有数据;b.没有明确界限的,返回调用边界判断方法,获得边界,返回边界内所有数据。
40.在一些实施例中,所述根据所述配置规则,将所述待存储数据分配至相应类型的数据库引擎表中的具体步骤包括:若所述待存储数据对应的配置规则为复式分配规则,根据所述复式分配规则,将所述待存储数据分配至相应类型的数据库引擎表中,以实现数据存储。
41.其中,将精确分配和范围分配进行复合兼容,将上述两种算法规则进行兼容,存储功能更加强大,如果需要更复杂的业务场景,建议使用此算法规则,复合分配算法适用于更加复杂的上下游业务场景中,支持兼容其他工具组件。
42.本技术的有益效果在于,本技术提供一种基于复合分配算法的数据存储方法,根据年限建立数据库,并在所述数据库中建立不同类型的数据库引擎表,其中数据库引擎表包括:采集时间和序列id;基于预设的复合分配算法对待存储数据进行分配计算,确定所述待存储数据对应的配置规则;根据所述配置规则,将所述待存储数据分配至相应类型的数据库引擎表中,以实现数据存储,使得大型光伏电站能够以最小成本进行数据存储,为光伏设备进行智能分析提供数据存储支持,解决了光伏电站运行设备数据存储成本高、数据存储读写困难、访问时间长等问题。
43.此外,本领域技术人员可以理解,本技术的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本技术的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本技术的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
44.计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基
带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。
45.本技术各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c 、c#、vb.net、python等,常规程序化编程语言如c语言、visual basic、fortran 2003、perl、cobol 2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用如软件即服务(saas)。
46.此外,除非权利要求中明确说明,本技术所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本技术流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本技术实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
47.同理,应当注意的是,为了简化本技术披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本技术实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本技术对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
48.针对本技术引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本技术作为参考。与本技术内容不一致或产生冲突的申请历史文件除外,对本技术权利要求最广范围有限制的文件(当前或之后附加于本技术中的)也除外。需要说明的是,如果本技术附属材料中的描述、定义、和/或术语的使用与本技术所述内容有不一致或冲突的地方,以本技术的描述、定义和/或术语的使用为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献