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

用于流式计算的数据处理方法、装置、设备及介质与流程

2022-07-16 11:09:54 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,尤其涉及一种用于流式计算的数据处理方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.流式计算是大数据应用场景中较为普遍的一种计算模式,是针对大规模的流动数据在不断变化的过程中,对数据进行实时地计算,以满足在极短的时间内完成相关数据的新增、更新及删除的需求。当前在大数据流式计算场景中,业界主要采用以下两种方案:
3.第一种方案是读时合并,例如,非关系型数据库apache hbase即是采用这种方案。这种方案将新增、更新、删除等用户操作记录在lsm树 (log-structured mergetree,日志结构合并树)中,当用户读取数据时,该方案根据lsm树中记录的操作日志进行日志合并及数据分析计算,得到最新的数据。这种方案需要存储大量的用户操作记录,会在存储系统中产生大量的碎片化的文件,对数据存储造成压力。
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.数据更新处理模块,用于监听到用户对所述预设数据执行更新操作时,识别所述更新操作对应的待更新数据所在的分桶,从所述待更新数据所在的分桶中获取所述待更新数据,并根据所述更新操作更新所述待更新数据。
43.为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
44.存储器,存储至少一个计算机程序;及
45.处理器,执行所述存储器中存储的程序以实现上述所述的用于流式计算的数据处理方法。
46.为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的用于流式计算的数据处理方法。
47.本发明实施例通过定时合并及删除新增数据操作及删除数据操作产生的新增数据文件及删除数据文件,避免了新增数据文件及删除数据文件激增的情况,减轻了存储压力,根据所述合并结果刷新所述预设数据,可以减少刷新所述预设数据计算的计算量,对预设数据进行分区分桶的存储,无论对所述预设数据执行新增操作、数据删除操作还是更新操作,均可以扫描对应的分区及分桶获取相应的数据,不需要进行全量数据的扫描,减少了数据扫描的开销。因此,本发明可以提升流式计算的效率。
附图说明
48.图1为本发明一实施例提供的用于流式计算的数据处理方法的流程示意图;
49.图2为图1所示用于流式计算的数据处理方法中其中一个步骤的详细实施流程示意图;
50.图3为本发明一实施例提供的用于流式计算的数据处理装置的功能模块图;
51.图4为本发明一实施例提供的实现所述用于流式计算的数据处理方法的电子设备的结构示意图。
52.本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
53.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
54.本技术实施例提供一种用于流式计算的数据处理方法。所述用于流式计算的数据处理方法的执行主体包括但不限于服务端、终端等能够被配置为执行本技术实施例提供的该方法的电子设备中的至少一种。换言之,所述用于流式计算的数据处理方法可以由安装
在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network, cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
55.参照图1所示,为本发明一实施例提供的用于流式计算的数据处理方法的流程示意图。在本实施例中,所述用于流式计算的数据处理方法包括:
56.s1、对预设数据进行分区,并将每个所述分区内的数据划分成不同的分桶进行存储;
57.本发明实施例中,所述预设数据是指授权可以访问的数据,例如,用户网页浏览数据、用户订单数据等。所述预设数据可以是结构化数据,存储在关系型数据库中,例如,database数据库。
58.本发明实施例中,为了避免每次对所述预设数据中的特定数据进行增加、删除、更新等操作时进行全部扫描所有预设数据,对预设数据进行分区及分桶的存储。
59.本发明实施例中,所述分区是指在创建数据表时,为所述数据表指定特定的分区空间,其中,所述分区空间对应不同的文件目录,这样可以通过分区查找相关数据,就不用扫描所述预设数据的所有数据,只需要扫描指定分区的数据。
60.本发明实施例中,所述分桶是指在分区的基础上,通过对分区中的数据文件指定特定列,并对所述特定列进行哈希计算得到每个所述特定列对应的哈希值,将同一哈希值对应的数据文件存放在同一桶中,分桶是更细粒度的数据范围划分。
61.详细地,所述对预设数据进行分区,并将每个所述分区内的数据划分成不同的分桶进行存储,包括:利用预设的分区键将所述预设数据划分成不同的分区;利用预设的分桶键将每个所述分区内的数据划分为不同的分桶;创建与所述分桶数量一致的数据表;逐个将每个所述分区内每个所述分桶对应的数据存储到同一所述数据表中。
62.本发明实施例中,所述预设的分区键及所述预设的分区键,可以根据实际情况预先指定。
63.示例性的,名称为goods-price的数据表,包括商品id、商品名称及商品单价等字段。所述预设的分区键为价格级别,所述价格级别包括a、b、c三种,根据所述分区键将所述名称为goods-price的数据表进行分区存储的效果如下:
64./hive/test.db/goods-price/rank=a
65./hive/test.db/goods-price/rank=b
66./hive/test.db/goods-price/rank=c
67.其中,所述/hive/test.db/goods-price/rank=a表示将goods-price数据表中商品价格级别属于a范围的数据存储到目录/hive/test.db/goods-price/rank=a 下。可以理解的是,每个分区存储的数据对应的表结构没有变化,还是与数据表goods-price的表结构一致,只是对应的数据不同。
68.本发明实施例中,所述预设的分区键可以是通过某一分区中存储的数据表中的某一个字段执行哈希计算得到,将具有相同取值的哈希值对应数据记录存储到统一分桶文件中。
69.本发明另一可选实施例中,可以创建基于apache iceberg存储格式的数据表,
apache iceberg是一种适用于流式计算的存储组件,支持分区变更等功能,有利于对分区及分桶后的所述预设数据进行维护。
70.s2、监听到用户对所述预设数据执行新增操作或删除操作时,生成相应的新增数据文件及删除数据文件,并将所述新增数据文件及所述删除数据文件存储到对应的分区及分桶中;
71.本发明实施例中,以线上购物场景为例,用户添加商品到购物车,则产生一条购物车增加数据的操作记录,用户从购物车中删除一种商品,则产生一条购物车删除数据的操作记录。可以理解的是,线上购物的用户很多,同一时刻,会产生大量的用户新增数据或删除数据的操作,通常在流式计算场景中,系统不会每产生一条数据新增记录或删除记录就执行相应的数据计算,而是将对应的操作记录进行存储,当用户需要获取最新数据时,才会根据相应的操作记录进行数据新增或删除的计算,最终呈现给用户最新的数据。
72.详细地,所述生成相应的新增数据文件,包括:获取所述新增操作对应的新增操作记录;解析所述新增操作记录得到新增操作数据信息,其中,所述新增操作数据信息包含待操作数据表;识别所述待操作数据表的表结构;根据所述新增操作数据信息生成与所述待操作数据表的表结构一致的数据文件,将所述数据文件作为新增数据文件。
73.本发明实施例中,所述新增操作数据信息包含待操作数据表、操作类型、操作条件、待操作字段、字段变化量及操作生成时间等信息。
74.示例性的,若所述待操作数据表为商品订购表,相应的表结构为“用户 id商品id商品单价商品订购量”。所述新增操作数据信息中操作类型为新增、操作条件为用户id为00123且商品id为045,所述商品单价为68、所述待操作字段为商品订购量,所述字段字段变化量为3,则所述根据所述新增操作数据信息生成与所述待操作数据表的表结构一致的数据文件对应的内容为“00123 045 68 3”。
75.本发明实施例中,生成相应的删除数据文件的方法与所述生成相应的新增数据文件的方法相同,这里不再赘述。
76.详细地,所述将新增数据文件存储到对应的分区及分桶中,包括:识别所述新增数据文件对应的分区键及分桶键;利用所述新增数据文件对应的分区键定位所述新增数据文件所在的分区;在所述新增数据文件所在的分区中,根据所述新增数据文件对应的分桶键定位所述新增数据文件所在的分桶;扫描所述新增数据文件所在的分桶中的数据表,将所述新增数据文件插入到所述新增数据文件所在的分桶中的数据表的最后一行。
77.本发明实施例中,将所述删除数据文件存储到对应的分区及分桶中的方法与所述将新增数据文件存储到对应的分区及分桶中,这里不再赘述。
78.s3、定时获取每个所述分区及每个所述分桶内的新增数据文件及删除数据文件进行合并得到合并结果,根据所述合并结果刷新所述预设数据,并删除已合并的新增数据文件及已合并的删除数据文件;
79.本发明实施例中,常规的流式计算场景中,通常是当用户需要获取最新数据时,系统进行相应的新增数据文件及删除数据文件的合并计算,以获得最新数据,这种情况,可能会导致系统中存储的所述新增数据文件及所述删除数据文件的激增或积压挤占内存,同时也会增加合并计算的工作量,导致用户获取最新数据存在一定的时延。因此,本发明实施示例中,定时合并所述新增数据文件及所述删除数据文件,一方面避免了所述新增数据文件
及所述删除数据文件激增的情况,另一方面可以减少合并计算的工作量。
80.详细地,参阅图2所示,所述定时获取每个所述分区及每个所述分桶内的新增数据文件及删除数据文件进行合并,包括:
81.s31、根据预设的定时任务,定时扫描所述预设数据的每个所述分区及每个所述分桶;
82.s32、获取每个所述分区内每个所述分桶中的新增数据文件及删除数据文件;
83.s33、逐个将每个所述分桶内的新增数据文件及删除数据文件进行第一次合并,得到第一合并数据文件;
84.s34、逐个将同一分区内所有所述第一合并数据文件进行第二次合并得到所述合并结果。
85.进一步地,所述获取每个所述分区内每个所述分桶中的新增数据文件及删除数据文件,包括:获取每个所述预设的定时任务的执行时间点;将预设的时间差与每个所述执行时间点相加,得到文件覆盖时间段;获取每个所述分区内每个所述分桶中所述文件覆盖时间段内产生的新增数据文件及删除数据文件。
86.示例性的,若一个预设的定时任务的执行时间点为15:00,所述预设的时间差为30分钟,则所述文件覆盖时间段为14:30至15:30,则需要获取在 14:30至15:30时间段内生成的新增数据文件及删除数据文件。
87.详细地,所述逐个将每个所述分桶内的新增数据文件及删除数据文件进行第一次合并,得到第一合并数据文件,包括:解析每个所述分桶内的新增数据文件及删除数据文本得到每个新增数据文件及每个所述删除数据文件对应的操作数据表及操作字段;将每个所述分桶中同一所述操作数据表且同一所述操作字段对应的新增数据文件及删除数据文件进行数据求和计算,得到所述第一合并数据文件。
88.本发明实施例中,可以利用流式计算中“读时合并”技术,根据所述合并结果刷新所述预设数据。
89.本发明另一可选实施例中,若所述预设的定时任务的执行时间点未到达时,若用户发起获取最新数据的请求,可以根据所述获取最新数据的请求执行对新增数据文件及删除数据文件的合并操作,其中,需要合并的新增数据文件及删除数据文件为系统中存储的未被删除的相关新增数据文件及删除数据文件。
90.s4、监听到用户对所述预设数据执行更新操作时,识别所述更新操作对应的待更新数据所在的分桶,从所述待更新数据所在的分桶中获取所述待更新数据,并根据所述更新操作更新所述待更新数据。
91.本发明实施例中,可以通过解析所述更新操作得到待更新数据,识别所述待更新数据对应的分区键,利用所述待更新数据对应的分区键定位所述待更新数据所在的分桶,利用流式计算中“写时复制”的技术,将所述待更新数据从所述待更新数据所在的分桶中取出,再根据所述更新操作对所述待更新数据进行更新,将更新后的数据写回所述待更新数据所在的分桶中。
92.可以理解的是,常规的流式计算场景中,通常每次数据更新操作,需要将待更新数据对应的数据块从对应的存储中取出,完成数据更新后,再将更新后的数据块写回到原存储中,每次数据的读取和写入涉及的数据块的数据规模比较大,相应的数据读写开销比较
大。本发明实施例中,通过对数据的分区分桶存储,可以将数据量较大的数据块拆分成数据量相对较小的数据并以分桶文本的形式存在,每次需要对数据更新时,仅需要扫描待更新数据所在的分桶文件,快速定位及获取待更新数据,减少了数据读出与写入的开销。
93.本发明实施例通过定时合并及删除新增数据操作及删除数据操作产生的新增数据文件及删除数据文件,避免了新增数据文件及删除数据文件激增的情况,减轻了存储压力,根据所述合并结果刷新所述预设数据,可以减少刷新所述预设数据计算的计算量,对预设数据进行分区分桶的存储,无论对所述预设数据执行新增操作、数据删除操作还是更新操作,均可以扫描对应的分区及分桶获取相应的数据,不需要进行全量数据的扫描,减少了数据扫描的开销。因此,本发明可以提升流式计算的效率。
94.如图3所示,是本发明一实施例提供的用于流式计算的数据处理装置的功能模块图。
95.本发明所述用于流式计算的数据处理装置100可以安装于电子设备中。根据实现的功能,所述用于流式计算的数据处理装置100可以包括数据分区及分桶模块101、数据增删文件生成模块102、数据增删文件合并模块103及数据更新处理模块104。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
96.在本实施例中,关于各模块/单元的功能如下:
97.所述数据分区及分桶模块101,用于对预设数据进行分区,并将每个所述分区内的数据划分成不同的分桶进行存储;所述数据增删文件生成模块102,用于监听到用户对所述预设数据执行新增操作或删除操作时,生成相应的新增数据文件及删除数据文件,并将所述新增数据文件及所述删除数据文件存储到对应的分区及分桶中;
98.所述数据增删文件合并模块103,用于定时获取每个所述分区及每个所述分桶内的新增数据文件及删除数据文件进行合并得到合并结果,根据所述合并结果刷新所述预设数据,并删除已合并的新增数据文件及已合并的删除数据文件;
99.所述数据更新处理模块104,用于监听到用户对所述预设数据执行更新操作时,识别所述更新操作对应的待更新数据所在的分桶,从所述待更新数据所在的分桶中获取所述待更新数据,并根据所述更新操作更新所述待更新数据。
100.详细地,所述用于流式计算的数据处理装置100各模块的具体实施方式如下:
101.步骤一、对预设数据进行分区,并将每个所述分区内的数据划分成不同的分桶进行存储;
102.本发明实施例中,所述预设数据是指授权可以访问的数据,例如,用户网页浏览数据、用户订单数据等。所述预设数据可以是结构化数据,存储在关系型数据库中,例如,database数据库。
103.本发明实施例中,为了避免每次对所述预设数据中的特定数据进行增加、删除、更新等操作时进行全部扫描所有预设数据,对预设数据进行分区及分桶的存储。
104.本发明实施例中,所述分区是指在创建数据表时,为所述数据表指定特定的分区空间,其中,所述分区空间对应不同的文件目录,这样可以通过分区查找相关数据,就不用扫描所述预设数据的所有数据,只需要扫描指定分区的数据。
105.本发明实施例中,所述分桶是指在分区的基础上,通过对分区中的数据文件指定
特定列,并对所述特定列进行哈希计算得到每个所述特定列对应的哈希值,将同一哈希值对应的数据文件存放在同一桶中,分桶是更细粒度的数据范围划分。
106.详细地,所述对预设数据进行分区,并将每个所述分区内的数据划分成不同的分桶进行存储,包括:利用预设的分区键将所述预设数据划分成不同的分区;利用预设的分桶键将每个所述分区内的数据划分为不同的分桶;创建与所述分桶数量一致的数据表;逐个将每个所述分区内每个所述分桶对应的数据存储到同一所述数据表中。
107.本发明实施例中,所述预设的分区键及所述预设的分区键,可以根据实际情况预先指定。
108.示例性的,名称为goods-price的数据表,包括商品id、商品名称及商品单价等字段。所述预设的分区键为价格级别,所述价格级别包括a、b、c三种,根据所述分区键将所述名称为goods-price的数据表进行分区存储的效果如下:
109./hive/test.db/goods-price/rank=a
110./hive/test.db/goods-price/rank=b
111./hive/test.db/goods-price/rank=c
112.其中,所述/hive/test.db/goods-price/rank=a表示将goods-price数据表中商品价格级别属于a范围的数据存储到目录/hive/test.db/goods-price/rank=a 下。可以理解的是,每个分区存储的数据对应的表结构没有变化,还是与数据表goods-price的表结构一致,只是对应的数据不同。
113.本发明实施例中,所述预设的分区键可以是通过某一分区中存储的数据表中的某一个字段执行哈希计算得到,将具有相同取值的哈希值对应数据记录存储到统一分桶文件中。
114.本发明另一可选实施例中,可以创建基于apache iceberg存储格式的数据表,apache iceberg是一种适用于流式计算的存储组件,支持分区变更等功能,有利于对分区及分桶后的所述预设数据进行维护。
115.步骤二、监听到用户对所述预设数据执行新增操作或删除操作时,生成相应的新增数据文件及删除数据文件,并将所述新增数据文件及所述删除数据文件存储到对应的分区及分桶中;
116.本发明实施例中,以线上购物场景为例,用户添加商品到购物车,则产生一条购物车增加数据的操作记录,用户从购物车中删除一种商品,则产生一条购物车删除数据的操作记录。可以理解的是,线上购物的用户很多,同一时刻,会产生大量的用户新增数据或删除数据的操作,通常在流式计算场景中,系统不会每产生一条数据新增记录或删除记录就执行相应的数据计算,而是将对应的操作记录进行存储,当用户需要获取最新数据时,才会根据相应的操作记录进行数据新增或删除的计算,最终呈现给用户最新的数据。
117.详细地,所述生成相应的新增数据文件,包括:获取所述新增操作对应的新增操作记录;解析所述新增操作记录得到新增操作数据信息,其中,所述新增操作数据信息包含待操作数据表;识别所述待操作数据表的表结构;根据所述新增操作数据信息生成与所述待操作数据表的表结构一致的数据文件,将所述数据文件作为新增数据文件。
118.本发明实施例中,所述新增操作数据信息包含待操作数据表、操作类型、操作条件、待操作字段、字段变化量及操作生成时间等信息。
119.示例性的,若所述待操作数据表为商品订购表,相应的表结构为“用户 id商品id商品单价商品订购量”。所述新增操作数据信息中操作类型为新增、操作条件为用户id为00123且商品id为045,所述商品单价为68、所述待操作字段为商品订购量,所述字段字段变化量为3,则所述根据所述新增操作数据信息生成与所述待操作数据表的表结构一致的数据文件对应的内容为“00123 045 68 3”。
120.本发明实施例中,生成相应的删除数据文件的方法与所述生成相应的新增数据文件的方法相同,这里不再赘述。
121.详细地,所述将新增数据文件存储到对应的分区及分桶中,包括:识别所述新增数据文件对应的分区键及分桶键;利用所述新增数据文件对应的分区键定位所述新增数据文件所在的分区;在所述新增数据文件所在的分区中,根据所述新增数据文件对应的分桶键定位所述新增数据文件所在的分桶;扫描所述新增数据文件所在的分桶中的数据表,将所述新增数据文件插入到所述新增数据文件所在的分桶中的数据表的最后一行。
122.本发明实施例中,将所述删除数据文件存储到对应的分区及分桶中的方法与所述将新增数据文件存储到对应的分区及分桶中,这里不再赘述。
123.步骤三、定时获取每个所述分区及每个所述分桶内的新增数据文件及删除数据文件进行合并得到合并结果,根据所述合并结果刷新所述预设数据,并删除已合并的新增数据文件及已合并的删除数据文件;
124.本发明实施例中,常规的流式计算场景中,通常是当用户需要获取最新数据时,系统进行相应的新增数据文件及删除数据文件的合并计算,以获得最新数据,这种情况,可能会导致系统中存储的所述新增数据文件及所述删除数据文件的激增或积压挤占内存,同时也会增加合并计算的工作量,导致用户获取最新数据存在一定的时延。因此,本发明实施示例中,定时合并所述新增数据文件及所述删除数据文件,一方面避免了所述新增数据文件及所述删除数据文件激增的情况,另一方面可以减少合并计算的工作量。
125.详细地,所述定时获取每个所述分区及每个所述分桶内的新增数据文件及删除数据文件进行合并,包括:根据预设的定时任务,定时扫描所述预设数据的每个所述分区及每个所述分桶;获取每个所述分区内每个所述分桶中的新增数据文件及删除数据文件;逐个将每个所述分桶内的新增数据文件及删除数据文件进行第一次合并,得到第一合并数据文件;逐个将同一分区内所有所述第一合并数据文件进行第二次合并得到所述合并结果。
126.进一步地,所述获取每个所述分区内每个所述分桶中的新增数据文件及删除数据文件,包括:获取每个所述预设的定时任务的执行时间点;将预设的时间差与每个所述执行时间点相加,得到文件覆盖时间段;获取每个所述分区内每个所述分桶中所述文件覆盖时间段内产生的新增数据文件及删除数据文件。
127.示例性的,若一个预设的定时任务的执行时间点为15:00,所述预设的时间差为30分钟,则所述文件覆盖时间段为14:30至15:30,则需要获取在 14:30至15:30时间段内生成的新增数据文件及删除数据文件。
128.详细地,所述逐个将每个所述分桶内的新增数据文件及删除数据文件进行第一次合并,得到第一合并数据文件,包括:解析每个所述分桶内的新增数据文件及删除数据文本得到每个新增数据文件及每个所述删除数据文件对应的操作数据表及操作字段;将每个所述分桶中同一所述操作数据表且同一所述操作字段对应的新增数据文件及删除数据文件
进行数据求和计算,得到所述第一合并数据文件。
129.本发明实施例中,可以利用流式计算中“读时合并”技术,根据所述合并结果刷新所述预设数据。
130.本发明另一可选实施例中,若所述预设的定时任务的执行时间点未到达时,若用户发起获取最新数据的请求,可以根据所述获取最新数据的请求执行对新增数据文件及删除数据文件的合并操作,其中,需要合并的新增数据文件及删除数据文件为系统中存储的未被删除的相关新增数据文件及删除数据文件。
131.步骤四、监听到用户对所述预设数据执行更新操作时,识别所述更新操作对应的待更新数据所在的分桶,从所述待更新数据所在的分桶中获取所述待更新数据,并根据所述更新操作更新所述待更新数据。
132.本发明实施例中,可以通过解析所述更新操作得到待更新数据,识别所述待更新数据对应的分区键,利用所述待更新数据对应的分区键定位所述待更新数据所在的分桶,利用流式计算中“写时复制”的技术,将所述待更新数据从所述待更新数据所在的分桶中取出,再根据所述更新操作对所述待更新数据进行更新,将更新后的数据写回所述待更新数据所在的分桶中。
133.可以理解的是,常规的流式计算场景中,通常每次数据更新操作,需要将待更新数据对应的数据块从对应的存储中取出,完成数据更新后,再将更新后的数据块写回到原存储中,每次数据的读取和写入涉及的数据块的数据规模比较大,相应的数据读写开销比较大。本发明实施例中,通过对数据的分区分桶存储,可以将数据量较大的数据块拆分成数据量相对较小的数据并以分桶文本的形式存在,每次需要对数据更新时,仅需要扫描待更新数据所在的分桶文件,快速定位及获取待更新数据,减少了数据读出与写入的开销。
134.本发明实施例通过定时合并及删除新增数据操作及删除数据操作产生的新增数据文件及删除数据文件,避免了新增数据文件及删除数据文件激增的情况,减轻了存储压力,根据所述合并结果刷新所述预设数据,可以减少刷新所述预设数据计算的计算量,对预设数据进行分区分桶的存储,无论对所述预设数据执行新增操作、数据删除操作还是更新操作,均可以扫描对应的分区及分桶获取相应的数据,不需要进行全量数据的扫描,减少了数据扫描的开销。因此,本发明提供的用于流式计算的数据处理装置可以提升流式计算的效率。
135.如图4所示,是本发明一实施例提供的实现用于流式计算的数据处理方法的电子设备的结构示意图。
136.所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如用于流式计算的数据处理程序。
137.其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字 (secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器 11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1
的应用软件及各类数据,例如用于流式计算的数据处理程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
138.所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10 是所述电子设备的控制核心(control unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块 (例如用于流式计算的数据处理程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
139.所述总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
140.图4仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图4 示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
141.例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源 (比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10 逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
142.进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
143.可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器 (display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led 显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
144.应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
145.所述电子设备1中的所述存储器11存储的用于流式计算的数据处理程序是多个指令的组合,在所述处理器10中运行时,可以实现:
146.对预设数据进行分区,并将每个所述分区内的数据划分成不同的分桶进行存储;
147.监听到用户对所述预设数据执行新增操作或删除操作时,生成相应的新增数据文件及删除数据文件,并将所述新增数据文件及所述删除数据文件存储到对应的分区及分桶中;
148.定时获取每个所述分区及每个所述分桶内的新增数据文件及删除数据文件进行
合并得到合并结果,根据所述合并结果刷新所述预设数据,并删除已合并的新增数据文件及已合并的删除数据文件;
149.监听到用户对所述预设数据执行更新操作时,识别所述更新操作对应的待更新数据所在的分桶,从所述待更新数据所在的分桶中获取所述待更新数据,并根据所述更新操作更新所述待更新数据。
150.进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)。
151.本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
152.对预设数据进行分区,并将每个所述分区内的数据划分成不同的分桶进行存储;
153.监听到用户对所述预设数据执行新增操作或删除操作时,生成相应的新增数据文件及删除数据文件,并将所述新增数据文件及所述删除数据文件存储到对应的分区及分桶中;
154.定时获取每个所述分区及每个所述分桶内的新增数据文件及删除数据文件进行合并得到合并结果,根据所述合并结果刷新所述预设数据,并删除已合并的新增数据文件及已合并的删除数据文件;
155.监听到用户对所述预设数据执行更新操作时,识别所述更新操作对应的待更新数据所在的分桶,从所述待更新数据所在的分桶中获取所述待更新数据,并根据所述更新操作更新所述待更新数据。
156.在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
157.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
158.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
159.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
160.因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
161.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机
技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
162.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
163.此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
164.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

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

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

相关文献