CN110019345A - 数据处理方法、装置、***及介质 - Google Patents
数据处理方法、装置、***及介质 Download PDFInfo
- Publication number
- CN110019345A CN110019345A CN201711471315.4A CN201711471315A CN110019345A CN 110019345 A CN110019345 A CN 110019345A CN 201711471315 A CN201711471315 A CN 201711471315A CN 110019345 A CN110019345 A CN 110019345A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- persistence
- intermediate database
- module
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据处理方法。所述方法包括接收访问***的多个第一数据,以及将所述多个第一数据分流暂存于至少两个中间数据库,其中,所述中间数据库能够进行数据查询。本公开还提供了一种数据处理装置、***及介质。
Description
技术领域
本公开涉及互联网技术领域,更具体地,涉及一种数据处理方法、装置、***及介质。
背景技术
互联网发展迅猛的今天,数据的增长量超乎想互联网***中,有时候会遇到高并发写入数据的情况,例如电商大促销活动、集中网络报名、或者集中网络查询等一系列情形。在这些高并发写入数据的情况下,如何保证大量的高并发写入的数据的准确性、不丢失性和***稳定性是非常关键的。现有技术中普遍采用的方案是利用消息中间件的队列特性将写入***的大量数据的堆积在消息队列中,后续再逐个进行消费处理,例如持久化写入数据库中。
在实现本发明构思的过程中,发明人发现现有技术中至少存在如下问题:现有技术中消息中间件起到了数据队列管道的作用,高并发数据写入后都进入数据队列中等待被处理。当数据量巨大时(例如数据洪峰期)该消息中间件有可能由于压力过大而崩溃,导致消息队列中的数据丢失。而且大量数据积压在该消息中间件中,也无法提供实时的查询等数据分析服务。
发明内容
有鉴于此,本公开提供了一种可以将高并发写入数据实时分流至多个中间数据库并可以提供一定的实时查询功能的数据处理方法、装置、***及介质。
本公开的一个方面提供了一种一种数据处理方法。所述方法包括:接收访问***的多个第一数据,以及将所述多个第一数据实时分流暂存于至少两个中间数据库,其中,所述中间数据库能够随机写入数据并能够进行数据查询。
根据本公开的实施例,在将所述多个第一数据实时分流暂存于至少两个中间数据库之前,所述方法还包括:对每一个第一数据,判断所述第一数据是否属于重复性数据;以及在所述第一数据属于重复性数据的情况下,拦截所述第一数据。
根据本公开的实施例,将所述多个第一数据实时分流暂存于至少两个中间数据库,包括根据所述中间数据库的个数,将所述多个第一数据以轮询方式分流至所述至少两个中间数据库。
根据本公开的实施例,所述方法还包括根据调度任务将所述中间数据库的数据持久化至第二数据库,其中所述第二数据库能够持久化存储和查询数据。
根据本公开的实施例,所述调度任务包括以下的任意一项或多项:持久化操作的时间间隔、每次持久化操作的数据量、以及每次持久化操作的数据类型。
根据本公开的实施例,根据调度任务将所述中间数据库的数据持久化至第二数据库之后,所述方法还包括从所述中间数据库删除被持久化处理的数据。。
根据本公开的实施例,所述中间数据库包括LevelDB数据库。
本公开的另一方面提供了一种数据处理装置,包括数据接收模块和数据分流模块。数据接收模块用于接收访问***的多个第一数据。数据分流模块,用于将所述多个第一数据实时分流暂存于至少两个中间数据库,其中,所述中间数据库能够随机写入数据并能够进行数据查询。
根据本公开的实施例,所述装置还包括重复性判断模块和重复数据拦截模块。重复性判断模块用于在将所述多个第一数据分流暂存至两个以上的中间数据库之前,对每一个第一数据,判断所述第一数据是否属于重复性数据。重复数据拦截模块用于在所述第一数据属于重复性数据的情况下,拦截所述第一数据。
根据本公开的实施例,将所述多个第一数据实时分流暂存于至少两个中间数据库,包括根据所述中间数据库的个数,将所述多个第一数据以轮询方式分流至所述至少两个中间数据库。
根据本公开的实施例,所述装置还包括数据持久化模块。数据持久化模块用于根据调度任务将所述中间数据库的数据持久化至第二数据库,其中所述第二数据库能够持久化存储和查询数据。
根据本公开的实施例,所述调度任务包括以下的任意一项或多项:持久化操作的时间间隔、每次持久化操作的数据量、以及每次持久化操作的数据类型。
根据本公开的实施例,所述装置还包括数据删除模块。数据删除模块用于在根据调度任务将所述中间数据库的数据持久化至第二数据库之后,从所述中间数据库删除被持久化处理的数据。。
根据本公开的实施例,所述中间数据库包括LevelDB数据库。
本公开的另一方面提供了一种数据处理***,包括:一个或多个处理器,以及存储器,用于存储一个或多个程序。其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的数据处理方法。
本公开的另一方面提供了一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现如上所述的数据处理方法。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的数据处理方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的数据处理方法。
根据本公开的实施例,可以至少部分地解决高并发写入数据堆积在数据中间件中可能导致的数据不准确、数据丢失、***崩溃等问题,并因此可以实现在很大程度上帮助***稳定地度过数据洪峰期的技术效果。
根据本公开的实施例,将高并发写入数据实时分流至多个可以随机写入的中间数据库,并且该中间数据库还具有一定的数据查询功能。以此方式,一方面可以使得大量数据实现分流,极大地提升了数据的准确性和实时数据处理的抗压能力;另一方面,可以提供一定的实时数据查询,一定程度上保障了数据的实时性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的数据处理方法和装置的***性架构;
图2示意性示出了根据本公开实施例的数据处理方法的流程图;
图3示意性示出了根据本公开另一实施例的数据处理方法的流程图;
图4示意性示出了根据本公开再一实施例的数据处理方法的流程图;
图5示意性示出了根据本公开各个实施例的数据处理方法的实现情景图;
图6示意性示出了根据本公开实施例的数据处理装置的方框图;以及
图7示意性示出了根据本公开实施例的数据处理***的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
本公开的实施例提供了一种数据处理方法、装置、***及介质。本公开的一个方面提供了一种数据处理方法。该方法包括:接收访问***的多个第一数据,以及将该多个第一数据分流暂存于至少两个中间数据库,其中,该中间数据库能够随机写入数据并能够进行数据查询。
根据本公开的实施例,可以至少部分地解决高并发写入数据堆积在数据中间件中可能导致的数据不准确、数据丢失、***崩溃等问题,并因此可以实现在很大程度上帮助***稳定地度过数据洪峰期的技术效果。
根据本公开的实施例,将高并发写入的第一数据实时分流到至少两个可以随机写入的中间数据库,并且该中间数据库还具有一定的数据查询功能。以此方式,一方面可以使得大量的第一数据实现分流,极大地提升了数据的准确性和实时数据处理的抗压能力;另一方面,可以提供一定的实时数据查询,一定程度上保障了数据的实时性。
根据本公开的一些实施例,在将高并发写入的第一数据实时分流暂存于至少两个中间数据库之前,还需要判断每一个第一数据是否为重复性数据。当第一数据为重复性数据时,可以拦截该第一数据,从而减少大量重复性的无效数据给***造成的负担。在一些情况下,该重复性数据可能是竞争对手进行黑客攻击,大量写入的相同重复数据,目的是增加***的数据处理负担以实现对***的攻击。在另一些情况下,该重复性数据可以是例如来自同一用户(例如同一个用户ID)的多次点击或多次相同输入。例如,在在促销活动中进行秒杀或抢单时,一个用户有可能同时登录多个终端设备,并通过该多个终端设备不断重复进行同样的操作。此时可以根据活动规则确定是否需要拦截重复数据(例如,活动规则限定一个用户ID只能抢单一次、或者抢单成功一次后就不可以再抢单,在这些情形下就需要根据活动规则拦截相应地重复数据)。当需要拦截重复数据时,可以通过拦截重复数据的方式减轻***的负担,提升***的有效工作能力。
根据本公开的一些实施例,高并发写入的第一数据分流暂存于中间数据库中以后,可以根据调度任务选择是否对中间数据库中的数据进行持久化操作,以及进行持久化操作的规则。根据本公开的实施例,由于中间数据库中的数据具有规范的数据结构,并且可以实现一定的数据查询功能,从而在数据持久化操作过程中,可以根据一定的规则(例如设置路由规则等)对中间数据库中的数据进行有目的的筛选并持久化。这与现有技术中将数据堆积在数据中间件中存在很大不同。数据中间件起到了数据队列管道的作用,不能够进行数据查询。因此对数据中间件中的数据进行持久化处理时,通常必须将逐个数据进行处理或存储,造成持久化处理负担很大。
对比而言,根据本公开的实施例,数据暂存于中间数据库以后,可以选择是否进行持久化操作,以及如果需要进行数据持久化操作时,可以选择持久化操作的规则。
具体地,在持久化处理过程中,可以通过中间数据库对数据的处理功能按照一定的规则进行持久化操作。在一些实施例中,进行数据持久化处理时,例如可以从中间数据库中选择有价值的(例如,满足一定数据类型或数据属性)的数据持久化存储第二数据库以可以提供数据的持久化存储和查询。在一些实施例中,可以设置持久化操作的时间间隔。在一些实施例汇总,可以设置每次持久化操作的数据量。这样能够有效的提高数据持久化的操作效率。
图1示意性示出了根据本公开实施例的数据处理方法和装置的***性架构100。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的数据处理方法一般可以由服务器105执行。相应地,本公开实施例所提供的数据处理装置一般可以设置于服务器105中。本公开实施例所提供的数据处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例的数据处理方法的流程图。
如图2所示,根据本公开的实施例,该数据处理方法包括操作S201和操作S202。
在操作S201,接收防问***的多个第一数据。
在操作S202,将该多个第一数据实时分流暂存于至少两个中间数据库,其中,该中间数据库能够随机写入数据并能够进行数据查询。
根据本公开的实施例,将多个第一数据实时分流至多个可以随机写入的中间数据库,并且该中间数据库还具有一定的数据查询功能。以此方式,一方面可以使得大量的第一数据实现分流,极大地提升了数据的准确性和实时数据处理的抗压能力;另一方面,可以提供一定的实时数据查询,一定程度上保障了数据的实时性。
根据本公开的实施例,该中间数据库包括LevelDB数据库。
LevelDB数据库是Google开源的持久化key-value(以关键字方式访问)单机数据库,具有很高的随机写,顺序读/写性能。同时可以提供少量的查询功能。LevelDB数据库很适合应用在查询较少,而写很多的场景。例如在抢票的场景中、或者考生网络查询考试成绩的场景中或者、或者促销活动秒杀或抢单的场景中,会有大量用户同时从大量的终端设备101、102、和/或103向服务器105写入数据,而服务器105可以仅将抢票成功、或这成绩查询成功、或者秒杀成功或抢单成功的数据反馈给终端设备101、102、和/或103。在这个过程中,服务器105向终端设备101、102、和/或103提供的数据查询服务(即反馈给终端的数据)中的数据量明显少于从终端设备101、102、或103向服务器105写入的数据量。在类似于以上所举例的场景中,会存在大量的高并发数据写入服务器105,而服务器105可以仅查询部分有效数据并反馈给用户终端101、102、和/或103。LevelDB数据库就非常适合应用于诸如以上所举例的这些场景。
根据本公开的实施例,根据该中间数据库的个数,将该多个第一数据以轮询方式分流至该至少两个中间数据库。
通过轮询的方式,可以将高并发写入***的第一数据,以大致均匀的方式分流到至少两个中间数据库中,从而可以在一定程度上使得每个数据库中的数据量相当,使每个数据库中的承受压力相当。
图3示意性示出了根据本公开另一实施例的数据处理方法的流程图。
如图3所以,根据本公开另一实施例,该数据处理方法除操作S201和操作S202之外,还包括操作S302。并且,当操作S302判断结果为是时,该数据处理方法还包括操作S303。
在操作S302,对每一个第一数据,判断该第一数据是否属于重复性数据。
在操作S303,在该第一数据属于重复性数据的情况下,拦截该第一数据。
在一些情况下,该重复性数据可能是竞争对手进行黑客攻击,大量写入的相同重复数据,目的是增加***的数据处理负担以实现对***的攻击。在另一些情况下,该重复性数据可以是例如来自同一用户(例如用户ID)的多次点击或多次相同输入。例如,在在促销活动中进行秒杀或抢单时,一个用户有可能同时登录多个终端设备,并通过该多个终端设备不断重复进行同样的操作。此时可以根据活动规则确定是否需要拦截重复数据。根据本公开的实施例,当需要拦截重复数据时,可以通过拦截重复数据的方式减轻***的负担,
根据本公开的实施例,在将大量第一数据实时分流至多个中间数据库之前,还需要判断每一个第一数据是否为重复性数据。当某个第一数据为重复性数据时拦截该数据,从而减少大量重复性的无效数据给***造成的负担,提升***的抗攻击能力以及***的有效工作能力等。
图4示意性示出了根据本公开再一实施例的数据处理方法的流程图。
如图4所示,根据本公开再一实施例,该数据处理方法除操作S201和操作S202之外,还包括操作S403。在一些实施例中,还可以进一步包括操作S404。
在操作S403,根据调度任务将该中间数据库的数据持久化至第二数据库,其中该第二数据库能够持久化存储和查询数据。该第二数据库例如可以是Oracle数据库等。
根据本公开的实施例,将第一数据暂存于中间数据库中以后,可以根据调度任务选择对中间数据库中的数据进行持久化处理。
根据本公开的实施例,由于中间数据库中的数据具有规范的数据结构,并且可以实现一定的数据查询功能,从而在数据持久化操作过程中,可以根据一定的规则(例如设置路由规则)对中间数据库中的数据进行有目的的筛选并持久化。
根据本公开的实施例,该调度任务包括以下的任意一项或多项:持久化操作的时间间隔、每次持久化操作的数据量、以及每次持久化操作的数据类型。
具体地,在持久化处理过程中,可以通过中间数据库对数据的处理功能按照一定的规则进行持久化操作。例如,在一些实施例中,可以选择符合相应数据类型数据进行持久化操作。或者,在一些实施例中,对数据进行持久化时,还可以选择每一次持久化操作的数据量,以及持久化操作的时间间隔。这样能够有效的提高数据持久化的操作效率。
在操作S404中,从该中间数据库删除被持久化处理的数据。以此方式,可以实现中间数据库的重复利用,提高***整体的利用效率。
以下结合图5的一个示例性实施例,对参考图2~图4所描述的方法流程进行进一步说明。
图5示意性示出了根据本公开各个实施例的数据处理方法的实现情景图。
在操作S201中***接收到大量同时写入的第一数据。
例如,具体地,***可以包括Nginx服务端和Redis控制端。其中对Redis控制端进行配置,从而可以根据本公开实施例的方法对写入的大量第一数据进行处理。Redis控制端提供的控制服务具体可以包括设置实时分流的中间数据库的个数、基于轮询算法将多个第一数据进行分流、设置是否需要判断每一个第一数据是否属于重复性数据和拦截重复性数据、设置是否持久化中间数据库中的数据、以及对数据持久化处理进行配置等。
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。基于Lua脚本可对Redis缓存进行操作。
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,是一个高性能的key-value数据库。
当在Redis控制端中设置需要判断每一个第一数据是否属于重复性数据以及拦截重复性数据时,在操作S302对每一个第一数据判断是否数据重复性数据。
当属于重复性数据时,可以在操作S303中拦截该重复性数据。
对于不属于重复性数据的第一数据,则可以根据Redis控制端中设置的分流规则实时分流中多个中间数据库(例如LevelDB数据库)。不同的LevelDB数据库接收到数据写入请求后,可以将请求对应的第一数据快速写入LevelDB数据库中。
有少部分业务可能需要一定的实时性,即写入后立即查询。在第一数据写入LevelDB数据库后但未持久化至第二数据库之前,可先查询对应的LevelDB数据库。
当在Redis控制端中配置需要进行数据持久化处理时,可以在操作S403中将中间数据库的数据持久化至第二数据库。具体地,可以根据Redis控制端的持久化配置,并基于任务调度框架Quartz可以将将LevelDB中的数据持久化至第二数据库。这可以用于当中数据库压力过大时,避免继续增加中间数据库压力。Quartz是一个作业调度框架。为允许开发人员根据时间间隔来调度作业。在一些实施例中,该调度框架还可以是niubi-job、TbSchedule等。
在一些实施例中,也可以在Redis控制端中配置不进行数据持久化处理,此时LevelDB中的数据可以一直存储于其中,或者在不需要数据时直接从LevelDB中删除。
在一些实施例中,Redis控制端中的持久化配置可以包括配置每一次持久化操作的数据量,即每次持久化多少量的数据,这样可以进一步降低对数据库的写入压力,避免数据库宕机。
在一些实施例中,Redis控制端中的持久化配置可以包括配置持久化操作的路由规则,即哪些数据持久化至哪台数据库服务器。如有三个第二数据库、两个LevelDB数据库,如何将LevelDB数据库中数据更均匀更合理的写入到三个第二数据库中。
在将LevelDB中的数据持久化至第二数据库中后,可以根据Redis控制端中的配置,执行操作S404将LevelDB中的数据进行删除,从而保证了不浪费LevelDB的存储空间,便于后续的高并发数据写入。
图6示意性示出了根据本公开实施例的数据处理装置600的方框图。
根据本公开的实实施例,该数据处理装置600可以用于实现参考图2~图5所示的数据处理方法。
如图6所示,数据处理装置600包括数据接收模块610和数据分流模块620。数据接收模块610用于接收访问***的多个第一数据。数据分流模块620用于将该多个第一数据实时分流暂存于至少两个中间数据库,其中,该中间数据库能够随机写入数据并能够进行数据查询。
根据本公开的实施例,该中间数据库包括LevelDB数据库。
根据本公开的实施例,将该多个第一数据实时分流暂存于至少两个中间数据库,包括根据该中间数据库的个数,将该多个第一数据以轮询方式分流至该至少两个中间数据库。
根据本公开的实施例,数据处理装置600还包括重复性判断模块630和重复数据拦截模块640。重复性判断模块630用于在将该多个第一数据分流暂存至两个以上的中间数据库之前,对每一个第一数据,判断该第一数据是否属于重复性数据。重复数据拦截模块640用于在该第一数据属于重复性数据的情况下,拦截该第一数据。
根据本公开的实施例,数据处理装置600还包括数据持久化模块650。数据持久化模块650用于根据调度任务将该中间数据库的数据持久化至第二数据库,其中该第二数据库能够持久化存储和查询数据。
根据本公开的实施例,该调度任务包括以下的任意一项或多项:持久化操作的时间间隔、每次持久化操作的数据量、以及每次持久化操作的数据类型。
根据本公开的实施例,数据处理装置600还包括数据删除模块660。数据删除模块660用于在根据调度任务将该中间数据库的数据持久化至第二数据库之后,从该中间数据库删除被持久化处理的数据。
可以理解的是,数据接收模块610,数据分流模块620,重复性判断模块630,重复数据拦截模块640,数据持久化模块650以及数据删除模块660可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,数据接收模块610,数据分流模块620,重复性判断模块630,重复数据拦截模块640,数据持久化模块650以及数据删除模块660中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,数据接收模块610,数据分流模块620,重复性判断模块630,重复数据拦截模块640,数据持久化模块650以及数据删除模块660中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图7示意性示出了根据本公开实施例的数据处理***的方框图。图7示出的***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,根据本公开实施例的***700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行参考图2~图5描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有***700操作所需的各种程序和数据。处理器701、ROM 702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行以上参考图2~图5描述的数据处理方法的各种操作。需要注意,该程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在该一个或多个存储器中的程序来执行以上参考图2~图5描述的数据处理方法的各种操作。
根据本公开的实施例,***700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。***700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口707。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例,上文参考流程图描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器701执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。根据本公开的实施例,计算机可读介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行根据本公开实施例的数据处理方法。该方法包括:接收访问***的多个第一数据,以及将该多个第一数据分流暂存于至少两个中间数据库,其中,该中间数据库能够随机写入数据并能够进行数据查询。
根据本公开的实施例,在将该多个第一数据分流暂存至两个以上的中间数据库之前,该方法还包括:对每一个第一数据,判断该第一数据是否属于重复性数据;以及在该第一数据属于重复性数据的情况下,拦截该第一数据。
根据本公开的实施例,将该多个第一数据分流暂存于至少两个中间数据库,包括根据该中间数据库的个数,将该多个第一数据以轮询方式分流至该至少两个中间数据库。
根据本公开的实施例,该方法还包括根据调度任务将该中间数据库的数据持久化至第二数据库,其中该第二数据库能够持久化存储和查询数据。
根据本公开的实施例,该调度任务包括以下的任意一项或多项:持久化操作的时间间隔、每次持久化操作的数据量、以及每次持久化操作的数据类型。
根据本公开的实施例,根据调度任务将该中间数据库的数据持久化至第二数据库之后,该方法还包括从该中间数据库删除被持久化处理的数据。
根据本公开的实施例,该中间数据库包括LevelDB数据库。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (16)
1.一种数据处理方法,包括:
接收访问***的多个第一数据;以及
将所述多个第一数据实时分流暂存于至少两个中间数据库,其中,所述中间数据库能够随机写入数据并能够进行数据查询。
2.根据权利要求1所述的方法,其中,将所述多个第一数据实时分流暂存于至少两个中间数据库之前,还包括:
对每一个第一数据,判断所述第一数据是否属于重复性数据;以及
在所述第一数据属于重复性数据的情况下,拦截所述第一数据。
3.根据权利要求1所述的方法,其中,将所述多个第一数据实时分流暂存于至少两个中间数据库包括:
根据所述中间数据库的个数,将所述多个第一数据以轮询方式实时分流至所述至少两个中间数据库。
4.根据权利要求1所述的方法,还包括:
根据调度任务将所述中间数据库的数据持久化至第二数据库,其中所述第二数据库能够持久化存储和查询数据。
5.根据权利要求4所述的方法,其中,所述调度任务包括以下的任意一项或多项:
持久化操作的时间间隔、每次持久化操作的数据量、以及每次持久化操作的数据类型。
6.根据权利要求4所述的方法,根据调度任务将所述中间数据库的数据持久化至第二数据库之后,还包括:
从所述中间数据库删除被持久化处理的数据。
7.根据权利要求1所述的方法,其中:
所述中间数据库包括LevelDB数据库。
8.一种数据处理装置,包括:
数据接收模块,用于接收访问***的多个第一数据;以及
数据分流模块,用于将所述多个第一数据实时分流暂存于至少两个中间数据库,其中,所述中间数据库随机写入数据并能够进行数据查询。
9.根据权利要求8所述的装置,其中,还包括:
重复性判断模块,用于在将所述多个第一数据分流暂存至两个以上的中间数据库之前,对每一个第一数据,判断所述第一数据是否属于重复性数据;以及
重复数据拦截模块,用于在所述第一数据属于重复性数据的情况下,拦截所述第一数据。
10.根据权利要求8所述的装置,其中,将所述多个第一数据实时分流暂存于至少两个中间数据库包括:
根据所述中间数据库的个数,将所述多个第一数据以轮询方式实时分流至所述至少两个中间数据库。
11.根据权利要求8所述的装置,还包括:
数据持久化模块,用于根据调度任务将所述中间数据库的数据持久化至第二数据库,其中所述第二数据库能够持久化存储和查询数据。
12.根据权利要求11所述的装置,其中,所述调度任务包括以下的任意一项或多项:
持久化操作的时间间隔、每次持久化操作的数据量、以及每次持久化操作的数据类型。
13.根据权利要求11所述的装置,还包括:
数据删除模块,用于在根据调度任务将所述中间数据库的数据持久化至第二数据库之后,从所述中间数据库删除被持久化处理的数据。。
14.根据权利要求8所述的装置,其中:
所述中间数据库包括LevelDB数据库。
15.一种数据处理***,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现根据权利要求1~7任意一项所述的方法。
16.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现根据权利要求1~7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711471315.4A CN110019345A (zh) | 2017-12-28 | 2017-12-28 | 数据处理方法、装置、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711471315.4A CN110019345A (zh) | 2017-12-28 | 2017-12-28 | 数据处理方法、装置、***及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019345A true CN110019345A (zh) | 2019-07-16 |
Family
ID=67187203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711471315.4A Pending CN110019345A (zh) | 2017-12-28 | 2017-12-28 | 数据处理方法、装置、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019345A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024032A (zh) * | 2010-11-29 | 2011-04-20 | 广州明朝网络科技有限公司 | 一种基于Erlang的分布式数据缓存和持久化的方法和*** |
CN102508881A (zh) * | 2011-10-18 | 2012-06-20 | 国网电力科学研究院 | 一种电力信息***内存数据库的多节点集群方法 |
CN103970903A (zh) * | 2014-05-27 | 2014-08-06 | 重庆大学 | 基于Web的大型工业***反馈数据实时处理方法及*** |
CN104462435A (zh) * | 2014-12-15 | 2015-03-25 | 同方知网数字出版技术股份有限公司 | 一种分布式数据库横向扩展方法 |
CN106021335A (zh) * | 2016-05-06 | 2016-10-12 | 北京奇虎科技有限公司 | 访问数据库的方法及装置 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和*** |
CN106682134A (zh) * | 2016-12-16 | 2017-05-17 | 郑州云海信息技术有限公司 | leveldb数据库中数据对写入的方法、装置及*** |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和*** |
-
2017
- 2017-12-28 CN CN201711471315.4A patent/CN110019345A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024032A (zh) * | 2010-11-29 | 2011-04-20 | 广州明朝网络科技有限公司 | 一种基于Erlang的分布式数据缓存和持久化的方法和*** |
CN102508881A (zh) * | 2011-10-18 | 2012-06-20 | 国网电力科学研究院 | 一种电力信息***内存数据库的多节点集群方法 |
CN103970903A (zh) * | 2014-05-27 | 2014-08-06 | 重庆大学 | 基于Web的大型工业***反馈数据实时处理方法及*** |
CN104462435A (zh) * | 2014-12-15 | 2015-03-25 | 同方知网数字出版技术股份有限公司 | 一种分布式数据库横向扩展方法 |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和*** |
CN106021335A (zh) * | 2016-05-06 | 2016-10-12 | 北京奇虎科技有限公司 | 访问数据库的方法及装置 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和*** |
CN106682134A (zh) * | 2016-12-16 | 2017-05-17 | 郑州云海信息技术有限公司 | leveldb数据库中数据对写入的方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109308214A (zh) | 数据任务处理方法和*** | |
CN110019087A (zh) | 数据处理方法及其*** | |
CN107451109A (zh) | 报表生成方法及*** | |
CN110442608A (zh) | 信息处理方法、装置、电子设备、介质及*** | |
CN110245011A (zh) | 一种任务调度方法和装置 | |
CN108920222A (zh) | 一种基于规则引擎的业务处理方法和装置 | |
CN110209677A (zh) | 更新数据的方法和装置 | |
CN110427438A (zh) | 数据处理方法及其装置、电子设备和介质 | |
CN107862044A (zh) | 展示页面的方法和装置 | |
CN108510081A (zh) | 机器学***台 | |
CN110427304A (zh) | 用于银行***的运维方法、装置、电子设备以及介质 | |
CN109388654A (zh) | 一种查询数据表的方法和装置 | |
CN110019310A (zh) | 数据处理方法及***、计算机***、计算机可读存储介质 | |
CN109981719A (zh) | 信息处理方法及其***、计算机***和计算机可读介质 | |
CN108984553A (zh) | 缓存方法和装置 | |
CN110020376A (zh) | 数据联动方法和*** | |
CN107613040A (zh) | 一种域名*** dns 服务器查询的方法和装置 | |
CN109960212A (zh) | 任务发送方法和装置 | |
CN107357526A (zh) | 用于处理网络数据的方法和装置、服务器和存储介质 | |
CN110457124A (zh) | 针对业务线程的处理方法及其装置、电子设备和介质 | |
CN109977982A (zh) | 用户分类方法、***、电子设备及计算机可读介质 | |
CN107766137A (zh) | 一种任务处理方法和装置 | |
CN109783201A (zh) | 数据交换方法及其*** | |
CN110019242A (zh) | 用于数据表的处理方法、装置和*** | |
CN110020271A (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 |