1.本技术实施例涉及数据分析技术领域,尤其涉及一种流数据处理方法、装置、计算设备、计算机可读存储介质及计算机程序。
背景技术:2.流式数据是实时或接近实时的大数据流。流式数据处理可以简单地描述为是对数据的连续处理。量大流速快的流数据挖掘已经成为当今国际学术界大数据处理的研究热点。对于快速时变的流数据的处理存在着巨大的挑战。针对对流数据操作的大数据引擎,每天有数以亿计的数据经过各种抓取、过滤、合并等处理,最后通过大数据引擎呈现在用户面前。
3.目前,对于流数据的处理方法主要是数据流基于分布式流数据引擎结构化查询语言进行处理(structured query language,sql)。主要是将流数据存储到分布式流数据引擎上的动态表上,再通过sql查询成新的动态表,将新的动态表中流数据操作成数据流,下发给不同的大数据引擎。在这个过程中,对于流数据进行更新需要通过开窗口进行,但是因为流数据比较多,将其数据更新需要在内存或者硬盘上更新,而内存和硬盘的容量都是有限的,就会在实际场景中有局限性。同时分布式流数据引擎在对结构化查询语言时,每一次查询都需要先关联再查询,浪费时间,不能快速查询,从而造成资源浪费问题。
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.图1为本技术实施例提供的一种流数据处理方法的系统架构图;
46.图2为本技术实施例提供的一种流数据处理方法流程图;
47.图3为本技术实施例提供的另一种流数据处理方法流程图;
48.图4为本技术实施例提供的一种流数据处理方法具体过程图;
49.图5为本技术实施例提供的一种流数据处理装置图;
50.图6为本技术实施例提供的一种计算设备。
具体实施方式
51.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
52.参照图1,图1为本技术实施例提供的一种流数据处理方法的系统架构图,该系统至少包括实例数据库101、数据采集中心102、数据流引擎103、数据仓库104、大数据引擎105。
53.实例数据库101在本技术实施例中可以理解成流数据的来源,流数据的来源可以是来源实例数据库1或实例数据库2等,在这里不做唯一限定。
54.数据采集中心102是对在实例数据库101的流数据进行采集,最终将采集的流式数据存入到数据采集中心102中。
55.数据流引擎103,其核心是利用计算机语言爪哇语言(java)和斯卡拉(scala)编写的数据流引擎,主要以数据并行和流水线方式执行任意流式数据程序在数据流引擎103中具有对流数据进行处理、开窗口、合并等分布式处理的功能。
56.数据仓库104是将处理好的流数据进行存储分布和合并处理的数据库,这里数据仓库104可以是包含具有同构表和明细表功能的数据库。
57.大数据引擎105主要是对经过数据仓库104的流数据基于业务需要流入不同的大数据引擎105中,来自数据仓库104的流数据可以流入多个大数据引擎,在这里不做唯一限定。大数据引擎105也可以直接从数据流引擎103获取处理后的数据。
58.实例数据库101、数据采集中心102、数据流引擎103、数据仓库104、大数据存数引擎105可以通过有线网络进行连接,也可以通过无线网络来连接,本技术在此不做限制。
59.本技术实施例提供的是流数据处理方法,针对具体的处理方法流程如图2所示,图2为本技术实施例提供的一种流数据处理方法流程图,适用于以数据流方式处理采集的任一数据表,包括:
60.s201.数据流引擎获取第一数据表的任一流数据,若所述第一数据表对应的第一单表中存在所述流数据的主键,则根据所述流数据的事件时间确定是否更新所述流数据至
所述第一单表中;
61.流数据是以字符串形式存在的,这种数据称为流数据。在真实作业中需要对流数据转换成数据表的形式进行操作。数据流引擎在获取第一数据表中的任一流数据后,会根据获取到的流数据的主键的事件时间来进行判断更新,最后写入到第一单表当中。
62.例如,在数据流引擎中有一条在2022年9月30日12点发生了主键为1和2的流数据,而在2022年9月30日12点02分也有一条主键为1的流数据,在12点主键为1所对应的流数据记录的是120,主键为2所对应的流数据记录的是100,在12点02分所对应的流数据记录的是130。此种情况下就会将主键为1对应记录为130的流数据和主键为2对应记录为100的流数据写入到第一单表当中。
63.s202.所述数据流引擎针对与所述第一单表存在关联关系的至少一个第二单表,分别从所述第一单表和从所述第二单表中获取同一主键对应的合并信息并组成宽表。
64.在流数据处理过程中,会出现具有相关联的流数据第二单表,将基于主键的判断将第一单表和第二单表进行合并在一张宽表上。比如,第一单表是针对贵金属的业务表,主键对应的也是贵金属;而第二单表上记录的是针对贵金属和外汇处理的业务表,第二单表中会具有贵金属对应的主键,此时,贵金属对应的主键在第二单表中可能仅是第二单表的非主键,也可能是第二单表的主键;此时就会将第一单表的流数据和第二单表中针对贵金属的流数据进行读取出来存储到一张宽表当中。其中,针对相关联的单表不局限于本技术中提出的第二单表,还可以有其他单表或更多单表的合并,具体以业务需求的宽表设计逻辑为准,在此不做限定。
65.针对流数据的事件时间确定是否更新的流数据至所述第一单表中,具体流程如图3,图3为申请提供的另一种流数据处理方法流程图,包括:
66.s301.确定所述第一单表中所述主键对应的最新的第一事件时间;
67.事件时间指的是一个数据实际产生的时间点,即事件真实发生的时间。主键是被挑选出来,作表的行的唯一标识的候选关键字,也就是说基于主键可以用来区分流数据。
68.s302.若所述流数据的第二事件时间不早于所述第一事件时间,则将所述流数据更新至所述第一单表中;否则,丢弃所述流数据。
69.每一个主键的流数据都会有一个对应的事件时间,对于相同的主键就选取事件时间最新的作为保留。比如,有相同主键为1的两条流数据a和b,a所发生的事件时间是12点,b对应的事件时间是12点01分,在这种情况下,就保留流数据b,丢掉流数据a。
70.由于流数据的不间断特性,为了便于对流数据进行更高效的处理,本技术实施例中针对数据流引擎获取第一数据表任一流数据,提供了一种具体实现方式,包括:
71.数据流引擎以窗口方式获取第一数据表中的各流数据;
72.所述数据流引擎对处于同一窗口内的各流数据,确定是否存在相同主键的流数据,并丢弃具有相同主键且事件时间滞后的流数据。
73.窗口是个操作界面,就是在计算机中眼睛能看到的框选数据的操作环境。可以理解成将流数据基于业务需要自主设置参数将流数据框进窗口当中。自主设置参数可以以时间为依据也可以以流数据量为依据。比如设置参数为200条流数据为一个窗口,也可以是200毫秒为一个窗口。通过对处于同一窗口的各数据流会出现相同主键的流数据,基于相同主键判断保留事件时间最晚的流数据为最终数据。
74.数据流引擎具有多个处理单元,为了加快对流数据的处理,可以对流数据进行分流处理,具体来说,包括:所述数据流引擎获取第一数据表的任一流数据,根据所述流数据的主键确定在所述数据流引擎中用于处理所述流数据的第一处理单元;
75.所述第一处理单元以窗口方式获取属于所述第一处理单元的各流数据;所述第一处理单元用于完成流数据至单表的更新。
76.对于第一数据表中的流数据需要对流数据进行处理,基于主键来确定第一流数据对应的第一处理单元。第一处理单元是基于主键进行划分的。通过对主键进行判断来确定对应的处理单元。比如主键为1的流数据对应的是处理单元a1,主键为2的流数据对应的是处理单元a2,等等。
77.分流处理的具体实现方式可以是对主键取余的方式来确定对应的第一处理单元,因而每个第一处理单元中可能具有多个不同的主键对应的流数据,也可能只具有一个主键对应的流数据。分流处理后,多个第一处理单元可以并行对属于自己的各流数据进行单表更新操作了。
78.同样,针对步骤s202中,从第一单表和第二单表中获取同一主键对应的合并信息并组成宽表的操作,也可以进行分流操作,通过多个第二处理单元来进行并行处理。具体来说,通过相同主键,确定所述数据流引擎中用于处理所述同一主键对应的合并信息的第二处理单元;
79.根据相同主键为依据去确定第一单表具有关联关系的第二单表,接着依据主键确定第二单表对应的第二处理单元。第一单表是主键是贵金属,第二单表中主键也是贵金属,主键相同,确定第一单表和第二单表相关联,基于主键将同为贵金属的流数据的信息合并。比如第一单表中记录了贵金属的名称、材质、价格。第二单表中记录贵金属的名称、来源。以名称作为主键进行两个单表的合并。
80.然后以窗口方式获取属于所述第二处理单元的各合并信息,并组成宽表。
81.接着上面的例子,比如第一单表中记录了贵金属的名称、材质、价格。第二单表中记录贵金属的名称、来源。将第一单表和第二单表进行合并成宽表,那对应的宽表记录的就应该是贵金属名称、材质、价格、来源。
82.其中,所述单表为同构表,所述宽表为明细表。在上述组成宽表之后,将所述宽表发送至不同的数据搜索引擎,或数据存储引擎;
83.宽表中记录着流数据的所有信息,将宽表下发给不同的数据引擎,可以是数据搜索引擎、也可以是数据存储引擎。
84.还可以是将所述宽表存储至数据仓库,所述数据仓库用于不同的数据搜索引擎或数据存储引擎进行访问。
85.在上面得到宽表数据将它存在数据仓库中,数据仓库用于不同的数据搜索引擎或数据存储引擎进行访问。当然也可以不存在数据仓库中,数据搜索引擎或数据存储引擎直接对宽表进行访问。
86.如图4,图4为本技术实施例提供的一种流数据处理方法具体过程图,包括:
87.从实例数据库中采集的流数据形成a、b、c表,这里我们以a表包含的业务是贵金属和外汇;b表包含的业务是贵金属;c表包含的业务是外汇。首先将a、b、c三个数据表中的流数据分别进行清洗过滤,并且基于依据主键取余的方式分流处理,即处理阶段;紧接着对处
理好的流数据进行开窗口,基于业务实际情况自主设置参数进行累积流数据,在这个过程中对于相同主键的流数据针对事件时间进行更新;将更新的流数据到同构表中,形成a1、b1、c1;对上述数据获取主键的相同的流数据进行合并,a1中既有贵金属又有外汇的流数据,将与贵金属相关的流数据进行读取出来和b1表中记录的流数据进行合并,与外汇有关的流数据读取出来与c1表中外汇的流数据进行合并;将合并的数据写入宽表中。
88.实施性地,基于相同的技术构思,如图5所示,本技术实施例提供了一种流处理装置图。
89.获取单元501,用于获取第一数据表的任一流数据;
90.更新单元502,用于若所述第一数据表对应的第一单表中存在所述流数据的主键,则根据所述流数据的事件时间确定是否更新所述流数据至所述第一单表中;
91.合并单元503,用于针对与所述第一单表存在关联关系的至少一个第二单表,分别从所述第一单表和从所述第二单表中获取同一主键对应的合并信息并组成宽表。
92.实施性地,更新单元502,具体用于确定所述第一单表中所述主键对应的最新的第一事件时间;若所述流数据的第二事件时间不早于所述第一事件时间,则将所述流数据更新至所述第一单表中;否则,丢弃所述流数据。
93.实施性地,获取单元501,具体用于数据流引擎以窗口方式获取第一数据表中的各流数据;
94.丢弃单元504,还用于在是否更新所述流数据至所述第一单表中之前,对处于同一窗口内的各流数据,确定是否存在相同主键的流数据,并丢弃具有相同主键且事件时间滞后的流数据。
95.实施性地,获取单元501,具体用于所述数据流引擎获取第一数据表的任一流数据,根据所述流数据的主键确定在所述数据流引擎中用于处理所述流数据的第一处理单元;
96.第一处理单元505,用于以窗口方式获取属于所述第一处理单元的各流数据;所述第一处理单元用于完成流数据至单表的更新。
97.实施性地,合并单元503,具体用于基于所述同一主键,确定所述数据流引擎中用于处理所述同一主键对应的合并信息的第二处理单元;
98.第二处理单元506,用于以窗口方式获取属于所述第二处理单元的各合并信息,并组成宽表形式的明细表。
99.实施性地,发送单元507,用于将所述宽表发送至不同的数据搜索引擎,或数据存储引擎;
100.存储单元508,用于将所述宽表存储至数据仓库,所述数据仓库用于不同的数据搜索引擎或数据存储引擎进行访问。
101.基于相同的技术构思,本发明实施例还提供了一种计算设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本发明实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
102.在本发明实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的基于流数据处理方法所包
括的步骤。
103.其中,处理器601是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而实现数据处理。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
104.处理器601可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合基于流数据处理实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
105.存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
106.基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述基于流数据处理方法的步骤。
107.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
108.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
109.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
110.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
111.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:1.一种流数据处理方法,其特征在于,适用于以数据流方式处理采集的任一数据表,所述方法包括:数据流引擎获取第一数据表的任一流数据,若所述第一数据表对应的第一单表中存在所述流数据的主键,则根据所述流数据的事件时间确定是否更新所述流数据至所述第一单表中;所述数据流引擎针对与所述第一单表存在关联关系的至少一个第二单表,分别从所述第一单表和从所述第二单表中获取同一主键对应的合并信息并组成宽表。2.如权利要求1所述的方法,其特征在于,根据所述流数据的事件时间确定是否更新所述流数据至所述第一单表中,包括:确定所述第一单表中所述主键对应的最新的第一事件时间;若所述流数据的第二事件时间不早于所述第一事件时间,则将所述流数据更新至所述第一单表中;否则,丢弃所述流数据。3.如权利要求1所述的方法,其特征在于,数据流引擎获取第一数据表的任一流数据,包括:数据流引擎以窗口方式获取第一数据表中的各流数据;根据所述流数据的事件时间确定是否更新所述流数据至所述第一单表中之前,还包括:所述数据流引擎对处于同一窗口内的各流数据,确定是否存在相同主键的流数据,并丢弃具有相同主键且事件时间滞后的流数据。4.如权利要求3所述的方法,其特征在于,数据流引擎以窗口方式获取第一数据表中的各流数据,包括:所述数据流引擎获取第一数据表的任一流数据,根据所述流数据的主键确定在所述数据流引擎中用于处理所述流数据的第一处理单元;所述第一处理单元以窗口方式获取属于所述第一处理单元的各流数据;所述第一处理单元用于完成流数据至单表的更新。5.如权利要求3所述的方法,其特征在于,获取同一主键对应的合并信息并组成宽表,包括:基于所述同一主键,确定所述数据流引擎中用于处理所述同一主键对应的合并信息的第二处理单元;所述第二处理单元以窗口方式获取属于所述第二处理单元的各合并信息,并组成宽表。6.如权利要求1-5任一项所述的方法,其特征在于,所述单表为同构表,所述宽表为明细表;组成宽表之后,还包括:将所述宽表发送至不同的大数据搜索引擎,或数据存储引擎;将所述宽表存储至数据仓库,所述数据仓库用于不同的大数据搜索引擎或数据存储引擎进行访问。7.一种流数据处理装置,其特征在于,包括:更新单元,用于获取第一数据表的任一流数据,若所述第一数据表对应的第一单表中的存在所述流数据的主键,则根据所述流数据的事件时间确定是否更新所述流数据至所述
第一单表中;获取单元,用于针对与所述第一单表存在关联关系的至少一个第二单表,分别从所述第一单表和从所述第二单表中获取同一主键对应的合并信息并组成宽表。8.一种计算设备,其特征在于,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至6任一所述的方法。9.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行如权利要求1至6任一所述的方法。10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一所述的方法。
技术总结本申请实施例提供了一种流数据处理方法、装置,涉及数据分析技术领域,该方法包括:适用于以数据流方式处理采集的任一数据表,所述方法包括数据流引擎获取第一数据表的任一流数据,若所述第一数据表对应的第一单表中存在所述流数据的主键,则根据所述流数据的事件时间确定是否更新所述流数据至所述第一单表中;所述数据流引擎针对与所述第一单表存在关联关系的至少一个第二单表,分别从所述第一单表和从所述第二单表中获取同一主键对应的合并信息并组成宽表。通过以上的流数据处理方法,可以有效的处理流数据基于业务需求不受限制进行不断实时更新,同时也可以达到毫秒级的流数据查询,减少了资源的浪费。减少了资源的浪费。减少了资源的浪费。
技术研发人员:曹海傧
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2022.10.27
技术公布日:2022/12/16