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

一种数据处理方法、装置、存储介质及计算机系统与流程

2022-05-31 23:50:28 来源:中国专利 TAG:


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.本公开的一种实施例所提供的数据处理方法中,通过将待处理数据中的同类型数据转换成具有统一格式的数据传输对象,以便于后续采用预设处理函数处理数据传输对象中包含的数据而得到处理后数据;通过为处理后数据配置对应的载体并存储,以使处理后数据可以流转至下一处理节点,能够有效的减少数据处理过程中数据源的接收、各种载体输出浪费的时间,进而简化数据处理过程,提高数据处理效率。
40.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1示意性示出本公开示例性实施例中一种用于实现数据处理方法或者数据处理装置的系统架构的示意图;
43.图2示意性示出本公开示例性实施例中一种数据处理方法的示意图;
44.图3示意性示出本公开示例性实施例中一种数据处理方法的流程示意图;
45.图4示意性示出本公开示例性实施例中一种数据处理装置的一种示意图;
46.图5示意性示出本公开示例性实施例中一种数据处理装置的另一种示意图;
47.图6示意性示出本公开示例性实施例中一种计算机系统的组成示意图;
48.图7示意性示出本公开示例性实施例中一种存储介质的组成示意图。
具体实施方式
49.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
50.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
51.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
52.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
53.本公开的示例性实施例中首先提供一种用于实现数据处理方法或者数据处理装置的系统架构。参考图1所示,该系统架构可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
54.终端设备101、102、103可以是具有数据处理器并且支持运行各种数据处理程序的各种智能设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
55.服务器105可以是提供各种服务的服务器,例如接收各种来源的数据并提供各种标准类函数处理方式的后台管理服务器。后台管理服务器可以对接收到的多源数据进行封装,以生成数据传输对象,终端设备101、102或103可以通过网络104从服务器存储中调用处理完成的数据,并采用由用户通过终端设备输入的处理函数对处理完成的数据进行相应的计算,得到计算结果数据,终端设备101、102或103可以通过网络104将计算结果数据发送至服务器105,以便于服务器105对数据进行后续加工,例如,服务器105可以为计算结果数据配置载体,服务器105可以对配置有载体的计算结果进行存储等。
56.需要说明书的是,本公开实施方式所提供的数据处理方法一般由服务器105单独
执行,相应的,数据处理装置一般置于服务器105中,但本领域技术人员容易理解的是,本公开实施例所提供的数据处理方法也可以由服务器与终端设备101、102或103交互完成,相应的,数据处理装置也可以设置于服务器105以及终端设备101、102或103中。
57.执行主体为服务器105时,具体执行过程如下:
58.服务器105接收待处理数据(待处理数据包括第一类型数据以及第二类型数据);服务器105将第一类型数据转换成具有第一格式的数据传输对象;将第二类型数据转换成具有第二格式的数据传输对象;服务器105采用预先设置在其内的第一处理函数处理上述具有第一格式的数据传输对象中包含的数据,得到具有第一格式的处理后数据;以及采用第二处理函数处理上述具有第二格式的数据传输对象中包含的数据,得到具有第二格式的处理后数据,服务器105为具有第一格式的处理后数据配置对应的载体,并且为具有第二格式的处理后数据配置对应的载体;并将配置有载体的具有第一格式的处理后数据以及配置有载体的具有第二格式的处理后数据存储在服务器105的存储中。
59.执行主体为服务器105以及终端设备101、102或103时,具体执行过程如下:
60.服务器105接收待处理数据(待处理数据包括第一类型数据以及第二类型数据);服务器105将第一类型数据转换成具有第一格式的第一数据传输对象并存储;将第二类型数据转换成具有第二格式的第二数据传输对象并存储;用户通过终端设备101、102或103通过网络104从服务器105的存储中调用具有第一传输格式的第一数据传输对象,和/或调用具有第二传输格式的第二数据传输对象,之后,用户向终端设备101、102或103中输入用于处理第一数据传输对象中包含数据的第一处理函数,和/或输入用于处理第二数据传输对象中包含数据的第二处理函数;并采用第一处理函数处理第一数据传输对象中包含的数据,和/或采用第二处理函数处理第二数据传输对象中包含的数据;并将处理后数据通过网络104传输至服务器105中,需要说明的是,处理第一数据传输对象中数据的终端设备与处理第二数据传输对象中数据的终端设备可以是相同的终端设备,也可以是不同的终端设备;例如,用户一可以通过终端设备101输入处理第一数据传输对象中数据对应的第一处理函数,用户二可以通过终端设备102输入处理第二数据传输对象中数据对应的第二处理函数;数据处理完成后,服务器105为具有第一格式的数据传输对象对应的处理后数据配置对应的载体,为具有第二格式的数据传输对象对应的处理后数据配置对应的载体;并将配置有载体的具有第一格式的处理后数据以及配置有载体的具有第二格式的处理后数据存储在服务器105的存储中。
61.本方案可以应用于以下场景:
62.当需要商家一的日订单量以及订单流向;其中,日订单流向可以通过商品的发货地以及收货地来确定,进一步的,可以通过仓库维表数据来获取发货地的地址以及收货地的地址;流量的获取方式可以是:通过订单以及订单明细来获取具体每一单的发货数量,基于发货数量来统计商品的发货总量即为流量。具体到本方案中,服务器105接收待处理数据,其中,待处理数据可以包括商品订单数据、商品订单明细数据、仓库维表数据、商品维表数据;服务器根据类型,分别将上述四种类型的数据转换成四种dto(data transfer object,数据传输对象),分别为:order(商品订单数据)dto、item(商品订单明细数据)dto、warsehouse(仓库维表数据)dto、goods(商品维表数据)dto;用户可以预先在服务器105中写入用于统计订单数量的第一函数fun1,以及用户统计订单流向的第二函数fun2;服务器
将order dto、warsehouse dto输入至fun2,将item dto、goods dto输入至fun1,处理得到商品的流向数据dto以及流量数据dto。服务器105分别为流向数据dto、流量数据dto配置载体,转换成流向数据sink dto、流量数据sink dto,以用于将商品数据以及流量数据提供至第三方,例如落库或者发送给其他程序。服务器将流向数据sink dto、流量数据sink dto存储在服务器存储中。
63.基于上述系统架构100,本公开提出一种数据处理方法。参考图2所示,该方法包括:步骤s201、步骤s202、步骤s203、步骤s204。
64.步骤s201,将待处理数据中的同类型数据转换成具有统一格式的数据传输对象。
65.步骤s202,采用预设处理函数处理所述数据传输对象中包含的数据,得到处理后数据。
66.步骤s203,为所述处理后数据配置对应的载体,得到输出流数据。
67.步骤s204,存储所述输出流数据。
68.本示例实施方式所提供的数据处理方法,第一方面,通过将待处理数据中的同类型数据转换成具有统一格式的数据传输对象,以简化数据接收流程,进而便于后续采用预设处理函数处理所述数据传输对象中包含的数据而得到处理后数据;第二方面,通过为处理后数据配置对应的载体并存储,以使处理后数据可以流转至下一处理节点,能够有效的减少数据处理过程中数据源的接收、各种载体的输出浪费的时间,进而简化数据处理过程,提高数据处理效率。
69.下面,将结合附图及实施例对本示例实施方式中的数据处理方法的各个步骤进行更详细的说明。
70.步骤s201,将待处理数据中的同类型数据转换成具有统一格式的数据传输对象。
71.本示例实施方式中,上述待处理数据可以是任何需要加工的数据。例如,商品订单数据、商品订单明细数据、仓库维表数据、商品维表数据等;上述待处理数据的来源可以相同也可以不相同。例如,数据来源可以是kafka(kafka是由apache软件基金会开发的一个开源流处理平台,由scala和java编写)或者mq(message queuing,消息队列),或者其他来源;上述待处理数据与服务器之间的传输协议可以是字符传输协议,也可以是字节流传输协议;上述待处理数据可以是加密数据,也可以是未加密数据。
72.本示例实施方式中,可以根据待处理数据的类型,对待处理数据进行分类。具体的,可以根据待处理数据是否继承同一个父类的方式确定对应的类型;例如,由标准类接收的source(数据源)数据,继承同一个父类,便可以作为相同的数据类型,可以方便后续的处理。再例如,可以将待处理数据分为商品订单数据、商品订单明细数据、仓库维表数据、商品维表数据等,之后,可以选取与每一类型的数据对应的数据传输对象分别封装对应类型的数据,即采用具有第一格式的数据传输对象对商品订单数据进行封装,得到order dto;采用具有第二格式的数据传输对象对商品订单明细数据进行封装,得到item dto;采用具有第三格式的数据传输对象对仓库维表数据进行封装,得到warsehouse dto;采用具有第四格式的数据传输对象对商品维表数据进行封装,得到goods dto。
73.本示例实施方式中,dto的格式可以根据用户长期采集的数据类型或者用户需要采用待处理数据来进行的目的等方式提前获得,例如,当用户需要使用仓库数据作为待处理数据时,可以创建域dto,域模型是指从业务模型中抽取出来的对象模型,比如商品、仓
sink用于将包含分割文本或者json数据的events直接传送到hive表或分区中;logger sink用于使logs event在info水平;avro sink用于将flume events发送到sink,转换为avro events,并发送到配置好的hostname/port;thrift sink用于将flume events发送到sink,转换为thrift events,并发送到配置好的hostname/port;irc sink用于从链接的channel获取消息和推送消息到配置的irc目的地;file roll sink用于在本地文件系统存储events;elastic search sink用于写数据到elasticsearch集群。
82.本示例实施方式中,载体与处理后数据之间的对应关系可以是一一对应,也可以采用其他的对应方式,例如,服务器接收到三种类型的source数据源,对应a dto、b dto、c dto。需要对外输出三个sink载体,分别是1sink dto、2sink dto、3sink dto。
83.当载体与处理后数据之间的对应关系可以是一一对应时,可以得到的对应结果是:
84.a dto对应1sink dto;b dto对应2sink dto;c dto对应3sink dto;或者
85.a dto对应2sink dto;b dto对应1sink dto;c dto对应3sink dto;或者
86.a dto对应2sink dto;b dto对应3sink dto;c dto对应1sink dto等等。
87.当载体与处理后数据之间的对应关系为其他对应关系时,可以得到的对应结果是:
88.a dto、b dto对应1sinkdto,c dto对应2sink dto;或者
89.a dto、b dto、c dto对应1sinkdto,b dto、c dto对应2sink dto;或者
90.a dto、b dto、c dto对应1sinkdto,a dto、b dto、c dto对应2sink dto;
91.本示例实施方式中,现有技术中,开发人员将较多的精力放在载体(sink)的输出上,当输出载体多样化的时候,开发人员同样需要一遍一遍的重复连接、鉴权、建立数据、发送等动作,本方案通过服务器为自动为数据传输对象配置载体,无需开发人员重复上述步骤。进而简化数据处理过程,提高数据处理效率。
92.步骤s204,存储所述输出流数据。
93.本示例实施方式中,服务器可以将输出流数据存储在服务器存储中,例如,可以在服务器中创建一个mysql数据库,也可以是服务器直接将输出流数据存储在云存储中。
94.本示例实施方式中,采用上述方案,可以大大减小开发人员的工作量,将数据接收、数据传输对象封装、搭载载体等步骤全部交由服务器执行,可以很直观的体现数据流向,便于开发人员构建拓扑图,降低了出错概率,提高了数据处理效率。
95.本示例实施方式中,步骤s201,将待处理数据中的同类型数据转换成具有统一格式的数据传输对象包括:
96.步骤s2011,接收多源数据,并基于数据类型对所述多源数据分类,得到多个具有同类型数据的数据组。
97.具体的,上述多源数据为不同来源的数据,例如,kafka(kafka是由apache软件基金会开发的一个开源流处理平台,由scala和java编写)还是mq(message queuing,消息队列),或者其他来源。
98.具体的,基于数据类型对所述多源数据分类的方法可以是:根据数据类型来进行分类,例如,接收到的多源数据为一个数据包,数据包中包含有商品订单数据、商品订单明细数据、仓库维表数据、商品维表数据;可以将所有的商品订单数据分为一个商品订单数据
组,将所有的商品订单明细数据分为一个商品订单明细数据组;所有的仓库维表数据分为一个仓库维表数据组;所有的商品维表数据分为一个商品维表数据组。
99.步骤s2012,根据所述数据组中数据的类型,选择对应的具有第一格式的数据传输对象,并使用具有所述第一格式的数据传输对象封装所述数据组,得到数据传输对象。
100.具体的,对商品订单数据组进行封装时,选择与商品订单数据组对应的格式的数据传输对象,并利用该格式的数据传输对象对商品订单数据组进行封装,得到商品订单数据组对应的数据传输对象;对商品订单明细数据组进行封装时,选择与商品订单明细数据组对应的格式的数据传输对象,并利用该格式的数据传输对象对商品订单明细数据组进行封装,得到商品订单明细数据组对应的数据传输对象;对仓库维表数据组进行封装时,选择与仓库维表数据组对应的格式的数据传输对象,并利用该格式的数据传输对象对仓库维表数据组进行封装,得到仓库维表数据组对应的数据传输对象;对商品维表数据组进行封装时,选择与商品维表数据组对应的格式的数据传输对象,并利用该格式的数据传输对象对商品维表数据组进行封装,得到商品维表数据组对应的数据传输对象。
101.具体的,上述传输对象类型的选择可以根据实际数据的类型来确定,例如,当数据为仓库数据以及商品数据时,可以创建域dto等,创建一个dto,用该dto包含远程调用所需要的所有数据。修改远程方法签名,以便将dto作为单个参数接受,并将单个dto参数返回给客户端。在调用方应用程序收到dto并将其作为本地对象存储之后,应用程序可以分别对dto发出一系列单独的过程调用,而不会引发远程调用开销。
102.本示例实施方式中,步骤s201,将待处理数据中的同类型数据转换成具有统一格式的数据传输对象之前,所述方法还包括:步骤s200。
103.步骤s200,为所述待处理数据配置对应的鉴权信息。
104.具体的,上述鉴权信息为验证用户是否拥有访问系统的权利的信息,即本方案中,服务器接收到的数据可以针对性设置每一个数据的访问者,例如,需要为order dto、warsehouse dto创建函数fun2的第一客户端配置只能访问order dto、warsehouse dto的权限,则服务器在接收到商品订单数据以及仓库维表数据之后,便分别为上述两种数据配置只能允许第一客户端访问的权限。同理,需要为item dto、goods dto创建函数fun1的第二客户端配置只能访问item dto、goods dto的权限,则服务器在接收到商品维表数据以及商品订单明细数据之后,便分别为上述两种数据配置只能允许第二客户端访问的权限。上述鉴权信息配置完成后,在第一客户端与第二客户端调用数据时,如第二客户端调用到order dto、warsehouse dto,此时,第二客户端并未配置访问order dto、warsehouse dto的权限,因此,第二客户端即使可以调用order dto、warsehouse dto,也无法对order dto、warsehouse dto进行访问。
105.具体的,本方案中,可以按照数据类型为整个类型的数据配置鉴权信息,也可以为该类型数据中的某一个或者多个涉密数据配置单独的鉴权信息,具体的配置方法,用户可以根据实际使用需求自行设定。
106.本示例实施方式中,步骤s203,为所述处理后数据配置对应的载体,得到输出流数据包括:步骤s2031、步骤s2032。
107.步骤s2031,基于使用目的原则,选择与所述处理后数据对应的具有第一类型的载体。
108.具体的,上述使用目的可以处理后数据的流向,例如,将处理后数据直接落库存储、存储在mysql数据库中,或者在本地文件系统存储events;也可以是传输到其他应用程序的存储中进行下一步运算,例如,将数据到elasticsearch集群中。
109.具体的,根据使用目的确定载体的类型,例如,直接落库并存储在mysql数据库中时,可以选用musql:tuple2 sink;在本地文件系统存储events,可以选用file roll sink。传输到其他应用程序的存储中进行下一步运算时,例如将数据到elastic search集群中时,可以选用elastic search sink。
110.步骤s2032,采用具有所述第一类型的载体搭载所述处理后数据,得到输出流数据。
111.具体的,通过采用基于使用目的确定类型的载体搭载处理后数据,便可以得到输出流数据,以用于将数据传输至预定的使用地点。
112.本示例实施方式中,步骤s204,存储所述输出流数据包括:包括步骤s2041、步骤s2042。
113.步骤s2041,确定所述输出流数据的主键,并基于所述主键生成存储列表。
114.具体的,上述主键可以是输出流数据中各数据的表征数据,在设置主键的过程中,通常选取不具有更改意义的词作为主键,例如,例如"用户登录信息表"将"登录名"(英文名)作为主键,"订单表"中将"订单编号"作为主键。
115.具体的,上述存储列表可以根据主键来生成,例如,在流向数据sink dto中以商品名称作为主键生成存储列表,商品名称包括商品一、商品二;则对应的存储列表中便包含有商品一、商品二;进一步的,可以将存储列表与流向数据sink dto之间建立索引关系,即点击商品一,则可以显示当日商品一的发货仓库、收货仓库等信息,以便于用户查看。
116.步骤s2042,存储所述输出流数据以及与所述输出流数据对应的存储列表。
117.具体的,可以使用两种数据格式来存储输出流数据以及与所述输出流数据对应的存储列表,例如,可以采用list和json(javascript object notation,对象表示法)用来存储,上述list是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。list的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list是类库提供的众多容器(container)之一,上述json是一种基于文本,独立于语言的轻量级数据交换格式。json存储中,不对数据附加的任何标记便于进行数据交换。上述两种格式的存储可以兼容关系型与非关系型数据库,并且可以与外部文件存储对接以及与外部数据传输接口对接。
118.本示例实施方式中,步骤s204,所述存储所述输出流数据之前,所述方法还包括:步骤s2033、步骤s2034。
119.步骤s2033,采用滑动窗口算法处理所述输出流数据,输出第一数据。
120.步骤s2034,采用归并排序算法处理所述输出流数据,得到第二数据;以用于存储所述第一数据以及所述第二数据。
121.具体的,将转换后的out doc(document,文档),由提供的标准类降耦聚合数据。在不影响需求的前提下,有效减少数据的产出量级,降低输出载体的传输或写入压力,提高下游计算效率,避免source数据源内容的假积压。提供时间范围和上线量两种阈值。此步骤不需要开发人员过多关注,仅需标注代码。
122.具体的,归并排序算法或滑动窗口算法可以将数据整合汇总,减少对sink的输出。例如,数据的数量为100条,在结果不变的前提下,将sink输出的数量变成10条,如商品一的上午发货量为10,下午发货量为20,则通过归并排序算法或滑动窗口算法可以将商品一的上午发货量与下午发货量合并,作为当日发货量30。其目的在于减少对数据库等有io操作的场景,可以加快sink流速,减少io错误(例如数据库版本冲突报警)。当然,本方案是否执行需要根据数据的使用目的来确定,例如,处理数据的系统需要对商品一上午的发货量与下午的发货量进行比较,计算发货量的变化率,则需要分别将上午发货量以及下午发货量输出。
123.本示例实施方式中,步骤s201,将待处理数据中的同类型数据转换成具有统一格式的数据传输对象之前,所述方法还包括:步骤s101。
124.步骤s101,确定所述待处理数据的接收方式,并按照所述接收方式接收所述待处理数据,其中,所述接收方式为全量数据接收方式或增量数据接收方式。
125.具体的,设置为增量数据接收方式时,可不断累加上次导出之后的新数据里的增量数据,用来生成最终的全量数据。供输出后的sink再提供给其他加工程序使用。设置为全量数据接方式时,只要数据存在变动,则服务器便重新对全部数据进行再次接收。
126.具体的,在服务器接收数据之前,可以预先判断数据中是否存在大量的需要io计算的数据,例如,需要接收仓库维表数据,用户可以提前与仓库人员沟通并获取到仓库维表数据的存储类型,如果仓库维表数据的存储类型为表格或文档,则在数据接收转换的过程中便需要io计算,当需要进行io处理的数据量庞大时,会严重影响本方案中服务器的运行效率,例如发货时填写发货仓信息,如果接收方式为全量数据接收方式,不论什么信息被修改仓库信息都会跟随,这时候io的调用就会变成多次,即有多少条数据,接口就会被调用多少次,io就会消耗多少次。反之接收方式为增量数据接收方式,只有仓库信息写入时通知,其他信息变化时不会再带出已写入的仓库信息,这样io调用只有一次,io消耗也只有一次。这样数据从接入到计算完数据,整体上耗费的时间也就变短,框架上无论流速还是流量都会变大,也就是吞吐能力变强。
127.具体的,可以理解的是,本方案中,数据的接收方式需要根据数据的使用需求来确定。在需要对数据做加减乘除运算的时候,需要采用全量数据接方式接收数据。例如计算商品一当日的销售数量时,采用用全量数据接方式接收数据,当数据变化时,利用变化后的数据以及之前接收的数据重新计算销售量,相较于增量数据接方式,如果商品一在上午销售了10件,上午购买的顾客在下午进行了退单,下午销售了20件,则该模式下,下午客户退单的数据变化便不会体现在上午的销售量中,计算结果便会存在误差。因此,在计算具体数量的数据处理过程中,需要采用全量数据接方式接收数据,可以提高计算结果的准确度。
128.在本示例性实施例中,参考图3所示,本方案可以基于flink框架实现,具体的,服务器采用标准source数据源转换类函数接收数据(source),并为数据配置鉴权信息,服务器将配置有鉴权信息的数据按照数据类型进行分类,采用clazz函数设置输出的xxxdto数据传输对象类型,将每一类型的数据转换成对应的数据传输对象
×××
dto,将数据传输对象输入轴预设的函数fun中,即图3中的
×××
fun,处理数据的目的不同,其对应的预设函数也不同,
×××
dto经由对应的
×××
fun处理完成后,服务器根据使用需求选择载体类型,并为
×××
dto配置对应的载体,得到
×××
sink dto,服务器采用uk column类函数确

×××
sink dto中数据的主键,并采用doccontent转换类函数对
×××
sink dto进行标准类转换,得到转换后的outdoc;采用data out window process fun函数判断是否滑动窗口算法(window)以及归并排序算法(merger)对out doc进行汇集合并,并通过yn类函数删除
×××
sink dto中已经失效的数据,采用value类函数确定数据的接收方式为全量数据接收方式还是增量数据接收方式,数据接收方式确定完毕后,将处理完成的数据传输至目标地点,其中,目标地点可以是数据库,也可以是其他程序的数据接入端。需要说明的是,当数据接收方式为全量数据接收方式时,服务器可以采用change column类函数过滤
×××
sink dto中的重复数据,以减少计算量。
129.采用本方案提供的方法,开发不在过多关注差异较少的重复性工作,减少了出错的可能性。开发更多的关注于业务fun的实现,其他地方更多的由提供的标准类实现。相比更专注于业务实现,提高开发效率。降低产出时效。也正是因为更多的标准类出现,使传输的数据结构更加标准化。使加工变得更灵活,数据合并、拆分更容易,多样化和复杂计算场景变得可能,拓扑更容易维护。
130.进一步的,参考图4所示,在本示例性实施例中还提供了一种数据处理装置40,包括:
131.转换模块401,可以用于将待处理数据中的同类型数据转换成具有统一格式的数据传输对象。
132.处理模块402,可以用于采用预设处理函数处理所述数据传输对象中包含的数据,得到处理后数据。
133.配置模块403,可以用于为所述处理后数据配置对应的载体,得到输出流数据。
134.存储模块404,可以用于存储所述输出流数据。
135.在本示例性实施例中,所述转换模块401包括:
136.接收子模块,可以用于接收多源数据,并基于数据类型对所述多源数据分类,得到多个具有同类型数据的数据组。
137.选择子模块,可以用于根据所述数据组中数据的类型,选择对应的具有第一格式的数据传输对象,并使用具有所述第一格式的数据传输对象封装所述数据组,得到数据传输对象。
138.在本示例性实施例中,所述数据处理装置40还包括:
139.鉴权模块,可以用于为所述待处理数据配置对应的鉴权信息。
140.在本示例性实施例中,所述配置模块403包括:
141.处理子模块,可以用于基于使用目的原则,选择与所述处理后数据对应的具有第一类型的载体。
142.输出子模块,可以用于采用具有所述第一类型的载体搭载所述处理后数据,得到输出流数据。
143.在本示例性实施例中,所述存储模块404包括:
144.确定子模块,可以用于确定所述输出流数据的主键,并基于所述主键生成存储列表。
145.存储子模块,可以用于存储所述输出流数据以及与所述输出流数据对应的存储列表。
146.在本示例性实施例中,参考图5所示,所述数据处理装置40还包括:
147.第一计算模块405,可以用于采用滑动窗口算法处理所述输出流数据,输出第一数据;以及
148.第二计算模块406,可以用于采用归并排序算法处理所述输出流数据,得到第二数据;以用于存储所述第一数据以及所述第二数据。
149.在本示例性实施例中,所述数据处理装置还包括:
150.接收方式确定模块,可以用于确定所述待处理数据的接收方式,并按照所述接收方式接收所述待处理数据,其中,所述接收方式为全量数据接收方式或增量数据接收方式。
151.上述的数据处理装置中各模块的具体细节已经在对应的数据处理方法中进行了详细的描述,因此此处不再赘述。
152.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
153.在本公开的示例性实施例中,还提供了一种能够实现上述方法的计算机系统。
154.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
155.下面参照图6来描述根据本发明的这种实施方式的计算机系统600。图6显示的计算机系统600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
156.如图6所示,计算机系统600以通用计算设备的形式表现。计算机系统600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。
157.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图2中所示的步骤s201,将待处理数据中的同类型数据转换成具有统一格式的数据传输对象。步骤s202,采用预设处理函数处理所述数据传输对象中包含的数据,得到处理后数据。步骤s203,为所述处理后数据配置对应的载体,得到输出流数据。步骤s204,存储所述输出流数据。
158.存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。
159.存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
160.总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
161.计算机系统600也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备
等)通信,还可与一个或者多个使得用户能与该计算机系统600交互的设备通信,和/或与使得该计算机系统600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。还可以通过输入/输出(i/o)接口650连接显示单元640。并且,计算机系统600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与计算机系统600的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
162.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
163.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
164.参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
165.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
166.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
167.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
168.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的
过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
169.此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
170.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
171.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
再多了解一些

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

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

相关文献