System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,尤其涉及一种数据处理方法和装置、电子设备和存储介质。
技术介绍
1、spark的limit的原理就是在先根据查询条件组成一个rdd(抽象弹性分布式数据集,resiliennt distributed datasets),然后每个partition取limit数量,再统一发给一个partition,然后取出limit数量的row。
2、目前,spark limit语法当前在部分场景下性能较差,例如表中文件较多时,job执行时生成的task也多,导致job整体执行时间长。job是提交给spark的任务。task是每一个job处理过程要分几步,即为几次任务。
3、例如:一张表有10个t,共有100万左右文件,读取时会生成100万个task,要读100万个hdfs的block,这时会频繁对datanode(即,hdfs文件系统的工作节点)发起读操作,导致了datanode读数据繁忙,造成了出现慢datanode(即,慢节点)的问题,进而影响sparksql(即,spark用于处理结构化数据的spark模块,spark sql无缝结合了sql查询和spark编程)的执行。
4、在相关技术中,主要通过如下所述方法解决上述技术问题:1.尽量减少表中小文件的个数;2.增大hdfs集群/spark作业资源。
5、但是,尽量减少表中小文件的个数是理想情况,现实情况一般都比较复杂,无法做到完全没有小文件的存在;其次,增大hdfs集群/spark作业资源只有当资源充足时才适用,并且一直
6、因此,相关技术中存在如上所述技术问题。
技术实现思路
1、本申请提供了一种数据处理方法和装置、电子设备和存储介质,以至少解决相关技术中存在的至少一个技术问题。
2、根据本申请实施例的一个方面,提供了一种数据处理方法,包括:
3、获取来自于请求方的数据查询请求;
4、按照所述数据查询请求指示的目标数量,在所述目标数量的目标分区中进行查询,返回在所述目标数量的目标分区中查询到的第一数据,其中,所述目标分区为目标文件的分区;
5、在所有第一数据中确定出第二数据;
6、向所述请求方返回所述第二数据。
7、可选地,如前述的方法,所述获取来自于请求方的数据查询请求,包括:
8、获取来自于所述请求方的、用于触发通过所述目标数量的task进行查询的优化查询子语句;
9、获取来自于所述请求方的、用于请求对所有候选分区进行数据查询的limit请求子语句,其中,所述所有候选分区构成所述目标文件,所述所有候选分区包括所述目标数量的目标分区;
10、根据所述优化查询子语句以及所述limit请求子语句得到所述数据查询请求。
11、可选地,如前述的方法,所述按照所述数据查询请求指示的目标数量,在所述目标数量的目标分区中进行查询,返回在所述目标数量的目标分区中查询到的第一数据,包括:
12、通过所述目标数量的task中的每个task,对所述每个task对应的每个目标分区进行扫描,并读取得到所述每个目标分区的目标分区数据;
13、所述每个task按照所述limit请求子语句指示的第一数据条数,从所述每个task对应的所述目标分区数据中返回第二数据条数的第一数据,其中,所述第二数据条数小于或等于所述第一数据条数。
14、可选地,如前述的方法,所述按照所述数据查询请求,在所有第一数据中确定出第二数据,包括:
15、按照所述limit请求子语句指示的第一数据条数,从所述所有第一数据中确定出所述第一数据条数的第一数据;
16、按照所述limit请求子语句指示的第一展示数据条数,从所述第一数据条数的第一数据中确定出不大于所述第一展示数据条数的所述第二数据。
17、可选地,如前述的方法,所述获取来自于请求方的数据查询请求,包括:
18、获取来自于所述请求方的、包括目标关键字的所述数据查询请求,其中,所述目标关键字用于指示通过所述目标数量的task,对所述目标数量的分区进行查询并返回数据。
19、可选地,如前述的方法,所述按照所述数据查询请求指示的目标数量,在所述目标数量的目标分区中进行查询,返回在所述目标数量的目标分区中查询到的第一数据,包括:
20、通过所述目标数量的task中的每个task,对所述每个task对应的每个目标分区进行扫描,并读取得到所述每个目标分区的目标分区数据;
21、所述每个task按照所述数据查询请求指示的第三数据条数,从所述每个task对应的所述目标分区数据中返回第四数据条数的第一数据,其中,所述第四数据条数小于或等于所述第三数据条数。
22、可选地,如前述的方法,所述按照所述数据查询请求,在所有第一数据中确定出第二数据,包括:
23、按照所述数据查询请求指示的第三数据条数,从所述所有第一数据中确定出所述第三数据条数的第一数据;
24、按照所述数据查询请求指示的第二展示数据条数,从所述第三数据条数的第一数据中确定出不大于所述第二展示数据条数的所述第二数据。
25、根据本申请实施例的另一个方面,还提供了一种数据处理装置,包括:
26、获取模块,用于获取来自于请求方的数据查询请求;
27、第一返回模块,用于按照所述数据查询请求指示的目标数量,在所述目标数量的目标分区中进行查询,返回在所述目标数量的目标分区中查询到的第一数据,其中,所述目标分区为目标文件的分区;
28、确定模块,用于在所有第一数据中确定出第二数据;
29、第二返回模块,用于向所述请求方返回所述第二数据。
30、根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
31、根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
32、在本申请实施例中,采用按照数据查询请求指示的目标数量,在目标数量的目标分区中进行查询,返回在目标数量的目标分区中查询到的第一数据;从而无需对目标文件对应的所有分区都进行读取,即可确定出第一数据,进而既可以获取满足按照数据查询请求的第二数据;也可以有效减少进行读取的task的数量;从而在能够满足请求方需求的前提下,无需频繁对datanode发起读操作,也就不会造成datanode读数据繁忙的情况的发生,进而也就不会影响sparksql的执行;进而也就可以解决相关技术中尽量减少表中小文件的个本文档来自技高网...
【技术保护点】
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取来自于请求方的数据查询请求,包括:
3.根据权利要求2所述的方法,其特征在于,所述按照所述数据查询请求指示的目标数量,在所述目标数量的目标分区中进行查询,返回在所述目标数量的目标分区中查询到的第一数据,包括:
4.根据权利要求2所述的方法,其特征在于,所述按照所述数据查询请求,在所有第一数据中确定出第二数据,包括:
5.根据权利要求1所述的方法,其特征在于,所述获取来自于请求方的数据查询请求,包括:
6.根据权利要求5所述的方法,其特征在于,所述按照所述数据查询请求指示的目标数量,在所述目标数量的目标分区中进行查询,返回在所述目标数量的目标分区中查询到的第一数据,包括:
7.根据权利要求5所述的方法,其特征在于,所述按照所述数据查询请求,在所有第一数据中确定出第二数据,包括:
8.一种数据处理装置,其特征在于,包括:
9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项中所述的方法步骤。
...【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取来自于请求方的数据查询请求,包括:
3.根据权利要求2所述的方法,其特征在于,所述按照所述数据查询请求指示的目标数量,在所述目标数量的目标分区中进行查询,返回在所述目标数量的目标分区中查询到的第一数据,包括:
4.根据权利要求2所述的方法,其特征在于,所述按照所述数据查询请求,在所有第一数据中确定出第二数据,包括:
5.根据权利要求1所述的方法,其特征在于,所述获取来自于请求方的数据查询请求,包括:
6.根据权利要求5所述的方法,其特征在于,所述按照所述数据查...
【专利技术属性】
技术研发人员:郝仁慧,
申请(专利权)人:北京金山云网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。