一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据抽取方法与装置与流程

2021-11-25 00:44:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种数据抽取方法与装置。


背景技术:

2.随着计算机技术的发展,各行各业的发展更加迅速,且更具智能化,尤其涉及到数据抽取技术领域。
3.传统的数据抽取操作通常都是人工来完成的,过程繁琐且容易出错。目前,现有技术中普遍的抽取方式是离线抽取,离线抽取是在次日凌晨之后开始抽取数据的,且抽取的是前一天凌晨到今日凌晨的数据。但是离线数据抽取存在着抽数速度慢和抽数数据不准确的问题;比如:若是在前一天数据量特别大的情况下,凌晨开始抽数就耗费的时间特别长;若在凌晨开始抽取数据操作,会存在着数据更新,会导致抽取前一天的数据丢失,造成抽取数据不准确的问题;abs(即资产证券化)现有业务对数据的实时性和准确性要求比较高,现有的离线抽数方案严重时会影响现有业务。
4.因此本技术提供了一种数据抽取方法与装置,能够满足数据抽取的实时性和准确性。


技术实现要素:

5.本技术提供了一种数据抽取方法与装置,以解决现有技术中抽取速度慢,抽取数据不准确的问题,提高数据抽取的实时性和准确性。
6.第一方面,本技术提供了一种数据抽取方法,包括以下步骤:
7.设置数据抽取任务,其中,所述数据抽取任务用于抽取源数据系统的目的数据,所述数据抽取任务包括:所述源数据系统产生所述目的数据的开始时间和结束时间、所述数据抽取任务的启动条件、数据扫描操作和数据抽取操作;
8.根据数据分布信息对数据抽取时间段进行动态分片操作,得到多个子时间段,其中,所述数据分布信息包括所述目的数据的数据量在所述数据抽取时间段上的分布情况,所述数据抽取时间段是所述开始时间和所述结束时间之间的时间段;
9.对所述目的数据进行所述数据扫描操作,以判断所述数据抽取任务是否满足所述启动条件;
10.当所述数据抽取任务满足所述启动条件时,根据所述多个子时间段执行所述数据抽取操作。在一种可能的实施方式中,所述根据数据分布信息对数据抽取时间段进行动态分片操作,得到多个子时间段,包括:
11.根据数据分布信息确定子时间段数据量,其中,所述子时间段数据量用于指示所述目的数据在每个子时间段内的数据量的多少;
12.根据所述子时间段数据量和预设数量对数据抽取时间段进行动态分片操作,得到多个子时间段。
13.在一种可能的实施方式中,还包括,当所述数据抽取任务不满足所述启动条件且
到达所述数据抽取任务的结束时间时,在所述数据抽取任务的下一次的开始时间开始执行所述数据抽取任务的数据抽取操作。
14.在一种可能的实施方式中,所述启动条件包括:所述数据抽取任务的数据量不小于预设值。
15.在一种可能的实施方式中,所述执行所述数据抽取任务的数据抽取操作,包括:
16.获取所述数据抽取任务的第i轮数据抽取操作在一个查询时间点的数据,i为自然数;将其与第i轮数据抽取操作在上一个查询时间点的数据进行比较,以判断数据是否发生变动:
17.若是,则继续所述数据抽取任务的第i轮数据抽取操作;
18.若否,则结束所述数据抽取任务的第i轮数据抽取操作,并开始执行所述数据抽取任务的第i 1轮数据抽取操作。
19.在一种可能的实施方式中,所述执行所述数据抽取任务的数据抽取操作,还包括:
20.判断所述数据抽取任务的数据是否抽取完成,若否,则返回继续执行所述数据抽取任务的数据抽取操作,若是,则结束所述数据抽取任务。
21.在一种可能的实施方式中,还包括:根据数据更新时间获取对应时间段内数据抽取任务抽取的最新数据。
22.第二方面,本技术提供了一种数据抽取装置,包括:
23.任务建立模块,用于设置数据抽取任务,其中,所述数据抽取任务用于抽取源数据系统的目的数据,所述数据抽取任务包括:所述源数据系统产生所述目的数据的开始时间和结束时间、所述数据抽取任务的启动条件、数据扫描操作和数据抽取操作;
24.分片模块,用于根据数据分布信息对数据抽取时间段进行动态分片操作,得到多个子时间段,其中,所述数据分布信息包括所述目的数据的数据量在所述数据抽取时间段上的分布情况,所述数据抽取时间段是所述开始时间和所述结束时间之间的时间段;
25.判断模块,用于对所述目的数据进行所述数据扫描操作,以判断所述数据抽取任务是否满足所述启动条件;
26.数据抽取模块,用于当所述数据抽取任务满足所述启动条件时,根据所述多个子时间段执行所述数据抽取操作。
27.第三方面,本公开的实施例提供了一种电子设备。上述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上所述的数据抽取的方法。
28.第四方面,本公开的实施例提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的数据抽取方法。
29.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
30.本技术实施例提供的该方法,使用了分治以及递归的思想,因为采用将离线数据动态的分为若干轮抽取,依次递归数据抽取,且当日即可开始数据抽取的技术手段,所以克服了在前一天数据量特别大的情况下,凌晨开始抽数耗费的时间长的问题,进而达到了提高数据抽取效率的技术效果。
附图说明
31.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
32.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
33.图1示意性示出了根据本公开实施例的数据抽取方法及装置的系统架构;
34.图2示意性示出了根据本公开实施例的数据抽取方法的流程示意图;
35.图3示意性示出了根据本公开实施例的数据抽取装置的结构框图;以及
36.图4示意性示出了本公开实施例提供的一种电子设备的结构框图。
具体实施方式
37.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
38.图1示意性示出了适用于本公开实施例的数据抽取方法及装置的系统架构。
39.参照图1所示,适用于本公开实施例的数据抽取方法及装置的系统架构100包括:终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
40.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有图像捕获装置、图片/视频播放类应用等。还可以安装有其他通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
41.终端设备101、102、103可以是显示屏并且支持图片/视频播放的各种电子设备,该电子设备还可以进一步包括图像捕获装置,例如电子设备包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、无人驾驶汽车等等。
42.服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所拍摄的图像或视频进行数据处理提供服务支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的图像/视频处理请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
43.需要说明的是,本公开实施例所提供的数据抽取方法一般可以由服务器105或具有一定运算能力的终端设备执行。相应地,本公开实施例所提供的数据抽取装置一般可以设置于服务器105中或上述具有一定运算能力的终端设备中。本公开实施例所提供的数据抽取的方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据抽取的装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
44.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
45.本公开的第一个示例性实施例提供了一种数据抽取的方法。如图2所示,本技术实施例提供了一种数据抽取方法,包括:步骤s100和步骤s200。
46.本发明实施例根据数据的特性设置数据抽取任务开始时间和结束时间以及启动条件等,并在所述数据抽取任务满足启动条件后开始第一轮抽数,直到数据抽取任务的数据不存在变动则结束第一轮抽数,开始第二轮抽数;依次递归,直到所有数据抽取任务均抽取完成。所述数据抽取任务的数据抽取完成次日后,即可使用。所述数据的特性可以指数据量。
47.步骤s100:设置数据抽取任务,其中,所述数据抽取任务用于抽取源数据系统的目的数据,所述数据抽取任务包括:所述源数据系统产生所述目的数据的开始时间和结束时间、所述数据抽取任务的启动条件、数据扫描操作和数据抽取操作;
48.步骤s200:根据数据分布信息对数据抽取时间段进行动态分片操作,得到多个子时间段,其中,所述数据分布信息包括所述目的数据的数据量在所述数据抽取时间段上的分布情况,所述数据抽取时间段是所述开始时间和所述结束时间之间的时间段;
49.步骤s300:对所述目的数据进行所述数据扫描操作,以判断所述数据抽取任务是否满足所述启动条件;
50.步骤s400:当所述数据抽取任务满足所述启动条件时,根据所述多个子时间段执行所述数据抽取操作。
51.需要说明的是,设置数据抽取任务可以是使用者设置也可以是抽取数据的系统设置的。所述源数据系统是产生所述目的数据的系统,目的数据是抽取数据的系统需要抽取的数据。
52.一般情况下,离线抽数抽取的是昨日凌晨到次日凌晨的数据;而在本发明实施例中则要设置开始抽数规则,本发明实施例通过定时任务扫描所有未开始执行的数据抽取任务,并根据任务开始抽数规则即是否满足启动条件来进行数据的抽取操作。
53.所述启动条件包括:所述数据抽取任务的数据量不小于预设值。所述启动条件可根据具体表示的数据量情况进行设置,比如当数据量大于且等于某个预设值后开始抽取数据。所述预设值可以为200w,所述预设值可根据实际业务情况自行设置,比如当某张表的某天变动的数据为1000w,某些表的某天变动的数据为100w时,它们设置的预设值也是不一样的,所述预设值可根据各自的业务线自己衡量指标。
54.在本发明的一个实施例中,所述根据数据分布信息对数据抽取时间段进行动态分片操作,得到多个子时间段,包括:根据数据分布信息确定子时间段数据量,其中,所述子时间段数据量用于指示所述目的数据在每个子时间段内的数据量的多少;根据所述子时间段数据量和预设数量对数据抽取时间段进行动态分片操作,得到多个子时间段。
55.获取目的数据的数据分布信息,根据数据分布信息确定子时间段数据量,子时间段数据量也就是每次抽取数据的数据量的大概的大小。根据所述子时间段数据量和预设数量对数据抽取时间段进行动态分片操作,也就是说每个时间段的数据量大致一样,每个时间段的数据量可能相差一个预设数量,预设数量用于调节多个子时间段内数据量的大小。
56.可选地,所述根据数据分布信息对数据抽取时间段进行动态分片操作,得到多个
子时间段,包括:根据数据分布信息确定分片数目;根据所述分片数目对数据抽取时间段进行动态分片操作,得到多个子时间段。
57.本公开实施例对数据抽取时间段进行动态分片操作,得到多个子时间段,分别在多个子时间段内多次抽取数据,通过上述技术手段,可以使得每次抽取数据的数据量比现有技术中少,解决了现有技术数据抽取中,每次抽取数据量大,容易出错的问题。
58.在本发明的一个实施例中,所述当所述数据抽取任务满足所述启动条件时,根据所述多个子时间段执行所述数据抽取操作,包括:在所述多个子时间段中,依次执行所述数据抽取操作。
59.在本发明的一个实施例中,当所述数据抽取任务不满足所述启动条件且到达所述数据抽取任务的结束时间时,在所述数据抽取任务的下一次的开始时间开始执行所述数据抽取任务的数据抽取操作。若数据抽取任务的数据量均小于该预设值,那么可在当日凌晨后自动开始数据的抽取操作。
60.在建立数据抽取任务之前,会先对接mysql对应的数据源信息,新建数据抽取任务时会设置当前数据抽取任务对应的mysql数据源对应的库表信息,实际离线抽取时直连mysql,通过select模式查询对应的数据,先存储到本地文件,最后把文件加载到hive表中;本发明实施例通过建立的库表信息,使用的mysql接口对应不同的数据源,使得本发明实施例的每一个抽取任务均对应库表中的一个表,很多个抽取任务则对应很多个表。所述select模式为查询模式;所述mysql为数据库;所述hive表示数据仓库工具。在本发明的一个实施例中,执行所述数据抽取任务的数据抽取操作,包括:
61.获取所述数据抽取任务的第i轮数据抽取操作在一个查询时间点的数据,i为自然数;将其与第i轮数据抽取操作在上一个查询时间点的数据进行比较,以判断数据是否发生变动:
62.若是,则继续所述数据抽取任务的第i轮数据抽取操作;
63.若否,则结束所述数据抽取任务的第i轮数据抽取操作,并开始执行所述数据抽取任务的第i 1轮数据抽取操作。
64.具体来说,当所述数据抽取任务满足启动条件后,即数据抽取任务的数据量不小于200w时,可以开始第一轮数据抽取,直到数据没有变动后,才结束第一轮数据抽取;在结束第一轮数据抽取后,系统自动开始第二轮数据抽取,第二轮数据抽取开始时间为第一轮数据抽取结束时间,直到数据没有变动,则结束第二轮数据抽取操作;依次类推,开始第三轮、第四轮数据抽取

,直到将当日凌晨之后的数据全部抽取完成。
65.本发明实施例可以通过分析两个查询时间点的数据是否发生变动来判断所述数据抽取任务的数据是否存在变动,若不存在变动应结束本轮数据抽取操作,开始下一轮数据抽取。当本轮数据抽取获取的是一个查询时间点的数据,那么下一轮数据抽取可以获取另一个查询时间点的数据,比如,当第一轮数据抽取获取一个查询时间点1:10的数据时,可通过判断一个查询时间点1:10与上一个查询时间点1:00之间的数据是否发生变动来判断在查询时间点1:10的情况下数据抽取任务的数据是否存在过变动,若存在过变动,则进行查询时间点1:10下的数据抽取操作;第二轮数据抽取可获取查询时间点1:20的数据,通过查询时间点1:20与上一个查询时间点1:10之间的数据是否发生变动来判断在时间点1:20的情况下数据抽取任务的数据是否存在过变动,若存在过变动,则进行查询时间点1:20的
数据抽取操作。类似地,第三轮、第四轮数据抽取依次进行数据的查询抽取操作。
66.在本发明的一个实施例中,所述执行所述数据抽取任务的数据抽取操作,还包括:
67.判断所述数据抽取任务的数据是否抽取完成,若否,则返回继续执行所述数据抽取任务的数据抽取操作,若是,则结束所述数据抽取任务。在判断出若干个数据抽取任务的某一数据抽取任务未抽取完成时,则继续进行这一数据抽取任务的抽取操作;在所有的数据抽取任务均抽取完成后,数据抽取任务的抽取操作结束。
68.在本发明的一个实施例中,还包括:根据数据更新时间获取对应时间段内数据抽取任务抽取的最新数据。由于一条数据当日可能存在着多次更新的情况,所以可将当日划分为多个时间片段,比如将2021.04.20分为了多个时间片段,那么在dt=20210420这个分区中,就可能存在着多条数据,此时需要根据数据更新时间进行开窗取得最新数据。
69.本发明实施例使用了分治以及递归的思想,因为采用将离线数据动态的分为若干轮,依次递归数据抽取,且当日即可开始数据抽取的技术手段,所以克服了在前一天数据量特别大的情况下,凌晨开始抽数耗费的时间长的问题,进而达到了提高数据抽取效率的技术效果;因为采用当日的数据被动态的分为了若干轮抽取,且前期变更数据都能获取到,接近凌晨的数据均能迅速抽取完成的技术手段,所以克服了在凌晨开始抽取数据,存在的更新操作会导致抽取前一天的数据丢失、以及抽取数据不准确的问题,进而达到了避免跨凌晨修改数据导致的漏抽问题,极大的提高了离线数据抽取的准确性的技术效果。
70.本发明实施例通过新建数据抽取任务;根据数据分布信息对数据抽取时间段进行动态分片操作,得到多个子时间段;对所述目的数据进行所述数据扫描操作,以判断所述数据抽取任务是否满足所述启动条件;当所述数据抽取任务满足所述启动条件时,根据所述多个子时间段执行所述数据抽取操作。本发明实施例所述的数据抽取方法,不仅提高了抽数效率、抽取的实时性,而且提高了抽取数据的准确性。
71.本公开的第二个示例性实施例提供了一种数据抽取的装置。如图3所示,本技术实施例提供了一种数据抽取装置,包括:
72.任务建立模块,用于设置数据抽取任务,其中,所述数据抽取任务用于抽取源数据系统的目的数据,所述数据抽取任务包括:所述源数据系统产生所述目的数据的开始时间和结束时间、所述数据抽取任务的启动条件、数据扫描操作和数据抽取操作;
73.分片模块,用于根据数据分布信息对数据抽取时间段进行动态分片操作,得到多个子时间段,其中,所述数据分布信息包括所述目的数据的数据量在所述数据抽取时间段上的分布情况,所述数据抽取时间段是所述开始时间和所述结束时间之间的时间段;
74.判断模块,用于对所述目的数据进行所述数据扫描操作,以判断所述数据抽取任务是否满足所述启动条件;
75.数据抽取模块,用于当所述数据抽取任务满足所述启动条件时,根据所述多个子时间段执行所述数据抽取操作。本发明实施例所述的数据抽取装置,不仅提高了抽数效率,而且提高了抽取数据的准确性。
76.上述第二个实施例中,任务建立模块以及数据抽取模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。任务建立模块以及数据抽取模块中的至少一个可以至少被部分地实现为硬件电路,例
如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,任务建立模块以及数据抽取模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
77.本公开的第四个示例性实施例提供了一种电子设备。如图4所示,本公开实施例提供的电子设备400包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401、通信接口402和存储器403通过通信总线404完成相互间的通信;存储器403,用于存放计算机程序;处理器401,用于执行存储器上所存放的程序时,实现如上所述的数据抽取方法。
78.本公开的第五个示例性实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的数据抽取方法。
79.该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
80.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
81.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
82.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献