一种数据获取方法、装置及电子设备与流程

文档序号:14677191发布日期:2018-06-12 21:39阅读:227来源:国知局
一种数据获取方法、装置及电子设备与流程

本发明涉及数据处理技术领域,特别是涉及一种数据获取方法、装置及电子设备。



背景技术:

随着业务的发展,越来越多的直播业务请求需要从服务端获取多节点数据才能满足,例如,多个服务系统的数据。

现有方法中,针对客户端的直播业务请求,服务端调用多个服务节点产生的数据,并将多个服务节点的数据进行组合,进而得到满足客户端的直播业务请求所请求的数据。

然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:

从多个服务节点调用数据需要多次调用、以及将多个服务节点的数据进行组合,会占用过多的时间,使得数据获取过程中时间开销比较大。



技术实现要素:

本发明实施例的目的在于提供一种数据获取方法、装置及电子设备,以降低数据获取过程中的时间开销。具体技术方案如下:

第一方面,本发明实施例提供了一种数据获取方法,包括:

接收直播业务请求;

将所述直播业务请求转换为逻辑描述语句;

根据所述逻辑描述语句,从已保存的数据库中获取所述直播业务请求所请求的业务数据,其中,所述数据库实时接收并保存多个服务节点产生的原始数据。

可选的,将所述原始数据保存至所述数据库的步骤,包括:

获取所述原始数据,所述原始数据包括:文本类数据、视频类数据以及音频类数据;

确定所述原始数据的类型,所述类型包括:文本类、视频类以及音频类;

根据各所述原始数据类型的不同,对各所述原始数据添加类型标签,所述类型标签包括:文本类标签、视频类标签以及音频类标签;

根据所述类型标签的不同,将所述原始数据分类保存至所述数据库中。

可选的,根据所述逻辑描述语句,从已保存的数据库中获取所述直播业务请求所请求的业务数据的步骤,包括:

根据所述逻辑描述语句,确定待获取业务数据所属的类别,所述类别包括:文本类、视频类以及音频类;

根据所述类别,从已保存的数据库中对应类别的原始数据中,获取所述直播业务请求所请求的业务数据。

可选的,所述接收直播业务请求包括:

接收客户端发送的直播业务请求;

在所述从已保存的数据库中获取所述直播业务请求所请求的业务数据之后,还包括:

将所述业务数据发送至所述客户端。

可选的,所述数据库包括Couchbase,所述将所述直播业务请求转换为逻辑描述语句的步骤,包括:

通过关系描述语言N1QL,分析所述直播业务请求,将所述直播业务请求转换为逻辑描述语句。

第二方面,本发明实施例提供了一种数据获取装置,包括:

接收模块,用于接收直播业务请求;

转换模块,用于将所述直播业务请求转换为逻辑描述语句;

第一获取模块,用于根据所述逻辑描述语句,从已保存的数据库中获取所述直播业务请求所请求的业务数据,其中,所述数据库实时接收并保存多个服务节点产生的原始数据。

可选的,所述装置还包括:

第二获取模块,用于获取所述原始数据,所述原始数据包括:文本类数据、视频类数据以及音频类数据;

确定模块,用于确定所述原始数据的类型,所述类型包括:文本类、视频类以及音频类;

添加模块,用于根据各所述原始数据类型的不同,对各所述原始数据添加类型标签,所述类型标签包括:文本类标签、视频类标签以及音频类标签;

保存模块,用于根据所述类型标签的不同,将所述原始数据分类保存至所述数据库中。

可选的,所述第一获取模块,包括:

确定子模块,用于根据所述逻辑描述语句,确定待获取业务数据所属的类别,所述类别包括:文本类、视频类以及音频类;

获取子模块,用于根据所述类别,从已保存的数据库中对应类别的原始数据中,获取所述直播业务请求所请求的业务数据。

可选的,所述接收模块,具体用于接收客户端发送的直播业务请求;

所述装置,还包括:

发送模块,用于将所述业务数据发送至所述客户端。

可选的,所述数据库包括Couchbase,所述转换模块,具体用于通过关系描述语言N1QL,分析所述直播业务请求,将所述直播业务请求转换为逻辑描述语句。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法步骤。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法步骤。

本发明实施例提供的数据获取方法、装置及电子设备,通过直播业务请求对应的逻辑描述语句,直接从数据库中获取到直播业务请求所请求的业务数据,不再需要在接收到直播业务请求后,从多个服务节点中进行多次调用、并将调用到的数据进行组合。如此降低了数据获取过程中的时间开销;同时,在对时间要求比较严格的直播业务请求中,提高了实时性。另外,针对仅是参数存在差异等同类型直播业务请求,无需进行重复地调用、组合过程,降低资源浪费。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

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

图2为本发明实施例中将原始数据保存至数据库的流程图;

图3为本发明实施例提供的数据获取方法的另一种流程图;

图4为本发明实施例提供的具体实施例的流程图;

图5为本发明实施例提供的数据获取装置的结构示意图;

图6为本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

随着业务的发展,越来越多的业务请求需要从服务端获取多节点数据才能满足。所以针对业务请求,服务端从多个不同的服务系统调用数据,然后将调用得到的数据进行组合得到业务请求所请求的数据。但是,从多个服务系统中调用数据、以及将数据进行组合使得时间开销太大。而有些业务请求对时间要求比较严格,例如,视频类直播业务等。

另外,不同客户端的业务请求存在客观规律,服务端在某一段时间内针对某一类业务,比如:针对同一个直播返回给不同客户端,即不同的用户是相同的数据。但是,因为不同客户端在相同的业务请求的参数上可能存在差异,虽然最终返回的数据是相同的,但是针对于每一个客户端的业务请求,服务端都需要进行多次调用,再将调用后得到的数据进行组合才能得到满足客户端业务请求的数据,如此,造成了服务端的重复性工作,一方面造成了数据获取过程中时间的开销过大;另一方面,也造成了资源的浪费。

为了减少数据获取过程中时间的开销以及资源的浪费,更好地满足业务请求,本发明实施例提供了一种数据获取方法,主要针对于直播业务。通过实时接收多个服务节点产生的原始数据,并将该原始数据保存至数据库中;在接收到直播业务请求后,分析该直播业务请求,将该直播业务请求转换为逻辑描述语句,进而根据逻辑描述语句,从已保存的数据库中获取该直播业务请求所请求的业务数据。如此,通过逻辑描述语句,使用数据的关系结构,对数据进行描述性组装,使得根据逻辑描述语句可以一次性获取直播业务请求所请求的业务数据,降低了数据获取过程中的时间开销;同时,也可以降低对资源的浪费。

本发明实施例提供了一种数据获取方法,如图1所示,包括:

S101,接收直播业务请求。

本发明实施例提供的方法可以应用于电子设备。具体的,该电子设备可以为台式计算机、便携式计算机、智能移动终端等。

S102,将该直播业务请求转换为逻辑描述语句。

类似于编程的过程,分析直播业务请求,将该直播业务请求转换为逻辑描述语句。具体地,可以通过编程语言等来实现将该直播业务请求转换为逻辑描述语句。

S103,根据逻辑描述语句,从已保存的数据库中获取该直播业务请求所请求的业务数据,其中,数据库实时接收并保存多个服务节点产生的原始数据。

实时地将多个服务节点产生的原始数据保存至数据库中。例如,可以通过表格的形式将来自于多个服务节点的原始数据保存至数据库中,如下表1所示。具体地也可以通过服务节点对应的IP(Internet Protocol,网络传输协议)地址等标识不同的服务节点。

表1

另外,直播业务是实时地,历史数据对当前的直播业务不会产生太大的影响。所以在实际的应用过程中,数据库中可以仅保存预设时间段内产生的原始数据,将在预设时间段之前的保存的原始数据实时地清除。例如,保存最近3天内产生的原始数据,将3天前保存的原始数据进行清除。如此,能够避免原始数据的不断增大造成数据库空间不足等问题。

数据库中保存数据的方式与所使用的逻辑描述语句的规则相同。如此,根据直播业务请求对应的逻辑描述语句,可以从已保存的数据库中获取该直播业务请求所请求的业务数据。具体地,通过直播业务请求对应的逻辑描述语句,将该直播业务请求所请求的数据进行描述性组装,如此,进行描述性组装后可以直接从数据库中获取到该直播业务请求所请求的业务数据。

例如,具体地直播业务请求,转换后对应的逻辑描述语句为local query=string.format('select cache_name.*from cache_name where data.x=%s'..'and data.entry.a>=%s000and data.entry.b<=%s000'..'and data.entry.c>=%s000and data.entry.c<=%s000order by data.entry.c desc limit 1',lc,ngx_now_low_3,ngx_now,ngx_now,ngx_now_hight_3),执行N1QL语句查询:local value,err=client:query(query),如此获取到的value即为直播业务请求所请求的业务数据。

本发明实施例提供的数据获取方法,通过直播业务请求对应的逻辑描述语句,直接从数据库中获取到直播业务请求所请求的业务数据,不再需要在接收到直播业务请求后,从多个服务节点中进行多次调用、并将调用到的数据进行组合。如此降低了数据获取过程中的时间开销。

在本发明实施例一种可选的实施例中,数据库可以包括Couchbase。可以通过关系描述语言N1QL,分析直播业务请求,将该直播业务请求转换为N1QL表示的逻辑描述语句。

N1QL是将SQL(Structured Query Language,结构化查询语言)引入文件数据库的查询语言,N1QL可以对不符合第一范式的数据模型JSON(JavaScript Object Notation,JavaScript对象表示法)进行操作,N1QL可将传统SQL对表和行等的操作拓展至JSON。

本发明实施例提供的数据获取方法中,通过N1QL将直播业务请求转换为逻辑描述语句,可以实现对数据的描述性组装,减少了数据获取过程中的时间开销以及资源浪费,且因为N1QL可将传统SQL对表和行等的操作拓展至JSON,如此能够支持数据的复杂化、多样化。同时,将N1QL和Couchbase进行结合,有效减少类似于直播业务请求等的服务访问次数,提高实时性。

本发明实施例一种可选的实施例中,如图2所示,将原始数据保存至数据库的步骤,包括:

S201,获取原始数据。

原始数据可以包括:文本类数据、视频类数据以及音频类数据等等。

S202,确定原始数据的类型。

原始数据的类型可以包括:文本类、视频类以及音频类等等。

例如,当原始数据为文本类数据,确定原始数据的类型为文本类;当原始数据为视频类数据,确定原始数据的类型为视频类;当原始数据为音频类数据,确定原始数据的类型为音频类。

S203,根据各原始数据类型的不同,对各原始数据添加类型标签。

类型标签可以包括:文本类标签、视频类标签以及音频类标签等等。

服务节点产生的原始数据的类型有可能不同,为了在数据库中可以将数据分类保存,可以针对不同类型的原始数据,添加不同的类型标签。例如,当确定原始数据的类型为文本类,对该原始数据添加文本类标签;当确定原始数据的类型为视频类,对该原始数据添加视频类标签;当确定原始数据的类型为音频类,对原始数据添加音频类标签。

S204,根据类型标签的不同,将原始数据分类保存至数据库中。

具体地,可以按照如表2所示的形式将原始数据保存至数据库中,其中,表2中的类型标签1、类型标签2、类型标签3可以为文本类标签、视频类标签或者音频类标签等。

表2

在本发明实施例一种可选的实施例中,根据逻辑描述语句,从已保存的数据库中获取直播业务请求所请求的业务数据的步骤,如图3所示,包括:

S301,根据逻辑描述语句,确定待获取业务数据所属的类别。

待获取业务数据所属的类别也可以理解为待获取业务数据的类型。类别可以包括:文本类、视频类以及音频类等。

分析逻辑描述语句中表示的该逻辑描述语句对应的直播业务请求所请求的数据所属的类别。例如,针对直播业务请求对应的逻辑描述语句,确定直播业务请求所请求的数据,也即待获取业务数据所属的类别为视频类数据、音频类数据等。

S302,根据该类别,从已保存的数据库中对应类别的原始数据中,获取直播业务请求所请求的业务数据。

根据待获取业务数据所属的类别,直接与数据库中的类别进行匹配,具体地可以与类型标签进行匹配,在已保存的数据库中对应类别的原始数据中,获取直播业务请求所请求的业务数据。

例如,当确定待获取业务数据所属的类别为表2中的类型标签1对应的类型时,先在数据库中确定出所有类型标签1对应的数据,例如,原始数据1;然后再从类型标签1对应的数据中获取该直播业务请求所请求的业务数据。

如此,根据数据的类别,快速地查找到所需的数据,无需从数据库中保存的所有数据中查找与直播业务请求所请求的业务数据匹配的原始数据,提高了数据获取过程的速率。

本发明实施例还提供了具体的实施例,如图4所示。

多个服务节点将产生的数据实时地发送给获取数据模块,该数据即为原始数据,多个服务节点可以包括基础服务节点、其他服务节点等。获取数据模块将获取到的数据通过数据推送模块发送至数据库Couchbase中,数据在Couchbase中可以按照类型、空间大小等分别保存为第一数据、第二数据等。当然,还可以将数据保存在多个Couchbase中。如此实现将多个服务节点的数据实时保存在数据库中。

客户端向服务端发送直播业务请求,服务端接收到该直播业务请求,分析该直播业务请求,将该直播业务请求转换为N1QL表示的逻辑描述语句。具体地,服务端的前端机Nginx,通过关系描述语言N1QL,分析直播业务请求,将该直播业务请求转换为N1QL表示的逻辑描述语句。然后,根据逻辑描述语句,从已保存的数据库中获取该直播业务请求所请求的业务数据。最后,将获取到的业务数据发送给客户端。

本发明实施例提供的数据获取方法中,将多个服务节点产生的数据实时保存在数据库中,服务端在接收到客户端发送的直播业务请求后,将该直播业务请求转换为对应的逻辑描述语句,根据逻辑描述语句,从数据库中直接获取该直播业务请求所请求的业务数据,能够实现对数据的描述性组装,降低数据获取过程中的时间开销。

本发明实施例提供了一种数据获取装置,如图5所示,包括:

接收模块501,用于接收直播业务请求;

转换模块502,用于将直播业务请求转换为逻辑描述语句;

第一获取模块503,用于根据逻辑描述语句,从已保存的数据库中获取直播业务请求所请求的业务数据,其中,数据库实时接收并保存多个服务节点产生的原始数据。

本发明实施例提供的数据获取装置,通过直播业务请求对应的逻辑描述语句,直接从数据库中获取到直播业务请求所请求的业务数据,不再需要在接收到直播业务请求后,从多个服务节点中进行多次调用、并将调用到的数据进行组合。如此降低了数据获取过程中的时间开销。

可选的,该装置还包括:

第二获取模块,用于获取所述原始数据,所述原始数据包括:文本类数据、视频类数据以及音频类数据;

确定模块,用于确定所述原始数据的类型,所述类型包括:文本类、视频类以及音频类;

添加模块,用于根据各原始数据类型的不同,对各原始数据添加类型标签,所述类型标签包括:文本类标签、视频类标签以及音频类标签;

保存模块,用于根据类型标签的不同,将原始数据分类保存至数据库中。

可选的,第一获取模块503,包括:

确定子模块,用于根据逻辑描述语句,确定待获取业务数据所属的类别,所述类别包括:文本类、视频类以及音频类;

获取子模块,用于根据所述类别,从已保存的数据库中对应类别的原始数据中,获取直播业务请求所请求的业务数据。

可选的,接收模块501,具体用于接收客户端发送的直播业务请求;

该装置,还包括:

发送模块,用于将业务数据发送至客户端。

可选的,数据库包括Couchbase,转换模块502,具体用于通过关系描述语言N1QL,分析直播业务请求,将直播业务请求转换为逻辑描述语句。

需要说明的是,本发明实施例的数据获取装置是应用上述数据获取方法的装置,则上述数据获取方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,实现上述数据获取方法的方法步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的电子设备,通过直播业务请求对应的逻辑描述语句,直接从数据库中获取到直播业务请求所请求的业务数据,不再需要在接收到直播业务请求后,从多个服务节点中进行多次调用、并将调用到的数据进行组合。如此降低了数据获取过程中的时间开销。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据获取方法。

本发明实施例提供的计算机可读存储介质,通过直播业务请求对应的逻辑描述语句,直接从数据库中获取到直播业务请求所请求的业务数据,不再需要在接收到直播业务请求后,从多个服务节点中进行多次调用、并将调用到的数据进行组合。如此降低了数据获取过程中的时间开销。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据获取方法。

本发明实施例提供的计算机程序产品,通过直播业务请求对应的逻辑描述语句,直接从数据库中获取到直播业务请求所请求的业务数据,不再需要在接收到直播业务请求后,从多个服务节点中进行多次调用、并将调用到的数据进行组合。如此降低了数据获取过程中的时间开销。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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