数据抽取方法、装置、计算设备及计算机存储介质制造方法及图纸

技术编号:20389430 阅读:18 留言:0更新日期:2019-02-20 02:41
本发明专利技术公开了一种数据抽取方法、装置、计算设备及计算机存储介质。其中,该方法包括:当接收到全表数据查询请求时,根据数据表的总行数和平均每行长度判断是否切换查询方式;若是,则将查询方式由全表查询方式切换为分页查询方式;利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中。基于本发明专利技术提供的方案,通过采用分页查询方式,可以减少每次抽取数据的数据量,从而降低GC情况发生的频率,使GC情况达到正常状态,还能有效控制内存溢出错误不再发生,提升了稳定性,给用户带来良好的使用体验。

【技术实现步骤摘要】
数据抽取方法、装置、计算设备及计算机存储介质
本专利技术涉及数据处理
,具体涉及一种数据抽取方法、装置、计算设备及计算机存储介质。
技术介绍
在分布式计算任务中,Mysql数据抽取受到集群机器授权的限制,需要在Yarn-client模式运行。当Mysql抽取的数据量较大时,Driver端压力较大,会产生频繁垃圾回收(GC(GarbageCollection))的情况。其中,GC是指:在抽取一条数据后,会将数据加载到内存中,然后创建一个对象,这个对象是有生命周期的。由于内存是有限的,当程序不再需要使用某个对象的时候,就需要销毁该对象并释放其所占用的内存资源,好重新利用这段空间,这样就会产生GC情况。由于抽取数据的数据量较大,那么创建的对象也会较多,很容易产生频繁的GC情况,从而导致数据抽取任务运行缓慢,大多时是在等待GC时间,还可能出现数据抽取任务失败的情况,其中,数据抽取任务失败的原因主要是内存溢出(通俗理解为内存不够)。因此,亟需一种能够有效控制GC情况,避免内存溢出错误发生,提升数据抽取任务运行的稳定性的数据抽取方法。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据抽取方法、装置、计算设备及计算机存储介质。根据本专利技术的一个方面,提供了一种数据抽取方法,包括:当接收到全表数据查询请求时,根据数据表的总行数和平均每行长度判断是否切换查询方式;若是,则将查询方式由全表查询方式切换为分页查询方式;利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中。根据本专利技术的另一方面,提供了一种数据抽取装置,包括:第一判断模块,适于当接收到全表数据查询请求时,根据数据表的总行数和平均每行长度判断是否切换查询方式;切换模块,适于若切换查询方式,则将查询方式由全表查询方式切换为分页查询方式;抽取模块,适于利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中。根据本专利技术的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行上述数据抽取方法对应的操作。根据本专利技术的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述数据抽取方法对应的操作。根据本专利技术提供的方案,当接收到全表数据查询请求时,根据数据表的总行数和平均每行长度判断是否切换查询方式;若是,则将查询方式由全表查询方式切换为分页查询方式;利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中。基于本专利技术提供的方案,通过采用分页查询方式,可以减少每次抽取数据的数据量,从而降低GC情况发生的频率,使GC情况达到正常状态,还能有效控制内存溢出错误不再发生,提升了稳定性,给用户带来良好的使用体验。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的数据抽取方法的流程示意图;图2示出了根据本专利技术另一个实施例的数据抽取方法的流程示意图;图3示出了根据本专利技术一个实施例的数据抽取装置的结构示意图;图4示出了根据本专利技术一个实施例的计算设备的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的数据抽取方法的流程示意图。如图1所示,该方法包括以下步骤:步骤S100,当接收到全表数据查询请求时,根据数据表的总行数和平均每行长度判断是否切换查询方式,若是,则执行步骤S101。在本实施例中,全表数据查询请求指在数据抽取时,不设置查询条件,直接选中整个数据表,对数据表中数据的抽取,通过一次抽取,抽取到数据表中全部数据。当接收到全表数据查询请求时,需要先统计数据表的共有多少行,即总行数,以及确定数据表的平均每行长度,然后,根据数据表的总行数和平均每行长度判断是否切换查询方式,这里的切换查询方式指由全表查询方式切换至分页查询方式。步骤S101,将查询方式由全表查询方式切换为分页查询方式。在根据数据表的总行数和平均每行长度判断出需要切换查询方式的情况下,可以将查询方式由全表查询方式切换为分页查询方式,其中,分页查询指在抽取数据时,每次抽取数据表中的部分数据,然后,分多次抽取数据,直至抽取完数据表中所有数据。在本实施例中,将查询方式由全表查询方式切换为分页查询方式,可以减少每次抽取数据的数据量,从而降低GC情况发生的频率,使GC情况达到正常状态,提升了稳定性,给用户带来良好的使用体验。步骤S102,利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中。在将查询方式由全表查询方式切换为分页查询方式之后,可以利用分页查询方式,分次从数据源抽取相应的数据,每次抽取数据表中的部分数据,然后,将抽取的数据存储至分布式缓存器中,能有效控制内存溢出错误不再发生。根据本专利技术上述实施例提供的方法,当接收到全表数据查询请求时,根据数据表的总行数和平均每行长度判断是否切换查询方式;若是,则将查询方式由全表查询方式切换为分页查询方式;利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中。基于本专利技术提供的方案,通过采用分页查询方式,可以减少每次抽取数据的数据量,从而降低GC情况发生的频率,使GC情况达到正常状态,还能有效控制内存溢出错误不再发生,提升了稳定性,给用户带来良好的使用体验。图2示出了根据本专利技术另一个实施例的数据抽取方法的流程示意图。如图2所示,该方法包括以下步骤:步骤S200,当接收到全表数据查询请求时,计算第一预设阈值与平均每行长度的比值。在本实施例中,全表数据查询请求指在数据抽取时,不设置查询条件,直接选中整个数据表,对数据表中数据的抽取,通过一次抽取,抽取到数据表中全部数据。第一预设阈值表示采用全表查询时,设定的数据表最大存储空间,例如,可以将第一预设阈值设定为12M,这里仅是举例说明,不具有任何限定作用,本领域技术人员可以根据实际需要灵活设定第一预设阈值。平均每行长度是数据表中所有行的行长度的均值,以字节表示,平均每行长度与数据表的存储空间和总行数有关。第一预设阈值与平均每行长度的比值表示在该数据表存储空间为第一预设阈值时,该数据表大概有多少行,表示数据抽取时,能够抽取的数据的行数。第一预设阈值与平均每行长度的比值限定了采用全表查询时,查询行数的最大值。当接收到全表数据查询请求时,需要先计算第一预本文档来自技高网...

【技术保护点】
1.一种数据抽取方法,包括:当接收到全表数据查询请求时,根据数据表的总行数和平均每行长度判断是否切换查询方式;若是,则将查询方式由全表查询方式切换为分页查询方式;利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中。

【技术特征摘要】
1.一种数据抽取方法,包括:当接收到全表数据查询请求时,根据数据表的总行数和平均每行长度判断是否切换查询方式;若是,则将查询方式由全表查询方式切换为分页查询方式;利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中。2.根据权利要求1所述的方法,其中,所述根据数据表的总行数和平均每行长度判断是否切换查询方式进一步包括:计算第一预设阈值与平均每行长度的比值;判断数据表的总行数是否大于或等于所述比值;若是,则执行将查询方式由全表查询方式切换为分页查询方式的步骤。3.根据权利要求2所述的方法,其中,在将查询方式由全表查询方式切换为分页查询方式之后,所述方法还包括:将数据表的总行数与所述比值相除的结果确定为分页查询次数;所述利用分页查询方式,分次从数据源抽取相应的数据并将每次抽取的数据存储至分布式缓存器中进一步包括:根据分页查询次数,分次从数据源抽取预设行数的数据并将每次抽取的数据存储至分布式缓存器中,其中,预设行数为第一预设阈值与平均每行长度的比值。4.根据权利要求2或3所述的方法,其中,在将查询方式由全表查询方式切换为分页查询方式之前,所述方法还包括:判断数据表的总行数与所述比值相除的结果是否小于或等于第二预设阈值;若是,则执行将查询方式由全表查询方式切换为分页查询方式的步骤。5.根据权利要求1-4中任一项所述的方法,其中,在将每次抽取的数据存...

【专利技术属性】
技术研发人员:徐皓朱海龙杜文玉沈迪王素梅李铮
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1