多采测点的数据存储方法与系统的利记博彩app
【专利摘要】本发明提供一种多采测点的数据存储方法与系统,将采测点ID与采测点数据实体以及采测点时间属性关联,分别获得第一数据表字典和第二数据表字典,将采测点采集到的数据初始存储至内存,将第一数据表字典中数据实体队列长度大于预设阈值的采测点数据实体存储至本地硬盘,当数据库服务器的负载低于预设负载阈值时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置,提取各个采测点数据实体,并将提取的数据存储至数据库。整个过程中,利用内存和本地硬盘空间读写数据快于数据库读写,通过空间换时间,实现多采测点的大量数据高效存储至数据库。
【专利说明】
多采测点的数据存储方法与系统
技术领域
[0001]本发明涉及数据存储技术领域,特别是涉及多采测点的数据存储方法与系统。
【背景技术】
[0002]在生产生活中,很多情况下需要大量采测点来采集所需数据,例如采集一定区域范围内温度数据、采集某一行政区域内降雨量数据以及采集某一块试验田地所有试验物种生长状况数据等。
[0003]目前,对于多采测点数据采集与分析的研究主要在数据准确采集和分析两个方面,针对采测点数据存储相关研究相对较少。
[0004]现有的主流商业数据库的数据写入时效率低,在采测点多和采集精度高的应用场景时,使用关系型数据库服务器,采用的方式是定时从采集设备中读取数据同时往数据库中写入,无法实现在多采测点做到秒级存储。
【发明内容】
[0005]基于此,有必要针对现有多采测点数据存储方法存储效率低下的问题,提供一种存储效率高的多采测点的数据存储方法与系统。
[0006]—种多采测点的数据存储方法,包括步骤:
[0007]将采测点ID与采测点数据实体关联,获得第一数据表字典;
[0008]将采测点ID与采测点时间属性关联,获得第二数据表字典,其中,采测点时间属性包括内存最早时间、内存最新时间、本地硬盘最早时间、本地硬盘最新时间以及数据库最新时间;
[0009]将采测点采集到的数据初始存储至内存,更新第二数据表字典;
[0010]实时更新第一数据表字典,将第一数据表字典中数据实体队列长度大于预设阈值的采测点数据实体存储至本地硬盘,并更新第二数据表字典;
[0011]检测数据库服务器的负载,当数据库服务器的负载低于预设负载阈值时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置;
[0012]从确定的存放位置中提取各个采测点数据实体,并将提取的数据存储至数据库。
[0013]—种多采测点的数据存储系统,包括:
[0014]第一关联模块,用于将采测点ID与采测点数据实体关联,获得第一数据表字典;
[0015]第二关联模块,用于将采测点ID与采测点时间属性关联,获得第二数据表字典,其中,采测点时间属性包括内存最早时间、内存最新时间、本地硬盘最早时间、本地硬盘最新时间以及数据库最新时间;
[0016]初始存储模块,用于将采测点采集到的数据初始存储至内存,更新第二数据表字血.Z N I
[0017]更新存储模块,用于实时更新第一数据表字典,将第一数据表字典中数据实体队列长度大于预设阈值的采测点数据实体存储至本地硬盘,并更新第二数据表字典;
[0018]位置确定模块,用于检测数据库服务器的负载,当数据库服务器的负载低于预设负载阈值时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置;
[0019]数据库存储模块,用于从确定的存放位置中提取各个采测点数据实体,并将提取的数据存储至数据库。
[0020]本发明多采测点的数据存储方法与系统,将采测点ID与采测点数据实体以及采测点时间属性关联,分别获得第一数据表字典和第二数据表字典,将采测点采集到的数据初始存储至内存,将第一数据表字典中数据实体队列长度大于预设阈值的采测点数据实体存储至本地硬盘,当数据库服务器的负载低于预设负载阈值时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置,提取各个采测点数据实体,并将提取的数据存储至数据库。整个过程中,采用多次数据关联与判断,并结合数据库服务器负载实际情况,确定采测点数据实体位于内存和/或为本地硬盘,利用内存和本地硬盘空间读写数据快于数据库读写,通过空间换时间,实现多采测点的大量数据高效存储至数据库。
【附图说明】
[0021 ]图1为本发明多采测点的数据存储方法第一个实施例的流程示意图;
[0022]图2为本发明多采测点的数据存储方法第二个实施例的流程示意图;
[0023]图3为本发明多采测点的数据存储系统第一个实施例的结构示意图;
[0024]图4为本发明多采测点的数据存储系统第二个实施例的结构示意图。
【具体实施方式】
[0025]如图1所示,一种多采测点的数据存储方法,包括步骤:
[0026]S100:将采测点ID与采测点数据实体关联,获得第一数据表字典。
[0027]采测点ID是指预设给对多个采测点进行编号的ID号码。采测点ID与采测点数据实体关联,在实际的编程过程中可以通过为每一个采测点建立一个key-value键值来实现,关联之后获得第一数据表字典。在第一数据表字典中详细记录每个采测点数据实体,由于采测点ID和采测点数据实体已经关联,基于采测点ID即可查找到对应的采测点数据实体。采测点数据实体可以通过对数据进行字段设置获得,字段设置主要包括字段描述(datatime)、采集时间(val)以及数据质量(q)三个方面。更具体来说,采测点数据实体是一个带时序的数据队列,例(^丨61:;[11161、¥311、91 ;datetime2、val2、q2...等。
[0028]S200:将采测点ID与采测点时间属性关联,获得第二数据表字典,其中,采测点时间属性包括内存最早时间、内存最新时间、本地硬盘最早时间、本地硬盘最新时间以及数据库最新时间。
[0029]内存最早时间是指采测点数据实体存储于数据库服务器内存最早时间,内存最新时间是指采测点数据实体存储于数据库服务器内存最新时序,本地硬盘最早时间是指采测点数据实体存储于数据库服务器本地硬盘最早时间,本地硬盘最新时间是指采测点数据实体存储于数据库服务器本地硬盘最新时序,数据库最新时间是指采测点数据实体存储于数据库服务器数据库最新时间。在第二数据表字典中,记录采测点ID和采测点时间属性关联的数据,基于第二数据表字典,通过采测点ID即可详细了解该采测点时间属性。步骤SlOO中已将采测点ID与采测点数据实体关联,本步骤S200中将采测点ID与采测点的采测点时间属性关联,即在后续操作中,可以通过采测点ID准确查找到采测点数据实体和采测点时间属性。
[0030]S300:将采测点采集到的数据初始存储至内存,更新第二数据表字典。
[0031]采测点采集到的数据首先全部初始存储至数据库服务器的内存中。数据存储至内存,则该采集点对应的采测点时间属性发生改变,更新第二数据表字典,以记录这个改变的过程。具体来说,将数据放入内存中,并内存最新时间置为该数据记录的时序,为了数据的连续性和一致性,内存最早时间和本地硬盘最新时间是相同的,数据库最新时间和本地硬盘最早时间是相同的。非必要的,在步骤S300之前还可以在数据库服务器中创建数据库连接池,根据数据库服务器的CPU核数,建立2倍CPU核数的链接。
[0032]S400:实时更新第一数据表字典,将第一数据表字典中数据实体队列长度大于预设阈值的采测点数据实体存储至本地硬盘,并更新第二数据表字典。
[0033]采测点不断采集数据,实时更新第一数据表字典,采测点数据实体长度随着时间越来越长,例如第一时刻采测点数据实体可能为(^丨61:;[11161、¥311、91;(^丨61:;[11162、¥312、92,第二时刻米测点数据实体为date time 1、vail、ql; datetime2、val2、q2 ; datetime3、val3、q3,当第一数据表字典中数据实体队列长度大于预设阈值时,需要将该采测点数据实体从原始存储位置——内存,移动存储至行的存储位置——本地硬盘,在改变存储位置过程中,该采测点的时间属性发生变化,需要再次更新第二数据表字典,以记录下整个采测点时间属性的变化情况。具体来说,将采测点的时间属性中本地硬盘最新时间和内存最早时间更新为该采测点的最新时间,同时将内存最新时间置为空。预设阈值是预先设定的阈值,其可以根据实际情况的需要进行设定,具体来说,预设阀值=内存大小/2/N/K,其中,N=采测点个数,K =单个采测点一个时序的数据字节数。
[0034]S500:检测数据库服务器的负载,当数据库服务器的负载低于预设负载阈值时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置。
[0035]检测数据库服务器的负载,当数据库服务器的负载低于预设负载阈值时,说明当前数据库服务器需要处理的任务较少,有足够数据处理资源来执行数据库数据存储的操作。此时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置,以便后续在确定的位置中提取相应的采测点数据实体,准备存储至数据库。根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置。具体来说,可以根据第一数据表字典确定优先处理的采测点,例如可以将数据实体长度越长的采测点优先处理,在确定优先处理采测点后根据第二数据表字典中采测时间属性确定该采测点数据实体存放位置。具体来说,当当前处理采测点对应的内存最新时间为空时,判断当前处理采测点对应的本地硬盘最新时间是否等于数据库最新时间,当等于时,判定没有数据需要更新,当不等于时,当前处理采测点数据实体位于本地硬盘;当当前处理采测点对应的内存最新时间不为空时,判断当前处理采测点对应的内存最早时间是否等于硬盘最新时间,当等于时,当前处理采测点数据实体位于内存,当不等于时,当前处理采测点数据实体位于内存和本地硬盘。
[0036]S600:从确定的存放位置中提取各个采测点数据实体,并将提取的数据存储至数据库。
[0037]在步骤S500确定采测点数据实体存储位置之后,从确定的位置中提取相应的采测点数据实体,将这些提取的数据存储至数据库。
[0038]本发明多采测点的数据存储方法,将采测点ID与采测点数据实体以及采测点时间属性关联,分别获得第一数据表字典和第二数据表字典,将采测点采集到的数据初始存储至内存,将第一数据表字典中数据实体队列长度大于预设阈值的采测点数据实体存储至本地硬盘,当数据库服务器的负载低于预设负载阈值时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置,提取各个采测点数据实体,并将提取的数据存储至数据库。整个过程中,采用多次数据关联与判断,并结合数据库服务器负载实际情况,确定采测点数据实体位于内存和/或为本地硬盘,利用内存和本地硬盘空间读写数据快于数据库读写,通过空间换时间,实现多采测点的大量数据高效存储至数据库。
[0039]在其中一个实施例中,将采测点ID与采测点数据实体关联,获得第一数据表字典的步骤之后还包括:
[0040]根据采测点数据实体的队列长度,对每个采测点进行优先级排序,其中,队列长度越大优先级越高。
[0041]采测点数据实体的队列长度越长表明该采测点数据已经积压越严重,例如第一组:datetime 1、vail、ql ; (^七61:;[11162、¥&12、92;(1&七61:;[11163、¥&13、93的队列长度大于第二组:(^七61:;[11161、¥311、91;(^七61:;[11162、¥312、92的队列长度,第一组的数据积压比第二组严重,第一组的优先级高于第二组。在本实施例中,引入优先级方式,根据采测点数据实体的队列长度,对每个采测点进行优先级排序,充分考虑不同采测点数据积压程度(需要存储至数据库服务器的迫切程度),为后续操作中根据优先级选择性操作(优先级高的优先存储至数据库服务器)提供基础。
[0042]在其中一个实施例中,检测数据库服务器的负载,当数据库服务器的负载低于预设负载阈值时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置的步骤包括:
[0043]步骤一:检测数据库服务器的负载。
[0044]可以从数据库服务器的CPU、内存占用率和连接数三个方面来检测数据库服务器的负载情况。
[0045]步骤二:当数据库服务器的负载低于预设负载阈值时,从第一数据表字典中选取优先级最高的采测点,作为当前处理采测点。
[0046]当数据库服务器的负载较低时,从第一数据表字典中选取优先级最高的采测点作为当前处理采测点,即从第一数据表字典中选取采测点数据实体队列最长对应的采测点作为当前处理采测点。采测点数据实体队列最长表明其对应的采测点数据积压越严重,越需要尽快将数据存储至数据库服务器,所以在这里应用上述步骤中的优先级排序,优先将处理此采测点。合理使用优先级方式,实现数据合理、高效以及有序处理。例如目前第一数据表字典中有采测点1、采测点2、采测点3以及采测点4共计4个采测点,并且4个采测点优先级依次升高,则选择采测点4作为当前处理采测点,进行下述步骤的处理,当采测点4处理完成时,若优先级未出现变化,再对采测点3进行下述步骤处理,以此类推,通过下述步骤确定全部采测点数据实体存放位置。
[0047]步骤三:根据第二数据表字典,判断当前处理采测点对应的内存最新时间是否为空。
[0048]在第二数据表字典中详细关联采测点ID和采测点时间属性,如之前,采测点时间属性包括内存最早时间、内存最新时间、本地硬盘最早时间、本地硬盘最新时间以及数据库最新时间,在这里,判断当前处理采测点的内存最新时间是否为空。
[0049]步骤四:当当前处理采测点对应的内存最新时间为空时,判断当前处理采测点对应的本地硬盘最新时间是否等于数据库最新时间,当等于时,判定没有数据需要更新,当不等于时,当前处理采测点数据实体位于本地硬盘。
[0050]假定当前处理采测点为采测点I,基于第二数据表字典,当采测点I相应的内存最新时间为空时,再进一步判断采测点I相应的本地硬盘最新时间是否等于数据库最新时间,当等于时,判定当前数据库服务器没有数据需要存储更新,即数据库服务器当前不需要存入新的数据,例如当采测点的采测装置未工作时,此时数据库服务器是无有效数据需要更新存储的;当不等于时,直接判定采测点I数据实体位于数据库服务器的本地硬盘。
[0051]步骤五:当当前处理采测点对应的内存最新时间不为空时,判断当前处理采测点对应的内存最早时间是否等于硬盘最新时间,当等于时,当前处理采测点数据实体位于内存,当不等于时,当前处理采测点数据实体位于内存和本地硬盘。
[0052]假定当前处理采测点为采测点2,基于第二数据表字典,当采测点2相应的内存最新时间不为空时,判断采测点2相应的内存最早时间是否等于硬盘最新时间,当等于时,采测点2数据实体位于数据库服务器内存;当不等于时,采测点2数据实体位于数据库服务器内存和本地硬盘。
[0053]如图2所示,在其中一个实施例中,步骤S600包括:
[0054]S620:从确定的存放位置中提取各个采测点数据实体。
[0055]S640:将提取的数据拼成单条语句,并将单条语句一次性写入数据库。
[0056]将提取出的数据拼成单条语句。具体来说,单条语句可以是SQL(StructuredQuery Language,结构化查询语言)语句,将单条语句一次性写入数据库。
[0057]在其中一个实施例中,将采测点ID与采测点数据实体关联,获得第一数据表字典的步骤之前还包括:
[0058]步骤一:为每个采测点分别建立独立的数据表。
[0059]针对多采测点的数据量较大、较复杂的情况,在这里,对每一个采测点分别建立独立的数据表,这样可确保数据合理、清晰采集和记录。非必要的,还可以对每个数据表分别分配唯一的身份识别标识,身份识别标识具体可以为ID等。例如当前有100个采测点,对这100个采测点分别建立独立的数据表,即建立100个独立的数据表,从I至100对这些数据表进行编号,以便在后续操作中,便捷查找和识别。
[0060]步骤二:对数据表进行字段设置,提取采测点数据实体,其中,字段设置包括字段描述、采集时间以及数据质量。
[0061]对每个数据表进行字段设置,字段设置主要包括字段描述(datatime)、采集时间(val)以及数据质量(q)三个方面,当对数据表进行字段设置完成后,可以从中读取采测点数据实体。具体来说,采测点数据实体是一个带时序的数据队列,例datetime1、vail、ql ;datetime2、val2、q2..?等。
[0062]在其中一个实施例中,为每个采测点分别建立独立的数据表的步骤之后还包括:对每个数据表分配唯一的身份识别标识。将每个数据表的身份识别标识与相应的采测点ID关联,获得初始数据表字典。
[0063]在本实施例中,针对数据表分配唯一的身份识别标识(例如数据表ID),并将数据表的身份识别标识与相应的采测点ID关联,便于直接通过采测点ID即可查找相应的数据表,有利于数据的高效管理。
[0064]非必要的,在其中一个实施例中,获得初始数据表字典之后,还包括:创建哈西表,将初始数据表字典与第一数据表字典映射。将初始数据表字典与第一数据表字典映射,可以建立初始数据表字典与第一数据表字典之间的映射关系,便于在后续操作中,以数据表身份识别标识方式显示每个数据表的存储位置,有利于用户便捷了解数据存储情况与位置。
[0065]如图3所示,一种多采测点的数据存储系统,包括:
[0066]第一关联模块100,用于将采测点ID与采测点数据实体关联,获得第一数据表字血
Z N ?
[0067]第二关联模块200,用于将采测点ID与采测点时间属性关联,获得第二数据表字典,其中,采测点时间属性包括内存最早时间、内存最新时间、本地硬盘最早时间、本地硬盘最新时间以及数据库最新时间.
[0068]初始存储模块300,用于将采测点采集到的数据初始存储至内存,更新第二数据表字典。
[0069]更新存储模块400,用于实时更新第一数据表字典,将第一数据表字典中数据实体队列长度大于预设阈值的采测点数据实体存储至本地硬盘,并更新第二数据表字典.
[0070]位置确定模块500,用于检测数据库服务器的负载,当数据库服务器的负载低于预设负载阈值时,根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置。
[0071]数据库存储模块600,用于从确定的存放位置中提取各个采测点数据实体,并将提取的数据存储至数据库。
[0072]本发明多采测点的数据存储系统,第一关联模块100和第二关联模块200将采测点ID与采测点数据实体以及采测点时间属性关联,分别获得第一数据表字典和第二数据表字典,初始存储模块300将采测点采集到的数据初始存储至内存,更新存储模块400将第一数据表字典中数据实体队列长度大于预设阈值的采测点数据实体存储至本地硬盘,当数据库服务器的负载低于预设负载阈值时,位置确定模块500根据第一数据表字典和第二数据表字典,确定各个采测点数据实体存放位置,数据库存储模块600提取各个采测点数据实体,并将提取的数据存储至数据库。整个过程中,采用多次数据关联与判断,并结合数据库服务器负载实际情况,确定采测点数据实体位于内存和/或为本地硬盘,利用内存和本地硬盘空间读写数据快于数据库读写,通过空间换时间,实现多采测点的大量数据高效存储至数据库。
[0073]在其中一个实施例中,的采测点的数据存储系统还包括:
[0074]优先级模块,用于根据采测点数据实体的队列长度,对每个采测点进行优先级排序,其中,队列长度越大优先级越高。
[0075]采测点数据实体的队列长度越长表明该采测点数据已经积压越严重,例如第一组:datet ime 1、vail、ql ; (^七61:;[11162、¥&12、92;(1&七61:;[11163、¥&13、93的队列长度大于第二组:datet ime 1、val 1、ql; datet ime2、val 2、q2的队列长度,第一组的数据积压比第二组严重,第一组的优先级高于第二组。在本实施例中,引入优先级方式,优先级模块根据采测点数据实体的队列长度,对每个采测点进行优先级排序,充分考虑不同采测点数据积压程度(需要存储至数据库服务器的迫切程度),为后续操作中根据优先级选择性操作(优先级高的优先存储至数据库服务器)提供基础。
[0076]在其中一个实施例中,位置确定模块500包括:
[0077]负载检测单元,用于检测数据库服务器的负载;
[0078]优先级选取单元,用于当数据库服务器的负载低于预设负载阈值时,从第一数据表字典中选取优先级最高的采测点,作为当前处理采测点;
[0079]判断单元,用于根据第二数据表字典,判断当前处理采测点对应的内存最新时间是否为空;
[0080]第一处理单元,用于当当前处理采测点对应的内存最新时间为空时,判断当前处理采测点对应的本地硬盘最新时间是否等于数据库最新时间,当等于时,判定没有数据需要更新,当不等于时,当前处理采测点数据实体位于本地硬盘;
[0081]第二处理单元,用于当当前处理采测点对应的内存最新时间不为空时,判断当前处理采测点对应的内存最早时间是否等于硬盘最新时间,当等于时,当前处理采测点数据实体位于内存,当不等于时,当前处理采测点数据实体位于内存和本地硬盘。
[0082]如图4所示,在其中一个实施例中,数据库存储模块600包括:
[0083]提取单元620,用于从确定的存放位置中提取各个采测点数据实体。
[0084]数据库存储单元640,用于将提取的数据拼成单条语句,并将单条语句一次性写入数据库。
[0085]将提取出的数据拼成单条语句。具体来说,单条语句可以是SQL(StructuredQuery Language,结构化查询语言)语句,将单条语句一次性写入数据库。
[0086]以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.一种多采测点的数据存储方法,其特征在于,包括步骤: 将采测点ID与采测点数据实体关联,获得第一数据表字典; 将采测点ID与采测点时间属性关联,获得第二数据表字典,其中,所述采测点时间属性包括内存最早时间、内存最新时间、本地硬盘最早时间、本地硬盘最新时间以及数据库最新时间; 将采测点采集到的数据初始存储至内存,更新所述第二数据表字典; 实时更新所述第一数据表字典,将所述第一数据表字典中数据实体队列长度大于预设阈值的所述采测点数据实体存储至本地硬盘,并更新所述第二数据表字典; 检测数据库服务器的负载,当所述数据库服务器的负载低于预设负载阈值时,根据所述第一数据表字典和所述第二数据表字典,确定各个所述采测点数据实体存放位置; 从确定的存放位置中提取各个所述采测点数据实体,并将提取的数据存储至数据库。2.根据权利要求1所述的多采测点的数据存储方法,其特征在于,所述将采测点ID与采测点数据实体关联,获得第一数据表字典的步骤之后还包括: 根据所述采测点数据实体的队列长度,对每个所述采测点进行优先级排序,其中,所述队列长度越大优先级越高。3.根据权利要求2所述的多采测点的数据存储方法,其特征在于,所述检测数据库服务器的负载,当所述数据库服务器的负载低于预设负载阈值时,根据所述第一数据表字典和所述第二数据表字典,确定各个所述采测点数据实体存放位置的步骤包括: 检测数据库服务器的负载; 当所述数据库服务器的负载低于预设负载阈值时,从所述第一数据表字典中选取优先级最高的采测点,作为当前处理采测点; 根据所述第二数据表字典,判断所述当前处理采测点对应的内存最新时间是否为空; 当所述当前处理采测点对应的内存最新时间为空时,判断所述当前处理采测点对应的本地硬盘最新时间是否等于数据库最新时间,当等于时,判定没有数据需要更新,当不等于时,所述当前处理采测点数据实体位于本地硬盘; 当所述当前处理采测点对应的内存最新时间不为空时,判断所述当前处理采测点对应的内存最早时间是否等于硬盘最新时间,当等于时,所述当前处理采测点数据实体位于内存,当不等于时,所述当前处理采测点数据实体位于内存和本地硬盘。4.根据权利要求1或2或3所述的多采测点的数据存储方法,其特征在于,所述从确定的存放位置中提取各个所述采测点数据实体,并将提取的数据存储至数据库的步骤包括: 从确定的存放位置中提取各个所述采测点数据实体; 将提取的数据拼成单条语句,并将所述单条语句一次性写入数据库。5.根据权利要求1或2或3所述的多采测点的数据存储方法,其特征在于,所述将采测点ID与采测点数据实体关联,获得第一数据表字典的步骤之前还包括: 为每个采测点分别建立独立的数据表; 对所述数据表进行字段设置,提取所述采测点数据实体,其中,所述字段设置包括字段描述、采集时间以及数据质量。6.根据权利要求5所述的多采测点的数据存储方法,其特征在于,所述为每个采测点分别建立独立的数据表的步骤之后还包括: 对每个所述数据表分配唯一的身份识别标识; 将每个所述数据表的身份识别标识与相应的所述采测点ID关联,获得初始数据表字典。7.一种多采测点的数据存储系统,其特征在于,包括: 第一关联模块,用于将采测点ID与采测点数据实体关联,获得第一数据表字典; 第二关联模块,用于将采测点ID与采测点时间属性关联,获得第二数据表字典,其中,所述采测点时间属性包括内存最早时间、内存最新时间、本地硬盘最早时间、本地硬盘最新时间以及数据库最新时间; 初始存储模块,用于将采测点采集到的数据初始存储至内存,更新所述第二数据表字血.Z N I 更新存储模块,用于实时更新所述第一数据表字典,将所述第一数据表字典中数据实体队列长度大于预设阈值的所述采测点数据实体存储至本地硬盘,并更新所述第二数据表字典; 位置确定模块,用于检测数据库服务器的负载,当所述数据库服务器的负载低于预设负载阈值时,根据所述第一数据表字典和所述第二数据表字典,确定各个所述采测点数据实体存放位置; 数据库存储模块,用于从确定的存放位置中提取各个所述采测点数据实体,并将提取的数据存储至数据库。8.根据权利要求7所述的多采测点的数据存储系统,其特征在于,还包括: 优先级模块,用于根据所述采测点数据实体的队列长度,对每个所述采测点进行优先级排序,其中,所述队列长度越大优先级越高。9.根据权利要求8所述的多采测点的数据存储系统,其特征在于,所述位置确定模块包括: 负载检测单元,用于检测数据库服务器的负载; 优先级选取单元,用于当所述数据库服务器的负载低于预设负载阈值时,从所述第一数据表字典中选取优先级最高的采测点,作为当前处理采测点; 判断单元,用于根据所述第二数据表字典,判断所述当前处理采测点对应的内存最新时间是否为空; 第一处理单元,用于当所述当前处理采测点对应的内存最新时间为空时,判断所述当前处理采测点对应的本地硬盘最新时间是否等于数据库最新时间,当等于时,判定没有数据需要更新,当不等于时,所述当前处理采测点数据实体位于本地硬盘; 第二处理单元,用于当所述当前处理采测点对应的内存最新时间不为空时,判断所述当前处理采测点对应的内存最早时间是否等于硬盘最新时间,当等于时,所述当前处理采测点数据实体位于内存,当不等于时,所述当前处理采测点数据实体位于内存和本地硬盘。10.根据权利要求7或8或9所述的多采测点的数据存储系统,其特征在于,所述数据库存储模块包括: 提取单元,用于从确定的存放位置中提取各个所述采测点数据实体; 数据库存储单元,用于将提取的数据拼成单条语句,并将所述单条语句一次性写入数据库。
【文档编号】G06F17/30GK105956063SQ201610270869
【公开日】2016年9月21日
【申请日】2016年4月27日
【发明人】倪红波, 朱玺, 邓珏, 陈晓
【申请人】华自科技股份有限公司