System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于分布式文件系统数据读写,具体涉及一种文件读写方法和系统。
技术介绍
1、电池数据存储在分布式系统基础架构hadoop中的分布式文件系统(hadoopdistributed file system,hdfs)中,以在大型布式环境中存储和管理数据。随着业务量的上升,需要存储和管理的数据的不断增加,导致数据读写效率愈发降低。
技术实现思路
1、专利技术目的:本申请开发了一种文件读写方法和系统,旨在解决现有技术中随着数据量的增加,数据的读写效率日渐降低的技术问题。
2、技术方案:第一方面,本申请的实施例提供一种文件读写方法,应用于分布式文件系统,所述文件读写方法包括:
3、确定目标数据,并将处理逻辑相同的所述目标数据按列写入所述分布式文件系统;
4、基于所述目标数据的数据类型的长度和所述目标数据的批处理量,确定行号偏移量;
5、基于所述行号偏移量和行号起始位置确定调用位置;
6、基于所述数据类型将模板函数实例化,获取调用代码;
7、基于所述调用代码和所述调用位置,在所述分布式文件系统中按列批量读取处理逻辑相同的所述目标数据。
8、在一些实施例中,在将处理逻辑相同的所述目标数据按列写入分布式文件系统之前,所述文件读写方法还包括:
9、将所述目标数据中的字符串类型的数据转换为整形的数值类型的数据。
10、在一些实施例中,在将处理逻辑相同的所述目标数据按列写入分布式文件系统之前,
11、确定一级分类参量和第一存储区域,并基于所述一级分类参量将所述目标数据分类为多个第一数据,并分别存储在多个第一存储区域中;
12、确定二极分类参量和第二存储区域,并基于所述二极分类参量将所述第一数据分类为多个第二数据,并分别存储在多个第二存储区域中,多个所述第二存储区域设置在同一个所述第一存储区域中。
13、在一些实施例中,所述基于所述调用代码和所述调用位置读取所述分布式文件系统中的所述目标数据的步骤包括:
14、将所述调用代码插入至所述调用位置;
15、确定所述目标数据的读取器;
16、控制所述读取器通过调用代码读取所述调用位置的所述目标数据。
17、在一些实施例中,在控制所述读取器通过调用代码读取所述调用位置的所述目标数据的步骤之前,所述文件读写方法包括:
18、确定读取所述目标数据的线程;
19、获取所述目标数据读取时的文件句柄;
20、将所述文件句柄存储在所述线程中,以使所述线程通过其自身存储的所述文件句柄获取对应的目标数据。
21、在一些实施例中,所述将所述文件句柄存储在所述线程中的步骤包括:
22、将所述文件句柄存储在线程局部存储关键字的变量中;
23、将所述线程局部存储关键字设置在所述线程中。
24、在一些实施例中,所述目标数据在存储时采用数据压缩库压缩,在控制所述读取器通过调用代码读取所述调用位置的所述目标数据之前,所述基于所述调用代码和所述调用位置读取所述目标数据的步骤还包括:
25、获取所述目标数据的第一解压缩器,所述第一解压缩器用于解压由数据压缩库压缩的数据;
26、获取伪随机算法库,并基于所述伪随机算法库重构所述第一解压缩器,获取第二解压缩器;
27、在读取所述目标数据之前,通过所述第二解压缩器解压所述目标数据。
28、在一些实施例中,所述目标数据以优化行列式存储格式进行列式存储,所述读取器为读取数据仓库行格式文件的读取器。
29、在一些实施例中,所述确定所述目标数据的读取器的步骤包括:
30、获取行程长度编码的解码运算数据,并将所述解码运算数据移植至所述读取器中;
31、所述控制所述读取器通过调用代码读取所述调用位置的所述目标数据的步骤包括:
32、获取用于位运算的处理器的指令集,通过所述指令集加速所述读取器中所述行程长度编码的解码运算中变长整数编码的解码位运算过程。
33、第二方面,本申请的实施例还提供一种文件读取系统,应用于分布式文件系统,所述文件读取系统包括:
34、数据写入模块,所述数据写入模块用于确定目标数据,并将处理逻辑相同的所述目标数据按列写入所述分布式文件系统;
35、偏移量确定模块,所述偏移量确定模块用于基于所述目标数据的数据类型的长度和所述目标数据的批处理量,确定行号偏移量;
36、调用位置确定模块,所述调用位置确定模块用于基于所述行号偏移量和行号起始位置确定调用位置;
37、调用代码确定模块,所述调用代码确定模块用于基于所述数据类型将模板函数实例化,获取调用代码;
38、数据读取模块,所述数据读取模块用于基于所述调用代码和所述调用位置,在所述分布式文件系统中按列批量读取处理逻辑相同的所述目标数据。
39、有益效果:与现有技术相比,本申请实施例提供的一种文件读写方法,应用在分布式文件系统进行数据的存储和管理,本申请实施例提供的文件读写方法将处理逻辑相同的目标数据按列写入到分布式文件系统中;在读取数据时,基于目标数据的数据类型的长度和目标数据的批处理量确定批处理的目标数据的行号偏移量,并将行号偏移量与行号初始位置结合,确定批处理的目标数据的调用位置;根据目标数据的数据类型将模版函数实例化,并从实例化的模版函数中获取目标数据的调用代码;最后结合调用代码和调用位置,在分布式文件系统中按列批量读取处理逻辑相同的所述目标数据。本申请在数据写入时将相同处理逻辑的目标数据按列存储,同时在读取的时候将相同处理逻辑的目标数据按列进行批量读取,在一次批量读取的过程中,仅需调用一次虚函数,便可读取多个数据,有效减少数据和虚函数的调用次数,在较少的调用次数下调用更多的数据,提高的数据处理的效率。
本文档来自技高网...【技术保护点】
1.一种文件读写方法,其特征在于,应用于分布式文件系统,所述文件读写方法包括:
2.根据权利要求1所述的文件读写方法,其特征在于,在将处理逻辑相同的所述目标数据按列写入分布式文件系统之前,所述文件读写方法还包括:
3.根据权利要求1所述的文件读写方法,其特征在于,所述将处理逻辑相同的所述目标数据按列写入分布式文件系统的方法还包括:
4.根据权利要求1所述的文件读写方法,其特征在于,所述基于所述调用代码和所述调用位置,在所述分布式文件系统中按列批量读取处理逻辑相同的所述目标数据的步骤包括:
5.根据权利要求4所述的文件读写方法,其特征在于,在控制所述读取器通过调用代码读取所述调用位置的所述目标数据的步骤之前,所述文件读写方法包括:
6.根据权利要求5所述的文件读写方法,其特征在于,所述将所述文件句柄存储在所述线程中的步骤包括:
7.根据权利要求4所述的文件读写方法,其特征在于,所述目标数据在存储时采用数据压缩库压缩,在控制所述读取器通过调用代码读取所述调用位置的所述目标数据之前,所述基于所述调用代码和所述调用位
8.根据权利要求4所述的文件读写方法,其特征在于,所述目标数据以优化行列式存储格式进行列式存储,所述读取器为读取数据仓库行格式文件的读取器。
9.根据权利要求4所述的文件读写方法,其特征在于,所述确定所述目标数据的读取器的步骤包括:
10.一种文件读写系统,其特征在于,应用于分布式文件系统,所述文件读取系统包括:
...【技术特征摘要】
1.一种文件读写方法,其特征在于,应用于分布式文件系统,所述文件读写方法包括:
2.根据权利要求1所述的文件读写方法,其特征在于,在将处理逻辑相同的所述目标数据按列写入分布式文件系统之前,所述文件读写方法还包括:
3.根据权利要求1所述的文件读写方法,其特征在于,所述将处理逻辑相同的所述目标数据按列写入分布式文件系统的方法还包括:
4.根据权利要求1所述的文件读写方法,其特征在于,所述基于所述调用代码和所述调用位置,在所述分布式文件系统中按列批量读取处理逻辑相同的所述目标数据的步骤包括:
5.根据权利要求4所述的文件读写方法,其特征在于,在控制所述读取器通过调用代码读取所述调用位置的所述目标数据的步骤之前,所述文件读写方法包括:
【专利技术属性】
技术研发人员:夏帅帅,曾维思,杨拾锋,高攀龙,张建彪,
申请(专利权)人:章鱼博士智能技术上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。