数据流拼接方法、装置、设备和存储介质与流程

文档序号:18464730发布日期:2019-08-17 02:21阅读:203来源:国知局
数据流拼接方法、装置、设备和存储介质与流程

本发明实施例涉及数据处理技术领域,尤其涉及一种数据流拼接方法、装置、设备和存储介质。



背景技术:

随着互联网技术的快速发展,媒介信息的展示方式逐渐多元化。为了挖掘媒介信息的投放效果,需要对媒介信息的后台类日志、曝光类日志、点击类日志和转化类日志进行分析。由于媒介信息可以有多种投放渠道,也就是同类型日志可以有多种数据源。因此在媒介信息的投放效果挖掘过程中,需要对媒介信息的多种数据源的数据进行拼接。

目前,通常采用流式拼接技术,即利用流式引擎基于数据流到达时间,将第一个数据流写入外部存储中,当第二个数据流到达时,将第二个数据流写入该外部存储以及后一个外部存储中,以此类推,从而对外部存储中的两个数据流进行实时拼接。如果要支持多条数据流拼接,则需要对多条数据流之间的进度进行对齐,同时保存数据流状态到内存中,利用多个算子以支持数据流的两两拼接。

然而,对于多条数据流的拼接,现有数据流拼接方式的时效较低,对于系统资源消耗较大,无法支持多条数据流的实时拼接。



技术实现要素:

本发明实施例提供了一种数据流拼接方法、装置、设备和存储介质,能够在数据流拼接过程中对同一媒介信息的多条数据流进行有效整合。

第一方面,本发明实施例提供了一种数据流拼接方法,应用于外部存储设备,所述方法包括:

从至少三个数据源中获取当前媒介信息的至少三个数据源日志;

确定所述当前媒介信息的行键;其中,媒介信息与行键之间具有唯一映射关系;

根据所述当前媒介信息的行键,将所述当前媒介信息的至少三个数据源日志写入外部存储的同一行中。

第二方面,本发明实施例提供了一种数据流拼接装置,配置于外部存储设备,所述装置包括:

数据流获取模块,用于从至少三个数据源中获取当前媒介信息的至少三个数据源日志;

媒介行键确定模块,用于确定所述当前媒介信息的行键;其中,媒介信息与行键之间具有唯一映射关系;

数据流写入模块,用于根据所述当前媒介信息的行键,将所述当前媒介信息的至少三个数据源日志写入外部存储的同一行中。

第三方面,本发明实施例提供了一种设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的数据流拼接方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的数据流拼接方法。

本发明实施例在多条数据流的拼接过程中,获取当前媒介信息的至少三个数据源日志,基于当前媒介信息关联的行键,将同一媒介信息的至少三个数据源日志写入外部存储的同一行中。本发明实施例基于存储器中表格的多列特性,通过将同一媒介信息的多条数据流写入同一行中,实现了拼接过程中同一媒介信息多条数据流的有效整合,以便于拼接过程的后续数据分析中,快速从外部存储中获取媒介信息的多个数据源日志,从而提高了拼接效率,减少了拼接过程的资源占用。

附图说明

图1为本发明实施例一提供的一种数据流拼接方法的流程图;

图2为本发明实施例二提供的一种数据流拼接方法的流程图;

图3为本发明实施例二提供的多源数据流拼接示意图;

图4为本发明实施例三提供的一种数据流拼接装置的结构示意图;

图5为本发明实施例四提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。

另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1为本发明实施例一提供的一种数据流拼接方法的流程图,本实施例可适用于对多源数据流进行拼接的情况,该方法可由外部存储设备来执行,该方法可由一种数据流拼接装置来执行,该装置可以采用软件和/或硬件的方式实现,优选是配置于外部存储设备。该方法具体包括如下:

s110、从至少三个数据源中获取当前媒介信息的至少三个数据源日志。

在本发明具体实施例中,媒介信息是指用于宣传或传播的信息,可以包括广告、影视资源等。数据源是指提供当前媒介信息的器件或原始媒体,可以包括服务器、网站平台等。相应的,每个数据源下会产生数据源日志,用于记录用户行为。例如,在广告领域中,可以将同一广告投放在不同的网站进行宣传,同时网站作为数据源会产生后台日志、曝光日志、点击日志以及转化日志等网站日志,分别记录广告的物理投放记录,反映广告曝光程度,记录用户访问、浏览、点击行为,以及用户通过广告转变为会员或客户等转化行为。因此,媒介信息在不同数据源下的数据源日志可以帮助网站管理员、运营人员、推广人员等实时获取网站流量信息,并从流量来源、网站内容、网站访客特性等多方面提供网站分析的数据依据。从而帮助提高网站流量,提升网站用户体验,让访客更多的沉淀下来变成会员或客户,通过更少的媒介信息的投入来获取最大化的收入。

本实施例中,针对现有技术仅能实现两条数据流实时拼接,而无法支持多条数据流实时拼接的技术难题,对于当前所要分析的媒介信息,从其投放的至少三个数据源中,获取当前媒介信息的至少三个数据源日志。其中,每个数据源可以生成至少一个数据源日志。示例性的,假设将广告a作为当前待分析的媒介信息,则确定广告a所投放的至少三个数据源,例如网站a、网站b和网站c,则分别从这个网站的服务器中获取广告a的相关日志。

s120、确定当前媒介信息的行键。

在本发明具体实施例中,行键是指媒介信息的唯一标识,可以采用媒介信息中的关键信息、时间戳等信息来表示。媒介信息与行键之间具有唯一映射关系,便于多源数据流整合后数据的快速查询。

示例性的,从至少三个数据源日志的时间戳中选择当前媒介信息的统一时间戳,该统一时间戳可以为至少三个数据源日志中的首个时间戳,组合当前媒介信息的关键字和当前媒介信息的统一时间戳,作为当前媒介信息的行键。

s130、根据当前媒介信息的行键,将当前媒介信息的至少三个数据源日志写入外部存储的同一行中。

在本发明具体实施例中,基于媒介信息与行键之间具有的唯一映射关系,可以确定外部存储中当前媒介信息关联的行。并基于存储器中表格的多列特性,可以确定各数据源在外部存储该行中关联的列。其中,若外部存储中不存在与任一数据源关联的列,则在外部存储中配置与该数据源关联的列,以更新外部存储中列与数据源之间的映射关系。从而将当前媒介信息的至少三个数据源日志,分别写入外部存储同一行的至少三列中。具体的,可以将当前媒介信息的每一数据源日志作为键值写入该数据源关联的列中,还可以将当前媒介信息的每一数据源日志以及该数据源日志的时间戳共同作为键值,写入该数据源关联的列中,以完成拼接过程中多源数据流的整合。从而在拼接过程的数据分析过程中,可以响应于拼接模块发送的目标媒介信息的拼接请求,在目标媒介信息关联的行中查询至少三个数据源日志;向拼接模块反馈查询到的至少三个数据源日志,供拼接模块进行多源数据流拼接。

本实施例的技术方案,在多条数据流的拼接过程中,获取当前媒介信息的至少三个数据源日志,基于当前媒介信息关联的行键,将同一媒介信息的至少三个数据源日志写入外部存储的同一行中。本发明实施例基于存储器中表格的多列特性,通过将同一媒介信息的多条数据流写入同一行中,实现了拼接过程中同一媒介信息多条数据流的有效整合,以便于拼接过程的后续数据分析中,快速从外部存储中获取媒介信息的多个数据源日志,从而提高了拼接效率,减少了拼接过程的资源占用。

实施例二

本实施例在上述实施例一的基础上,提供了数据流拼接方法的一个优选实施方式,能够基于外部存储中整合的多源数据流进行多源数据流的一次性获取以及一次性拼接。图2为本发明实施例二提供的一种数据流拼接方法的流程图,如图2所示,该方法包括以下具体:

s210、从至少三个数据源中获取当前媒介信息的至少三个数据源日志。

在本发明具体实施例中,当前媒介信息具有至少三个数据源进行信息的投放,每个数据源会产生至少一个数据源日志,进而当对当前媒介信息进行数据流拼接以实现投放效果分析时,可以从当前媒介信息的至少三个数据源中分别获取数据源日志,以得到至少三个数据源日志。

s220、从至少三个数据源日志的时间戳中选择当前媒介信息的统一时间戳。

在本发明具体实施例中,不同数据源日志具有其各自的生成进度,相应的时间戳表示了数据源日志的生成时间。通过对至少三个数据源日志进行解析,确定各数据源日志的时间戳,可以从至少三个数据源日志的时间戳中选择一个,作为当前媒介信息的统一时间戳。示例性的,将至少三个数据源日志的首个时间戳,作为当前媒介信息的统一时间戳。当前媒介信息的统一时间戳可以标识获取到的当前媒介信息数据流的大致时间节点。

s230、组合当前媒介信息的关键字和当前媒介信息的统一时间戳,作为当前媒介信息的行键。

在本发明具体实施例中,当前媒介信息的关键字可以为能够标识或唯一标识当前媒介信息的字段,例如广告名称、广告版本等。行键是指当前媒介信息的唯一标识,媒介信息与行键之间具有唯一映射关系。可以将当前媒介信息的关键字以及当前媒介信息的统一时间戳进行组合,共同作为当前媒介信息的行键,用于唯一标识当前媒介信息下多个数据源的日志。

s240、根据当前媒介信息的行键,以及外部存储中列与数据源之间的唯一映射关系,将当前媒介信息的至少三个数据源日志写入外部存储同一行的至少三列中。

在本发明具体实施例中,基于媒介信息与行键之间具有的唯一映射关系,可以确定外部存储中当前媒介信息关联的行。基于存储器中表格的多列特性,可以确定各数据源在外部存储该行中关联的列。从而将当前媒介信息的至少三个数据源日志作为键值,即与行键对应的存储数据内容,分别写入外部存储该同一行中关联的至少三列中。

可选的,将当前媒介信息的每一数据源日志和该数据源日志的时间戳,作为键值写入该数据源关联的列中。

本实施例中,除了行键中的统一时间戳,还可以在数据的写入过程中,将各数据源日志的时间戳,与数据源日志一同作为键值,写入到外部存储关联的列中。从而同一行中不同列内的数据源日志具有各自关联的时间戳信息,便于数据的进一步查询和分析。

可选的,若外部存储中不存在与任一数据源关联的列,则在外部存储中配置与该数据源关联的列,以更新外部存储中列与数据源之间的映射关系;将该数据源日志写入外部存储配置的列中。

本实施例中,在媒介信息的首次数据流拼接时,或者媒介信息存在新的投放数据源等情况时,外部存储中可能并不存在该数据源关联的列。因此若外部存储中不存在与任一数据源关联的列,则在外部存储中配置与该数据源关联的列,并更新外部存储中列与数据源之间的映射关系。从而基于行键确定当前媒介信息关联的行,将该数据源日志写入外部存储该行中新配置的列中。

示例性的,基于存储器中表格的列特征,在拼接过程中将多源数据流进行整合的结果如表1所示。其中,rowkey列表示以时间戳timestamp_logkey构成的行键。columnfamily表示列族,列族中每一列column表示标识一个数据源。例如,同一公司columnfamily下不同网站column对应的数据流。从表1可以看出,在数据流拼接过程中,基于行键,将同一媒介信息下不同数据源产生的数据源日志作为键值,统一存储在同一行的不同列中,进而基于行键可以一次性查询获取该媒介信息下所有数据源的数据源日志。

表1数据流拼接过程中多源数据流整合示例表

s250、响应于拼接模块发送的目标媒介信息的拼接请求,在目标媒介信息关联的行中查询至少三个数据源日志。

在本发明具体实施例中,拼接模块是指拼接过程中用于数据分析的模块,拼接模块可以是配置于与外部存储不同的计算机设备中。拼接模块通过向整合有数据的外部存储发送目标媒介信息的拼接请求,以此获取待分析的整合数据。其中,拼接请求中可以包含目标媒介信息或行键信息。相应的,外部设备响应于拼接模块发送的目标媒介信息的拼接请求,基于行键进行索引,通过在外部存储的表格中,将拼接请求与行键进行比对,以此查询目标媒介信息所在的行,从而从该行中一次性获得目标媒介信息下的至少三个数据源日志。

s260、向拼接模块反馈查询到的至少三个数据源日志,供拼接模块进行多源数据流拼接。

在本发明具体实施例中,在数据流拼接过程中,外部存储设备将查询获取的目标媒介信息的全部数据源日志,一次性反馈给拼接模块,从而拼接模块根据获取的全部数据流进行一次性拼接即可。

具体的,图3为多源数据流拼接示意图。如图3所示,在数据流拼接过程的数据整合阶段,基于存储器表格中的列特性,将同一媒介信息的多个数据源的数据流日志存储在外部存储的同一行的不同列中,通过外部存储实现多源数据流的整合。在数据流拼接过程的数据分析阶段,外部存储器接收拼接模块发送的拼接请求,基于行键中的时间戳,按照数据流进度,可以快速从外部存储中查询目标媒介信息的多源数据流。从而拼接模块能够一次性获得目标媒介信息的多个数据源日志,并依据水位管理器探测到的各数据流进度,以及业务需求预先配置的拼接条件,对多个数据源日志进行一次性拼接,且能够支持天级别的拼接窗口。

本实施例的技术方案,在多条数据流的拼接过程中,获取当前媒介信息的至少三个数据源日志,基于当前媒介信息关联的行键,将同一媒介信息的至少三个数据源日志写入外部存储的同一行中,从而在数据流拼接时,查询目标媒介信息的多个数据源日志,将多个数据源日志一次性提供给拼接模块,以供拼接模块进行一次性拼接。本发明实施例基于存储器中表格的多列特性,通过将同一媒介信息的多条数据流写入同一行中,实现了拼接过程中同一媒介信息多条数据流的有效整合,以便于拼接过程的后续数据分析中,快速从外部存储中获取媒介信息的多个数据源日志,减少数据流的拼接次数,从而提高了拼接效率,减少了拼接过程的资源占用。

实施例三

图4为本发明实施例三提供的一种数据流拼接装置的结构示意图,本实施例可适用于对多源数据流进行拼接的情况,该装置可实现本发明任意实施例所述的数据流拼接方法。该装置具体包括:

数据流获取模块410,用于从至少三个数据源中获取当前媒介信息的至少三个数据源日志;

媒介行键确定模块420,用于确定所述当前媒介信息的行键;其中,媒介信息与行键之间具有唯一映射关系;

数据流写入模块430,用于根据所述当前媒介信息的行键,将所述当前媒介信息的至少三个数据源日志写入外部存储的同一行中。

可选的,所述媒介行键确定模块420具体用于:

从所述至少三个数据源日志的时间戳中选择当前媒介信息的统一时间戳;

组合所述当前媒介信息的关键字和所述当前媒介信息的统一时间戳,作为当前媒介信息的行键。

可选的,所述媒介行键确定模块420具体用于:

将所述至少三个数据源日志的首个时间戳,作为当前媒介信息的统一时间戳。

可选的,所述数据流写入模块430具体用于:

根据所述外部存储中列与数据源之间的唯一映射关系,将所述当前媒介信息的至少三个数据源日志写入所述外部存储同一行的至少三列中。

可选的,所述数据流写入模块430具体用于:

若所述外部存储中不存在与任一数据源关联的列,则在所述外部存储中配置与该数据源关联的列,以更新外部存储中列与数据源之间的映射关系;

将该数据源日志写入所述外部存储配置的列中。

可选的,所述数据流写入模块430具体用于:

将所述当前媒介信息的每一数据源日志和该数据源日志的时间戳,作为键值写入该数据源关联的列中。

进一步的,所述装置还包括数据流查询模块440;所述数据流查询模块440具体用于:

在所述将所述当前媒介信息的至少三个数据源日志写入外部存储的同一行中之后,响应于拼接模块发送的目标媒介信息的拼接请求,在目标媒介信息关联的行中查询至少三个数据源日志;

向所述拼接模块反馈查询到的至少三个数据源日志,供所述拼接模块进行多源数据流拼接。

本实施例的技术方案,通过各个功能模块之间的相互配合,实现了数据流的获取、行键的确定、键值的写入以及数据流的查询等功能。本发明实施例基于存储器中表格的多列特性,通过将同一媒介信息的多条数据流写入同一行中,实现了拼接过程中同一媒介信息多条数据流的有效整合,以便于拼接过程的后续数据分析中,快速从外部存储中获取媒介信息的多个数据源日志,减少数据流的拼接次数,从而提高了拼接效率,减少了拼接过程的资源占用。

实施例四

图5为本发明实施例四提供的一种设备的结构示意图,图5示出了适于用来实现本发明实施例实施方式的示例性设备的框图。图5显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

图5显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。该设备12优选为外部存储设备。

如图5所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器16,系统存储器28,连接不同系统组件(包括系统存储器28和处理器16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明实施例所描述的实施例中的功能和/或方法。

设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理器16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据流拼接方法。

实施例五

本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种数据流拼接方法,该方法包括:

从至少三个数据源中获取当前媒介信息的至少三个数据源日志;

确定所述当前媒介信息的行键;其中,媒介信息与行键之间具有唯一映射关系;

根据所述当前媒介信息的行键,将所述当前媒介信息的至少三个数据源日志写入外部存储的同一行中。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1