System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据存储,具体涉及一种时序数据存储方法、装置、计算机设备及存储介质。
技术介绍
1、在实际应用中普遍存在批量数据导入的需求,进行数据量较小的导入时一般采用先将数据读入内存,解析成对象列表,然后再一一处理数据,最后将每条的处理结果返回给调用方。此方案简单方便,大部分场景下使用此种方案即可满足业务需求。
2、时序数据具有数据量大、数据字段少等特点,使用以上方案处理时序数据导入时会导致内存占用过高。
技术实现思路
1、有鉴于此,本专利技术提供了一种时序数据存储方法、装置、计算机设备及存储介质,以解决使用现有方案处理时序数据导入时会导致内存占用过高的问题。
2、第一方面,本专利技术提供了一种时序数据存储方法,用于时序数据库;该方法包括:
3、获取待存储时序数据集;基于待存储时序数据,经过预设处理与校验方法,得到待导入队列和第一错误队列;当待导入队列的队列长度等于预设长度时,基于第一错误队列,将待导入队列存储的时序数据存储至时序数据库;对待导入队列和第一错误队列进行清空处理;重复基于待存储时序数据,经过预设处理与校验方法,得到待导入队列和第一错误队列的步骤到对待导入队列和第一错误队列进行清空处理的步骤,直至将待存储时序数据集存储至时序数据库中。
4、本专利技术提供的时序数据存储方法,将待存储时序数据按照预设长度存储至待导入队列中,并通过待导入队列存储至时序数据库中,可以使得时序数据不会一次性全部加载到内存中,内存中同时存在最多照预
5、在一种可选的实施方式中,基于待存储时序数据,经过预设处理与校验方法,得到待导入队列和第一错误队列,包括:
6、依次按行读取待存储时序数据集,并对读取到的每一行数据进行校验;将通过校验的时序数据依次存储并形成待导入队列;将未通过校验时序数据的行号和错误类型依次存储并形成第一错误队列。
7、本专利技术通过对待存储时序数据集中每一行数据依次进行校验,并存储至对应的错误队列中,可以提高数据存储的准确性。
8、在一种可选的实施方式中,当所述待导入队列的队列长度等于预设长度时,将所述待导入队列存储的时序数据存储至时序数据库之后,该方法还包括:
9、当时序数据库返回错误信息时,获取错误信息集;基于错误信息集和第一错误队列,经过分类合并方法,得到第二错误队列;对待导入队列和第二错误队列进行清空处理;重复基于待存储时序数据,经过预设处理与校验方法,得到待导入队列和第一错误队列的步骤到对待导入队列和第二错误队列进行清空处理的步骤,直至将待存储时序数据集存储至时序数据库中。
10、本专利技术通过将待存储时序数据的校验错误和存储错误进行分类合并,可以使得待存储时序数据的存储响应结果小且明晰,解决了现有方案中导入结果逐条返回会导致结果集非常庞大的问题。进一步,结合待导入队列进行待存储时序数据的存储,可以使得时序数据不会一次性全部加载到内存中,内存中同时存在最多照预设长度的数据,因此内存开销小且不随数据量增长。
11、在一种可选的实施方式中,基于错误信息集和第一错误队列,经过分类合并方法,得到第二错误队列,包括:
12、获取初始结果栈;将错误信息集存储至第一错误队列中,并得到第三错误队列;将第三错误队列中元素按照行号进行排序,得到第四错误队列;依次将第四错误队列中每个元素的错误码与初始结果栈中栈顶元素的错误码进行比较,并根据比对结果确定第二错误队列。
13、本专利技术通过将待存储时序数据的校验错误和存储错误进行分类合并,可以使得待存储时序数据的存储响应结果小且明晰,解决了现有方案中导入结果逐条返回会导致结果集非常庞大的问题。
14、在一种可选的实施方式中,依次将第四错误队列中每个元素的错误码与初始结果栈中栈顶元素的错误码进行比较,并根据比对结果确定第二错误队列,包括:
15、当第四错误队列中第一个元素的错误码不等于初始结果栈中栈顶元素的错误码时,将第一个元素的错误码添加至初始结果栈中,并将第一个元素的行号赋值至栈顶元素的起始行参数和终止行参数;依次遍历第四错误队列中每个元素,并重复当第四错误队列中第一个元素的错误码不等于初始结果栈中栈顶元素的错误码时,将第一个元素的错误码添加至初始结果栈中,并将第一个元素的行号赋值至栈顶元素的起始行参数和终止行参数的步骤,直至得到第二错误队列。
16、在一种可选的实施方式中,依次将第四错误队列中每个元素的错误码与初始结果栈中栈顶元素的错误码进行比较,并根据比对结果确定第二错误队列,还包括:
17、当第四错误队列中第一个元素的错误码等于初始结果栈中栈顶元素的错误码时,将第一个元素的行号赋值至栈顶元素的终止行参数;依次遍历第四错误队列中每个元素,并重复当第四错误队列中第一个元素的错误码等于初始结果栈中栈顶元素的错误码时,将第一个元素的行号赋值至栈顶元素的终止行参数的步骤,直至得到第二错误队列。
18、第二方面,本专利技术提供了一种时序数据存储装置,用于时序数据库;该装置包括:
19、第一获取模块,用于获取待存储时序数据集;处理模块,用于基于待存储时序数据,经过预设处理与校验方法,得到待导入队列和第一错误队列;第一存储模块,用于当待导入队列的队列长度等于预设长度时,将待导入队列存储的时序数据存储至时序数据库;第一清空处理模块,用于对待导入队列和第一错误队列进行清空处理;第一重复与存储模块,用于重复基于待存储时序数据,经过预设处理与校验方法,得到待导入队列和第一错误队列的步骤到对待导入队列和第一错误队列进行清空处理的步骤,直至将待存储时序数据集存储至时序数据库中。
20、在一种可选的实施方式中,处理模块,包括:
21、读取与校验子模块,用于依次按行读取待存储时序数据集,并对读取到的每一行数据进行校验;第一存储子模块,用于将通过校验的时序数据依次存储并形成待导入队列;第二存储子模块,用于将未通过校验时序数据的行号和错误类型依次存储并形成第一错误队列。
22、第三方面,本专利技术提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的时序数据存储方法。
23、第四方面,本专利技术提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的时序数据存储方法。
本文档来自技高网...【技术保护点】
1.一种时序数据存储方法,其特征在于,用于时序数据库;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,基于所述待存储时序数据,经过预设处理与校验方法,得到待导入队列和第一错误队列,包括:
3.根据权利要求1所述的方法,其特征在于,当所述待导入队列的队列长度等于预设长度时,将所述待导入队列存储的时序数据存储至时序数据库之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,基于所述错误信息集和所述第一错误队列,经过分类合并方法,得到第二错误队列,包括:
5.根据权利要求4所述的方法,其特征在于,依次将所述第四错误队列中每个元素的错误码与所述初始结果栈中栈顶元素的错误码进行比较,并根据比对结果确定所述第二错误队列,包括:
6.根据权利要求4所述的方法,其特征在于,依次将所述第四错误队列中每个元素的错误码与所述初始结果栈中栈顶元素的错误码进行比较,并根据比对结果确定所述第二错误队列,还包括:
7.一种时序数据存储装置,其特征在于,用于时序数据库;所述装置包括:
8.根据权利要求7所述
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的时序数据存储方法。
...【技术特征摘要】
1.一种时序数据存储方法,其特征在于,用于时序数据库;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,基于所述待存储时序数据,经过预设处理与校验方法,得到待导入队列和第一错误队列,包括:
3.根据权利要求1所述的方法,其特征在于,当所述待导入队列的队列长度等于预设长度时,将所述待导入队列存储的时序数据存储至时序数据库之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,基于所述错误信息集和所述第一错误队列,经过分类合并方法,得到第二错误队列,包括:
5.根据权利要求4所述的方法,其特征在于,依次将所述第四错误队列中每个元素的错误码与所述初始结果栈中栈顶元...
【专利技术属性】
技术研发人员:关森,王炜灼,
申请(专利权)人:北京力控元通科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。