CN111831383A - 窗口拼接方法、装置、设备以及存储介质 - Google Patents

窗口拼接方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN111831383A
CN111831383A CN202010700287.4A CN202010700287A CN111831383A CN 111831383 A CN111831383 A CN 111831383A CN 202010700287 A CN202010700287 A CN 202010700287A CN 111831383 A CN111831383 A CN 111831383A
Authority
CN
China
Prior art keywords
data
window
time
stream
scanning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010700287.4A
Other languages
English (en)
Inventor
田永生
朱良昌
陈星月
汪婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010700287.4A priority Critical patent/CN111831383A/zh
Publication of CN111831383A publication Critical patent/CN111831383A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请公开了窗口拼接方法、装置、设备以及存储介质,涉及数据处理、流式计算领域。具体实现方案为:将多条流在同一窗口内的数据按照主键进行存储;在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到该窗口的拼接数据;其中,该流的水位是根据该流的当前数据的时间戳确定的。本申请实施例能够减少窗口的数据丢失,提高窗口的数据拼接效率。

Description

窗口拼接方法、装置、设备以及存储介质
技术领域
本申请涉及计算机领域,尤其涉及数据处理、流式计算领域。
背景技术
流式计算中,在某些业务场景下进行窗口(window)拼接时,同一个窗口经常会出现部分数据乱序到达,比如8:00的数据9:00才到达系统。例如,10分钟的窗口,可能90%的数据能很快到达,但是剩余的10%的数据可能需要1小时或更久才能到达。当这部分数据延迟到达时,对应的窗口已经关闭,从而导致这部分数据丢失,影响拼接效率。
此外,通常的系统(例如Flink,Spark)会将窗口存储在内存里,在数据量很高窗口很大的场景下,内存很容易被撑爆,即内存占用率增长过快,使得内存运算速度变慢。
发明内容
本申请提供了一种窗口拼接方法、装置、设备以及存储介质。
根据本申请的一方面,提供了一种窗口拼接方法,包括:
将多条流在同一窗口内的数据按照主键进行存储;
在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到该窗口的拼接数据;
其中,该流的水位是根据该流的当前数据的时间戳确定的。
根据本申请的另一方面,提供了一种窗口拼接装置,包括:
存储模块,用于将多条流在同一窗口内的数据按照主键进行存储;
扫描模块,用于在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到该窗口的拼接数据;
其中,该流的水位是根据该流的当前数据的时间戳确定的。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行窗口拼接方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,该计算机指令用于使该计算机执行窗口拼接方法。
根据本申请实施例,能够减少窗口的数据丢失,提高窗口的数据拼接效率。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一实施例的窗口拼接方法的流程图;
图2是根据本申请另一实施例的窗口拼接方法的流程图;
图3是根据本申请另一实施例的窗口拼接方法的流程图;
图4是根据本申请的窗口拼接方法的应用场景的示意图;
图5是数据格式的示意图;
图6是进度格式的示意图;
图7是不同版本触发的示意图;
图8是根据本申请一实施例的窗口拼接装置的框图;
图9是根据本申请另一实施例的窗口拼接装置的框图;
图10是根据本申请实施例的窗口拼接方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请一实施例的窗口拼接方法的流程图,该方法可以包括:
S101、将多条流在同一窗口内的数据按照主键进行存储;
S102、在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到该窗口的拼接数据;
其中,该流的水位是根据该流的当前数据的时间戳确定的。
流式计算(stream computing,或者称为流计算)即是对数据流(简称流)进行计算。在流式计算中,数据以数据流的形式输入、处理和输出。流式计算可以是实时计算。示例性地,在流式计算中,窗口(window)拼接可以是拼接多条流在同一窗口具有相同主键(key)的数据。计算设备例如处理器可以获取每条流在同一窗口内的数据中的主键,将主键相同的数据按照主键存储在一起。例如,在外存或备用存储器(backstore)可以先存储主流的数据,再将与主流的数据的主键相同的从流的数据拼接到相同主键下。然后再将同一窗口内的数据整体下发到输出端(exporter)。
在流式计算中,数据是没有边界的,数据不断地从输入流向输出。但是计算是需要边界的,利用窗口可以将无限的数据流划分成一段一段的数据集。窗口可以理解为计算模型,窗口可以称为窗口模型,时间窗口等。窗口可以是一段时间范围,包括起始时间和结束时间。例如,某个窗口为[7:00,8:00],或者某个窗口为[9:00,11:00]。
在流式计算中,可以利用流的当前数据的时间戳来确定水位。例如,窗口为[7:00,8:00],如果计算设备收到的当前数据的时间戳表示7:10,则表示当前的水位为7:10,该窗口的水位尚低;如果计算设备收到的当前数据的时间戳表示7:50,则表示当前的水位为7:50,该窗口的水位将满;如果计算设备收到的当前数据的时间戳表示8:10,则表示当前的水位为8:10,该窗口的水位溢出。
在水位超出窗口的时长达到设定时长的情况下,可以触发对该窗口的扫描,从而得到该窗口的拼接数据。例如,如果收到当前数据的时间晚于窗口的结束时间,则可以认为水位超出窗口。水位超出窗口的时长可以为收到当前数据的时间与窗口的结束时间的差值。例如,窗口为[7:00,8:00],收到当前数据的时间为8:05,则水位超出窗口的时长为5分钟;收到当前数据的时间为8:10,则水位超出窗口的时长为10分钟。如果触发扫描的设定时长为10分钟,则如果收到当前数据的时间为8:10,则触发对该窗口的扫描。对该窗口的扫描可以为扫描存储的数据中处于该窗口内的数据,扫描得到的数据可以为该窗口的拼接数据。
本申请实施例,通过延时扫描窗口的拼接数据,能够减少窗口的数据丢失,提高窗口的数据拼接效率。
图2是根据本申请另一实施例的窗口拼接方法的流程图。该实施例的窗口拼接方法可以包括上述实施例的各步骤。在本实施例中,在一种可能的实施方式中,S101包括:
S201、将主流与至少一个从流中在同一窗口内具有相同行键的数据,存储到外存的同一行的不同列。
在一种可能的实施方式中,某个业务可能具有主流和多个从流,可以将主流和各从流中在同一窗口内具有相同主键的数据存储在一起,具体可以在外存中存储这些数据。外存可以包括多种类型,与内存相比,外存具有非易失性。例如,外存可以为关系数据库,假设主键为行键(rowkey),可以在关系数据库中同一行的不同列,拼接地存储主流和各从流中在同一窗口内具有相同行键的数据。
在外存中拼接存储同一窗口的数据的方式可以有多种。例如,可以按照同一窗口的数据达到计算设备的时间顺序进行拼接。假设窗口为[7:00,8:00],如果计算设备先收到的主流的数据A的时间戳处于该窗口内,则将数据A的行键R记录的关系数据的某一行的第1列,将数据A记录到该行的第2列。接着,计算设备收到的某个从流的数据B的时间戳处于该窗口内,并且,数据B的行键与数据A的行键R相同,则将数据B记录到该行的第3列。依次类推,不再赘述。
在本申请实施例中,可以使用外存来存储窗口的数据,通过相同窗口的相同主键在外存内完成拼接,在窗口结束后扫描外存即能获得这个窗口的拼接数据。这样,不会造成内存占率增长过快,可以提高内存运行速度。
在一种可能的实施方式中,一个行键对应的行包括时间列,该时间列中记录该行的数据更新时间。
示例性地,可以在数据库中某一行键对应的行的某一列中,记录该行的数据更新时间。该数据更新时间可以表示该行最后写入数据的时间。同一窗口在数据库中可以有多行数据,并且,每一行的数据更新时间可能不同。例如,窗口为[7:00,8:00],该窗口有3行数据,第1行的数据更新时间为7:10,第2行的数据更新时间为7:45,第3行的数据更新时间为8:05。数据更新时间一般大于窗口的起始时间,但是不一定小于窗口的结束时间。
在本申请实施例中,记录数据所在的行的数据更新时间,有利于合理地触发对窗口的扫描。
在一种可能的实施方式中,该行键包括时间戳和连接键。
示例性地,从流包括主流的时间戳,主流的行键包括自己的时间戳和连接键,从流的行键包括主流的时间戳和连接键。多条流中,行键相同的数据的时间戳和连接键也相同。计算设备可以根据接收到的数据的行键中的时间戳,判断该数据是否处于当前窗口。例如,窗口为[7:00,8:00],如果计算设备收到的数据的时间戳表示7:20,则该数据处于该窗口内;如果计算设备收到的数据的时间戳表示8:20,则该数据不处于该窗口内。
图3是根据本申请另一实施例的窗口拼接方法的流程图。该实施例的窗口拼接方法可以包括上述实施例的各步骤。在本实施例中,在一种可能的实施方式中,S102包括:
S301、在至少一个流的水位超出窗口的时长达到第一时长的情况下,扫描存储的数据得到时间戳处于该窗口内的第一版本的拼接数据。
在一种可能的实施方式中,该第一版本的拼接数据包括时间戳处于该窗口内且数据更新时间处于第一时间范围内的拼接数据。
例如,触发扫描的第一时长为10分钟,窗口为[8:00,10:00],在10:10收到数据则水位超出该窗口的时长达到第一时长,触发对该窗口的扫描。如果该窗口有3行拼接数据,并且每一行拼接数据的数据更新时间都在10:10之前,则这3行拼接数据为第一版本的拼接数据,可以将这些数据从外存中读取出来,进行后续处理。在该示例中,第一时间范围为[8:00,10:10]。
在本申请实施例中,在窗口结束后延时触发对窗口的扫描,能够减少数据丢失,提高计算效率。
在一种可能的实施方式中,S102还包括:
S302、在至少一个流的水位超出窗口的时长达到第二时长的情况下,扫描存储的数据得到时间戳处于该窗口内的第二版本的拼接数据。其中,该第二时长大于该第一时长。
在一种可能的实施方式中,该第二版本的拼接数据包括时间戳处于该窗口内且数据更新时间处于第二时间范围内的拼接数据。其中,该第二时间范围的起始时间等于或晚于第一时间范围的结束时间。
例如,触发扫描的第二时长为30分钟,窗口为[8:00,10:00],在10:30收到数据则水位超出该窗口的时长达到第二时长,再次触发对该窗口的扫描。如果该窗口有3行拼接数据,其中,第1行和第3行拼接数据的数据更新时间在10:10之前,第2行拼接数据的数据更新时间在10:10之后和10:30之前,则第2行拼接数据为第二版本的拼接数据,可以将这些数据从外存中读取出来,进行后续处理。在该示例中,第二时间范围为(10:10,10:30]。
应理解,两种触发时长和两种版本的拼接数据仅是示例而非限制,在实际应用中,可以有更多的触发时长和更多版本的拼接数据。
在本申请实施例中,通过不同的时长触发对窗口的扫描,可以得到不同版本的拼接数据,既能对较早到达的数据先进行处理,又能不丢失较晚达到的数据,从而既能保证计算效率,又能减少数据丢失。并且,采用增量扫描,无需重复处理较早到达的数据,可以减少数据处理量,进一步提高计算效率。
在一种应用示例中,本申请的窗口拼接方法,可以为一种流式计算中基于外存的窗口拼接的多版本产出方案,如图4所示,该方案主要包括以下部分:
数据流:从流数据带有主流数据的时间戳(unify_time)。写入外存或称为备用存储器(backstore)的行键(rowkey)可以包括数据的时间时间戳(unify_time)和连接键(joinkey)。若主流与从流的行键相同可以认为拼接成功,该行记录的多列分别存储多条流的数据,参见图5所示的数据格式。
水位服务器(Watermark Server):收集每个算子的水位。例如,可以根据当前收到的数据的时间戳来确定水位,时间戳是10:00,表示该窗口的水位到了10:00。水位服务器可以将主流、从流当前的水位发给触发器,用于触发器(trigger)的触发以及延时数据的判断。
触发器(trigger):决定何时触发扫描(scan)。示例性地,触发器可以为组合触发器,用于扫描大小版本的数据。如窗口为[9:00,11:00],小版本触发器为水位超出窗口10分钟触发,大版本触发器为水位超出窗口60分钟触发,那么水位到达11:10时,小版本触发器触发,水位到达12:00时大版本触发器触发。每次触发器触发都可以向扫描器(scanner)发送扫描(scan)任务。
扫描器(scanner):收到扫描任务,扫描数据库,获取相应窗口的数据并进行拼接计算。
窗口大小版本:窗口每一次触发的拼接计算的数据可以称为一个版本。以两个版本为例,较早触发的为小版本,较晚触发的为大版本。例如,窗口为[9:00,11:00],小版本触发器在水位超出窗口结束时间10分钟触发扫描,大版本触发器在超出窗口结束时间1小时触发扫描。触发器会在11:10触发扫描器进行第一次拼接计算,在12:00触发扫描器进行第二次拼接计算。
增量扫描流程:
(1)数据的存储以时间戳(unify_time)和连接键(join_key)为行键。当某行数据发生更新时,会将系统时间更新到该行的时间列(ts列)。同时更新该窗口的写入完成时间(write_done_ts),表示这个窗口的最新数据写入时间。
(2)当某个窗口的小版本触发器触发计算时,扫描完成时间(scan_done_ts)的初始为0,扫描时间戳(unify_time)在窗口内并且写入时间在[0,write_done_ts]的数据并进行拼接计算,并且更新这个窗口的扫描完成时间(scan_done_ts)为写入完成时间(write_done_ts),表示数据已经处理到写入完成时间(write_done_ts)。
(3)当同一个窗口的大版本触发计算时,从上次的扫描完成时间(scan_done_ts)开始,扫描时间戳(unify_time)在窗口内并且写入时间在[scan_done_ts,write_done_ts]的数据并进行拼接计算。
如图6所示的进度格式中的行键为窗口起始时间(windows_start)和窗口结束时间(windows_end)的组合,利用进度格式可以实现增量扫描。例如,如图7所示,某个窗口的数据包括某一行[start_rowkey,end_rowkey]的数据。小版本触发扫描,扫描从初始值到扫描完成时间(scan_done_ts)内的数据为小版本的拼接数据,在[scan_done_ts,write_done_ts]的数据为大版本的拼接数据。
本申请实施例可以使用外存来存储窗口的数据,通过相同窗口的相同主键在外存内完成拼接,在窗口结束时扫描外存即能获得这个窗口的拼接数据。本申请实施例适用于大流量场景,可以处理更长时间的乱序数据。通过设置不同的版本大小对应不同的触发拼接的时间,能灵活控制拼接结果的产出速度和精度。
为了正常的处理这部分因乱序而延时到达系统的数据,并且只扫描这部分增量的数据,本申请实施例提出了窗口大小版本增量扫描方案。例如窗口90%的数据在小版本中拼接并扫描完成。而在大版本中,不需要再次去扫描整个窗口的数据,而是只扫描延迟到来的10%的数据,减少访问外存的开销。通过增量扫描,可以避免每个版本扫描整个窗口的数据,减少数据处理量,提高系统的性能与吞吐。
图8是根据本申请一实施例的窗口拼接装置的框图。该装置可以包括:
存储模块41,用于将多条流在同一窗口内的数据按照主键进行存储;
扫描模块42,用于在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到该窗口的拼接数据;
其中,该流的水位是根据该流的当前数据的时间戳确定的。
在一种可能的实施方式中,该存储模块41具体用于将主流与至少一个从流中在同一窗口内具有相同行键的数据,存储到外存的同一行的不同列。
在一种可能的实施方式中,一个行键对应的行包括时间列,该时间列中记录该行的数据更新时间。
在一种可能的实施方式中,该行键包括时间戳和连接键。
在一种可能的实施方式中,如图9所示,该扫描模块42包括:
第一版本扫描子模块421,用于在至少一个流的水位超出窗口的时长达到第一时长的情况下,扫描存储的数据得到时间戳处于该窗口内的第一版本的拼接数据;
其中,该第一版本的拼接数据包括时间戳处于该窗口内且数据更新时间处于第一时间范围内的拼接数据。
在一种可能的实施方式中,该扫描模块42还包括:
第二版本扫描子模块422,用于在至少一个流的水位超出窗口的时长达到第二时长的情况下,扫描存储的数据得到时间戳处于该窗口内的第二版本的拼接数据,该第二时长大于该第一时长;
其中,该第二版本的拼接数据包括时间戳处于该窗口内且数据更新时间处于第二时间范围内的拼接数据,该第二时间范围的起始时间等于或晚于第一时间范围的结束时间。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图10所示,是根据本申请实施例的窗口拼接方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图10所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,该存储器存储有可由至少一个处理器执行的指令,以使该至少一个处理器执行本申请所提供的窗口拼接方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的窗口拼接方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的窗口拼接方法对应的程序指令/模块(例如,附图8所示的存储模块41和扫描模块42)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的窗口拼接方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据窗口拼接方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至窗口拼接方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
窗口拼接方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图10中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与窗口拼接方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与虚拟专用服务器(VPS)服务中,存在的管理难度大,业务扩展性弱的缺陷。
在本申请实施例中,通过延时扫描窗口的拼接数据,能够减少窗口的数据丢失,提高窗口的数据拼接效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种窗口拼接方法,包括:
将多条流在同一窗口内的数据按照主键进行存储;
在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到所述窗口的拼接数据;
其中,所述流的水位是根据所述流的当前数据的时间戳确定的。
2.根据权利要求1所述的方法,其中,将多条流在同一窗口内的数据按照主键进行存储,包括:
将主流与至少一个从流中在同一窗口内具有相同行键的数据,存储到外存的同一行的不同列。
3.根据权利要求2所述的方法,其中,一个行键对应的行包括时间列,所述时间列中记录所述行的数据更新时间。
4.根据权利要求2所述的方法,其中,所述行键包括时间戳和连接键。
5.根据权利要求1至4中任一项所述的方法,其中,在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到所述窗口的拼接数据,包括:
在至少一个流的水位超出窗口的时长达到第一时长的情况下,扫描存储的数据得到时间戳处于所述窗口内的第一版本的拼接数据;
其中,所述第一版本的拼接数据包括时间戳处于所述窗口内且数据更新时间处于第一时间范围内的拼接数据。
6.根据权利要求5所述的方法,其中,在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到所述窗口的拼接数据,还包括:
在至少一个流的水位超出窗口的时长达到第二时长的情况下,扫描存储的数据得到时间戳处于所述窗口内的第二版本的拼接数据,所述第二时长大于所述第一时长;
其中,所述第二版本的拼接数据包括时间戳处于所述窗口内且数据更新时间处于第二时间范围内的拼接数据,所述第二时间范围的起始时间等于或晚于第一时间范围的结束时间。
7.一种窗口拼接装置,包括:
存储模块,用于将多条流在同一窗口内的数据按照主键进行存储;
扫描模块,用于在至少一个流的水位超出窗口的时长达到设定时长的情况下,扫描存储的数据以得到所述窗口的拼接数据;
其中,所述流的水位是根据所述流的当前数据的时间戳确定的。
8.根据权利要求7所述的装置,其中,所述存储模块具体用于将主流与至少一个从流中在同一窗口内具有相同行键的数据,存储到外存的同一行的不同列。
9.根据权利要求8所述的装置,其中,一个行键对应的行包括时间列,所述时间列中记录所述行的数据更新时间。
10.根据权利要求8所述的装置,其中,所述行键包括时间戳和连接键。
11.根据权利要求7至10中任一项所述的装置,其中,所述扫描模块包括:
第一版本扫描子模块,用于在至少一个流的水位超出窗口的时长达到第一时长的情况下,扫描存储的数据得到时间戳处于所述窗口内的第一版本的拼接数据;
其中,所述第一版本的拼接数据包括时间戳处于所述窗口内且数据更新时间处于第一时间范围内的拼接数据。
12.根据权利要求11所述的装置,其中,所述扫描模块还包括:
第二版本扫描子模块,用于在至少一个流的水位超出窗口的时长达到第二时长的情况下,扫描存储的数据得到时间戳处于所述窗口内的第二版本的拼接数据,所述第二时长大于所述第一时长;
其中,所述第二版本的拼接数据包括时间戳处于所述窗口内且数据更新时间处于第二时间范围内的拼接数据,所述第二时间范围的起始时间等于或晚于第一时间范围的结束时间。
13.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
CN202010700287.4A 2020-07-20 2020-07-20 窗口拼接方法、装置、设备以及存储介质 Pending CN111831383A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010700287.4A CN111831383A (zh) 2020-07-20 2020-07-20 窗口拼接方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010700287.4A CN111831383A (zh) 2020-07-20 2020-07-20 窗口拼接方法、装置、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN111831383A true CN111831383A (zh) 2020-10-27

Family

ID=72923675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010700287.4A Pending CN111831383A (zh) 2020-07-20 2020-07-20 窗口拼接方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111831383A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632053A (zh) * 2020-12-30 2021-04-09 第四范式(北京)技术有限公司 实现数据拼接的方法和实现数据拼接的系统
CN113377809A (zh) * 2021-06-23 2021-09-10 北京百度网讯科技有限公司 数据处理方法及装置,计算设备和介质
CN113946304A (zh) * 2021-09-29 2022-01-18 湖北亿咖通科技有限公司 可见窗口的合成方法、合成装置和多屏系统
WO2024031461A1 (zh) * 2022-08-10 2024-02-15 华为技术有限公司 流数据处理方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209673A (zh) * 2015-08-05 2017-09-26 谷歌公司 数据流加窗和触发
CN110019386A (zh) * 2017-09-05 2019-07-16 中国移动通信有限公司研究院 一种流数据处理方法及设备
CN110058977A (zh) * 2019-01-14 2019-07-26 阿里巴巴集团控股有限公司 基于流式处理的监控指标异常检测方法、装置及设备
CN110134702A (zh) * 2019-05-17 2019-08-16 北京百度网讯科技有限公司 数据流拼接方法、装置、设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209673A (zh) * 2015-08-05 2017-09-26 谷歌公司 数据流加窗和触发
CN110019386A (zh) * 2017-09-05 2019-07-16 中国移动通信有限公司研究院 一种流数据处理方法及设备
CN110058977A (zh) * 2019-01-14 2019-07-26 阿里巴巴集团控股有限公司 基于流式处理的监控指标异常检测方法、装置及设备
CN110134702A (zh) * 2019-05-17 2019-08-16 北京百度网讯科技有限公司 数据流拼接方法、装置、设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632053A (zh) * 2020-12-30 2021-04-09 第四范式(北京)技术有限公司 实现数据拼接的方法和实现数据拼接的系统
CN113377809A (zh) * 2021-06-23 2021-09-10 北京百度网讯科技有限公司 数据处理方法及装置,计算设备和介质
CN113946304A (zh) * 2021-09-29 2022-01-18 湖北亿咖通科技有限公司 可见窗口的合成方法、合成装置和多屏系统
WO2024031461A1 (zh) * 2022-08-10 2024-02-15 华为技术有限公司 流数据处理方法及相关设备

Similar Documents

Publication Publication Date Title
CN111831383A (zh) 窗口拼接方法、装置、设备以及存储介质
US9727625B2 (en) Parallel transaction messages for database replication
US11188560B2 (en) Synchronizing object in local object storage node
US11762822B2 (en) Determining when a change set was delivered to a workspace or stream and by whom
US20170083419A1 (en) Data management method, node, and system for database cluster
EP3051408A1 (en) Data operating method and device
CN112685224A (zh) 任务管理的方法、设备和计算机程序产品
CN113377809A (zh) 数据处理方法及装置,计算设备和介质
CN104503868A (zh) 数据同步方法、装置以及系统
JP2021197186A (ja) 画像処理方法、装置、電子デバイス及び可読記憶媒体
CN111078418B (zh) 操作同步方法、装置、电子设备及计算机可读存储介质
US10223372B2 (en) Log synchronization among discrete devices in a computer system
CN111726402A (zh) 用户行为数据处理方法、装置、电子设备及存储介质
CN113542802B (zh) 视频的转场方法和装置
CN112306413B (zh) 用于访问内存的方法、装置、设备以及存储介质
CN115640280A (zh) 数据迁移方法及装置
US10310927B2 (en) Operating a trace procedure for a computer program
KR102557782B1 (ko) 토픽 컨셉 마이닝 방법, 장치, 기기 및 저장 매체
CN111340976B (zh) 调试自动驾驶车辆模块的方法、装置、电子设备
US11556542B2 (en) Optionally compressed output from command-line interface
CN112735140B (zh) 数据处理方法、装置、电子设备和存储介质
CN112799585A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN113127512B (zh) 多数据流的数据拼接触发方法、装置、电子设备和介质
CN111639116A (zh) 数据访问连接会话保护方法以及装置
CN113127511B (zh) 多数据流的数据拼接方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination