CN112699116A - 一种数据处理方法和系统 - Google Patents
一种数据处理方法和系统 Download PDFInfo
- Publication number
- CN112699116A CN112699116A CN201911013928.2A CN201911013928A CN112699116A CN 112699116 A CN112699116 A CN 112699116A CN 201911013928 A CN201911013928 A CN 201911013928A CN 112699116 A CN112699116 A CN 112699116A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- bitmap
- storage state
- processing
- 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
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
Abstract
本发明公开了一种数据处理法和系统,涉及计算机技术领域。该方法的一具体实施方式包括:接收数据处理请求,所述数据处理请求指示了待处理数据及对应的处理类型;根据所述处理类型,调用用于存储所述待处理数据的数据集合和/或指示所述待处理数据存储状态的位图,用以对所述待处理数据进行处理;其中,所述数据集合分页存储所述待处理数据,所述位图分段指示所述待处理数据的存储状态。该实施方式通过数据集合和位图两种数据结构,实现了对待处理数据的快速定位或检索,提高了处理效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法和系统。
背景技术
随着互联网行业的发展,海量数据应运而生,而海量数据一般都采用非结构类型进行存储,需依赖于数据才能快速、有效地检索获取到相应的数据。为提高海量数据的检索效率,精准定位数据成为了关键,因而如何快速、便捷地存储访问或操作数据成为了研究的重点。
目前,常用的数据存储方式主要有两种:在数据库中创建表单存储数据,同时为便于定位数据创建数据库索引;将全部数据以单一集合的形式存储到缓存中。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:数据库索引速提高了数据的检索速度,但随着数据量的增加,数据库索引创建耗时久,且在数据频繁更新的情况下对应的数据库索引也许频繁更新;数据安全性低,冗余备份需要占用大量空间;由于数据量巨大,数据统计或全量读取、分页读取等操作处理难,极可能导致数据源崩溃。
发明内容
有鉴于此,本发明提供一种数据处理方法和系统,该方法通过同时使用分段式位图、分页式数据集合两种数据结构,既保证了数据的安全性,又实现了数据的快速定位,以及对数据有效应校验、统计、全量或者分页拉取等处理的便捷有效性。
为实现上述目的,根据本发明的第一方面,提供了一种数据处理方法,包括:接收数据处理请求,所述数据处理请求指示了待处理数据及对应的处理类型;根据所述处理类型,调用用于存储所述待处理数据的数据集合和/或指示所述待处理数据存储状态的位图,用以对所述待处理数据进行处理;其中,所述数据集合分页存储所述待处理数据,所述位图分段指示所述待处理数据的存储状态。
可选地,根据所述待处理数据和所述位图段容量,确定所述位图记录所述待处理数据的存储状态的段落号,及所述段落号对应的位图段所指示的位置;根据所述待处理数据和所述数据集合页容量,确定所述数据集合存储所述待处理数据的页编号,及所述页编号对应的数据集合页所指示的位置。
可选地,在所述处理类型为校验所述待处理数据是否存在的情况下,调用用于指示所述待处理数据存储状态的位图:在所述存储状态为第一值的情况下,判定所述待处理数据存在;在所指示的所述待处理数据的存储状态为第二值的情况下,判定所述待处理数据不存在。
可选地,在所述处理类型为添加或删除所述待处理数据的情况下:将所述待处理数据添加到所述页编号对应的数据集合页所指示的位置,或从所述页编号对应的数据集合页所指示的位置中删除所述待处理数据;在所述段落号对应的位图段所指示的位置上,将所述待处理数据的存储状态设置为第一值,或将所述待处理数据的存储状态设置为第二值。
可选地,在所述处理类型为获取全部待处理数据的情况下,根据所述数据集合的页编号,分页从所述数据集合中获取所述待处理数据。
为实现上述目的,根据本发明的第二方面,提供了一种数据处理系统,包括:数据处理装置、数据存储装置;其中,所述数据处理装置,用于接收数据处理请求,所述数据处理请求指示了待处理数据及对应的处理类型;根据所述处理类型,从所述数据存储装置中调用用于存储所述待处理数据的数据集合和/或指示所述待处理数据存储状态的位图,用以对所述待处理数据进行处理;其中,所述数据集合分页存储所述待处理数据,所述位图分段指示所述待处理数据的存储状态;所述数据存储装置,用于存储所述位图、所述数据集合。
可选地,所述数据处理装置,还用于,根据所述待处理数据和所述位图段容量,确定所述位图记录所述待处理数据的存储状态的段落号,及所述段落号对应的位图段所指示的位置;根据所述待处理数据和所述数据集合页容量,确定所述数据集合存储所述待处理数据的页编号,及所述页编号对应的数据集合页所指示的位置。
可选地,所述数据处理装置,还用于,在所述处理类型为校验所述待处理数据是否存在的情况下,调用用于指示所述待处理数据存储状态的位图:在所述存储状态为第一值的情况下,判定所述待处理数据存在;在所述存储状态为第二值的情况下,判定所述待处理数据不存在。
可选地,还包括:数据服务装置;在所述处理类型为添加或删除所述待处理数据的情况下:所述数据处理装置,用于将所述待处理数据及对应的处理类型推送至第一消息队列;所述数据服务装置,用于从所述数据存储装置中调用用于存储所述待处理数据的数据集合和指示所述待处理数据存储状态的位图。
可选地,所述数据服务装置,还用于,将所述待处理数据添加到所述页编号对应的数据集合页所指示的位置,或从所述页编号对应的数据集合页所指示的位置中删除所述待处理数据;在所述段落号对应的位图段所指示的位置上,将所述待处理数据的存储状态设置为第一值,或将所述待处理数据的存储状态设置为第二值。
可选地,在所述处理类型为获取全部待处理数据的情况下:所述数据服务装置,用于从所述数据存储装置中调用用于存储所述数据的数据集合,根据所述数据集合的页编号,分页从所述数据集合中获取所述待处理数据,并将所获取的待处理数据推送至第二消息队列;所述数据处理装置,用于从所述第二消息队列中获取所述待处理数据。
可选地,所述数据存储装置为Redis,所述Redis用于存储所述数据集合、所述位图、所述第一消息队列、所述第二消息队列。
为实现上述目的,根据本发明的第三方面,提供了一种用于数据处理的服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的数据处理方法中任一所述方法。
为实现上述目的,根据本发明的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的数据处理方法中任一所述方法。
上述发明的技术方案具有如下优点或有益效果:由于在分页式数据集合=存储待处理数据的同时,使用分段式位图指示了待处理数据的存储状态度,保证了待处理数据的一致性、可靠性及安全性,又避免了冗余备份占用的大量空间;同时,基于分段式位图实现了对数据的快速校验及数量统计;此外,还可基于分页式数据集合实现了对数据快速、有效地分页或者全量读取。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的数据处理方法的主要流程的示意图;
图2a是根据本发明实施例的分页式数据集合示意图;
图2b是根据本发明实施例的分段式位图示意图;
图3是根据本发明实施例的数据处理系统的主要结构的示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
参见图1,本发明实施例提供了一种数据处理方法,具体可以包括的步骤如下:
步骤S101,接收数据处理请求,所述数据处理请求指示了待处理数据及对应的处理类型。
本申请实施例中所指的待处理数据包括但不限于:数值、数据ID、数据编号、数据标识等。其中,数据ID、数据编号、数据标识等对应的数据可以为任意形式或内容的数据,如图片、文本、视频、文件、数值、字符串等。处理类型包括但不限于:对数据有效性或数据是否存在的校验、数据量的统计、数据的读取、获取或拉取等。具体地,以待处理数据为数据ID为例进行说明,通常数据ID都是数值类型的,面对海量的数据ID,通常需要进行的处理有:检验数据ID有效性,利用数据ID进行定位或检索对应的数据,统计数据ID的总量,全量或分页拉取全部数据ID等。
步骤S102,根据所述处理类型,调用用于存储所述待处理数据的数据集合和/或指示所述待处理数据存储状态的位图,用以对所述待处理数据进行处理;其中,所述数据集合分页存储所述待处理数据,所述位图分段指示所述待处理数据的存储状态。
为防止待处理数据数量过大造成的数据检索或定位效率低、耗时久等问题,考虑采用分页式数据集合存储待处理数据,同时采用分段式位图指示待处理数据的存储状态,即待处理数据是否有效或是否存在。其中,数据集合的元素即为存储于数据集合中的待处理数据,且可根据实际需求自行设定数据集合页容量及数据集合页数量,用以将待处理数据存储于不同的数据集合页中,便于通过定位存储待处理数据的数据集合页,实现对待处理数据的快速定位及处理。值得注意的是,数据集合中除存储待处理数据以外,还可以根据实际需求在数据集合中存储数据待处理数据(如数据ID、数据编号、数据标识)对应的文本、图片、视频、文件、字符串等任何数据。位图则根据每一位中存储的数值指示待处理数据的存放状态,如通过存储不同的第一值、第二值指示不同的存储状态,且可根据实际需求设定位图段容量以及位图段数量,用以使用不同位图段中的位置存储的数值指示待处理数据的存储状态,使得可以通过确定待处理数据对应的位图段,快速获取待处理数据的存储状态,进而实现对待处理数据的校验、统计等处理。可以理解的是,第一值、第二值可以为取值不同的任何值,如第一值为1代表待处理数据存在或有效、第二值为0代表待处理数据不存在或无效,又或者第一值为1、第二值为2,亦或第一值为true、第二值为false等。
参见图2a,提供了一种分页式数据集合的示意图,数据集合通过分页存储待处理数据,且设定的数据集合页容量为100对应的页编号分别为0、1、130等,其中,页编号为0的数据集合页可容纳待处理数据1-99,但实际存储的待处理数据有1、2、4、5、6、99等;页编号为1的数据集合页可存储100-199的待处理数据,页编号为130的数据集合页可存储1300-1399的待处理数据。也即是说,不同数据集合页中可存储的待处理数据的数量一致,且可存储的待处理数据不同。
参见图2b,提供了一种分段式位图的示意图,由于位图只通过存储在每一位上的数值(如0或1)指示待处理数据的存储状态,而不存储待处理数据本身,占用的空间小,处理速度极快,因而位图段容量可以较数据集合页容量大很多,可以为百、千、万、十万、百万等数量级。具体地,图2b中以位图段容量为100万、第一值为1表示待处理数据有效或存在、第二值为0表示待处理数据不存在或无效为例进行说明,其中,段落号为0的位图段通过位置编号为0-999999的每一位上的数值指示了待处理数据0-999999的存储状态,段落号为1的位图段通过位置编号为0-999999的每一位上的数值指示了待处理数据1000000-1999999的存储状态,段落号为2的位图段通过位置编号为0-999999的每一位上的数值指示待处理数据2000000-2999999的存储状态。更进一步地,待处理数据为1、4为例进行说明,根据位图段容量100万可知,记录了待处理数据1、4的存储状态的位图段的段落号为0,且在位图段中对应的位置编号即为1、4,而根据对应位置上存储的数值可知,待处理数据1的存储状态为0,即待处理数据1不存在或无效,待处理数据4的存储状态为1,即待处理数据4存在或有效。
由于分段式位图与分页式数据集合数量较多,为了能够实现对待处理数据的快速处理,需要根据待处理数据与数据集合页或位图段之间的对应关系,更快速有效地查找或定位待处理数据对应的数据集合页或位图段。
在一种可选的方式中,根据所述待处理数据和所述位图段容量,确定所述位图记录所述待处理数据的存储状态的段落号,及所述段落号对应的位图段所指示的位置;根据所述待处理数据和所述数据集合页容量,确定所述数据集合存储所述待处理数据的页编号,及所述页编号对应的数据集合页所指示的位置。
具体地,仍参见图2b,以待处理数据为1301为例进行说明,由于位图段容量为100万,则通过计算待处理数据与位图段容量的商值及余数可知,待处理数据1301与位图段容量的商值0、余数为1301,即指示了待处理数据1301的存储状态的位图段的段落号为0,且段落号为0的位图段中编号为1301的位上存储的数值指示了待处理数据1301的存储状态;
具体地,仍参见图2a,仍以待处理数据为1301为例进行说明,由于数据集合页容量为100,则通过计算待处理数据与数据集合页容量的商值及余数可知,待处理数据1301与数据集合页容量100的商值为13、余数为1,即用于存储待处理数据1301的数据集合页的页编号为13,且待处理数据1301在页编号为130的数据集合页中的存储顺序或者对应的位置编号为1。
可以理解的是,由于分段式位图与分页式数据集合的待处理数据存储结构不同,对应地存储的内容也不同,因而对于不同的处理类型,如统计、校验、全量获取或分页获取待处理数据的处理效率不同。如分段式位图更适于统计待处理数据的数量或校验待处理数据是否存在,但同时,由于分段式位图并未存储待处理数据本身,因而不适于进行待处理数据的读取,而分页式数据集合则适于进行分页读取或获取待处理数据。因此,针对不同的处理类型,可以根据实际需求选择调用分段式位图或/和数据集合实现对待处理数据的处理。同时,为保证数据集合页实际存储的待处理数据与分段式位图指示的待处理数据的存储状态的一致性,可以根据实际需需求不定时、或者周期性校验二者的一致性,用以保证数据的可靠性及安全性,又避免了数据备份对大量空间的占用。
在一种可选的实施方式中,在所述处理类型为校验所述待处理数据是否存在的情况下,调用用于指示所述待处理数据存储状态的位图:在所述存储状态为第一值的情况下,判定所述待处理数据存在;在所指示的所述待处理数据的存储状态为第二值的情况下,判定所述待处理数据不存在。
具体地,仍参见图2b,以校验待处理数据4是否存在为例进行说明:首先根据待处理数据4、位图段容量100万的商值及余数可知,记录待处理数据4的位图段的段落号为0,且段落号为0的位置编号4对应的位上存储的数值指示了待处理数据的存储状态;调用位图用以获取位图段0第4位上存储的数值,根据存储的数值1可知,待处理数据4存在。
同样地,在调用位图判断待处理数据是否存在或有效的情况下,可以基于从位图中获取的待处理数据对应的存储状态,统计计算待处理数据的数量或者总量等。
在一种可选的实施方式中,在所述处理类型为添加或删除所述待处理数据的情况下:将所述待处理数据添加到所述页编号对应的数据集合页所指示的位置,或从所述页编号对应的数据集合页所指示的位置中删除所述待处理数据;在所述段落号对应的位图段所指示的位置上,将所述待处理数据的存储状态设置为第一值,或将所述待处理数据的存储状态设置为第二值。
仍参见图2a及图2b,以添加待处理数据3为例进行说明,根据待处理数据3及数据集合页容量100的商值0可知,用于存储待处理数据3的数据集合的页编号为0,并将待处理数据3添加至数据集合页中。更进一步地,为便于处理待处理数据,可以考虑通过待处理数据3及数据集合页容量100的余数3,确定待处理数据3在数据集合页中的存储顺序或位置编号。同时,由于在数据集合页中添加了待处理数据3,相应地需要改变位图中待处理数据3的存储状态,根据待处理数据3及位图段容量1百万的商及余数可知,待处理数据3的存储状态记录在段落号为0、位置编号为3的位上,相应地将该位上的数据设置为第一值(如1),用以标识待处理数据3已存在或有效。
仍参见图2a及图2b,以删除待处理数据4为例进行说明,根据待处理数据4及数据集合页容量100的商值0可知,用于存储待处理数据4的数据集合的页编号为0,并将待处理数据4从该数据集合页中删除。更进一步地,为便于处理待处理数据,可以考虑通过待处理数据4及数据集合页容量100的余数4,确定待处理数据4在数据集合页中的存储顺序或位置编号。同时,由于在数据集合页中删除了待处理数据4,相应地需要改变位图中待处理数据4的存储状态,根据待处理数据4及位图段容量1百万的商及余数可知,待处理数据4的存储状态记录在段落号为0、位置编号为4的位上,相应地将该位上的数据设置为第二值(如0),用以标识待处理数据4不已存在或无效。
可以理解的是,数据处理请求繁多,不同的数据处理请求可能涉及到对相同待处理数据的同一处理,如均为删除待处理数据4、添加待处理数据3等,为避免浪费资源,可以根据实际需求,优先从分段式位图中确定待处理数据的状态,进而判断是否已经对待处理数据进行了删除、添加等处理,如此,避免了再次调用数据集合用以添加或者删除待处理数据等造成的资源、时间浪费。
在一种可选的实施方式中,在所述处理类型为获取全部待处理数据的情况下,根据所述数据集合的页编号,分页从所述数据集合中获取所述待处理数据。
参见图2a,在获取全部待处理数据的情况下,调用数据集合用以获取待处理数据,同时,由于待处理数据量及大,一次性全部拉取耗时久、操作速率低,基于此,从数据集合中分页获取相应的待处理数据。具体地,根据数据集合页的页编号0、1、……13等,先从页编号为0的数据集合页中获取待处理数据1、2、4、5、6、……、99等;再从页编号为1的数据集合页中获取待处理数据101、102、104等,直至将所有数据集合页中的待处理数据获取完毕。可以理解的是,在实际的应用过程中,一次性获取的数据量取决于数据集合页容量,因此可以通过数据集合页容量的方式,调整读取或拉取待处理数据的速度。
基于上述实施例提供的数据处理方法,通过采用分段式位图、分页式数据集合两种数据结构存储数据,既保证了数据的安全性,又实现了数据的快速定位,以及对数据有效应校验、统计、全量或者分页拉取的便捷有效性。
参见图3,在上述实施例的基础上,本发明实施例提供了一种数据处理系统300,包括:数据处理装置301、数据存储装置302;其中,所述数据处理装置301,用于接收数据处理请求,所述数据处理请求指示了待处理数据及对应的处理类型;根据所述处理类型,从所述数据存储装置302中调用用于存储所述待处理数据的数据集合和/或指示所述待处理数据存储状态的位图,用以对所述待处理数据进行处理;其中,所述数据集合分页存储所述待处理数据,所述位图分段指示所述待处理数据的存储状态;所述数据存储装置302,用于存储所述位图、所述数据集合。
具体地,数据处理装置301既可以部署在用户APP上或者用户客户端上,也可以单独部署,用以接收用户发起的数据处理请求。数据存储装置,可以是内存、缓存、Redis等具有存储空间的装置,且与数据处理装置301进行交互或通信。
在一种可选的实施方式中,所述数据处理装置301,还用于,根据所述待处理数据和所述位图段容量,确定所述位图记录所述待处理数据的存储状态的段落号,及所述段落号对应的位图段所指示的位置;根据所述待处理数据和所述数据集合页容量,确定所述数据集合存储所述待处理数据的页编号,及所述页编号对应的数据集合页所指示的位置。
在一种可选的实施方式中,所述数据处理装置301,还用于,在所述处理类型为校验所述待处理数据是否存在的情况下,调用用于指示所述待处理数据存储状态的位图:在所述存储状态为第一值的情况下,判定所述待处理数据存在;在所述存储状态为第二值的情况下,判定所述待处理数据不存在。
在一种可选的实施方式中,数据处理系统300,还包括:数据服务装置303;在所述处理类型为添加或删除所述待处理数据的情况下:所述数据处理装置301,用于将所述待处理数据及对应的处理类型推送至第一消息队列;所述数据服务装置302,用于从所述数据存储装置302中调用用于存储所述待处理数据的数据集合和指示所述待处理数据存储状态的位图。
数据服务装置303可独立于数据处理装置301单独进行部署,如在其它服务器上等,既可以实现与数据处理装置间301的通信,又可以实现与数据存储装置302间的通信。可以理解的是,在接收到的数据处理类型为添加或删除所述待处理数据的情况下,数据处理装置301既可以直接调用数据存储装置302中的数据集合和位图进行待处理数据的添加或删除,也可以通过调用数据服务装置303,通过数据服务装置调用数据存储装置302中的数据集合和位图进行待处理数据的添加或删除。值得注意的是,在数据处理装置301调用数据服务装置303时,数据处理装置301通过第一消息队列实现与数据服务装置303之间的通信。也即是说,数据处理装置301在接收到添加或者删除待处理数据的数据处理请求时,数据处理装置301从数据存储装置302中或者消息中间件中调用第一消息队列,并将数据处理请求指示的待处理数据、处理类型推送至第一消息队列,以使得数据服务装置303根据从第一消息队列中接收到的待处理数据、处理类型,直接调用数据存储装置302中数据集合和位图,用以在数据集合和位图中分别实现对待处理数据的添加或删除。如此,通过第一消息队列实现了数据处理装置301与数据服务装置303之间的解耦,缓解了数据处理装置301或数据服务装置303处理数据处理请求的压力,同时,通过数据服务装置303处第一消息队列的实时监听,防止待处理数据及处理类型的丢失。
在一种可选的实施方式中,所述数据服务装置303,还用于,将所述待处理数据添加到所述页编号对应的数据集合页所指示的位置,或从所述页编号对应的数据集合页所指示的位置中删除所述待处理数据;在所述段落号对应的位图段所指示的位置上,将所述待处理数据的存储状态设置为第一值,或将所述待处理数据的存储状态设置为第二值。
在一种可选的实施方式中,在所述处理类型为获取全部待处理数据的情况下:所述数据服务装置303,用于从所述数据存储装置302中调用用于存储所述数据的数据集合,根据所述数据集合的页编号,分页从所述数据集合中获取所述待处理数据,并将所获取的待处理数据推送至第二消息队列;所述数据处理装置301,用于从所述第二消息队列中获取所述待处理数据。
可以理解的是,在接收到的数据处理类型为获取全部待处理数据的情况下,数据处理装置301既可以直接调用数据存储装置302中的数据集合读取或拉取待处理数据,也可以通过调用数据服务装置303,通过数据服务装置调用数据存储装置302中的数据集合。值得注意的是,在数据处理装置301调用数据服务装置303时,数据处理装置301通过第二消息队列实现待处理数据的获取,该第二消息队列既可以是已经建立并存储在数据存储装置302或消息中间件中的消息队列,也可以是数据处理装置301直接在数据存储装置或消息中间件中新建立的消息队列。具体地,以数据处理装置301新建第二消息队列为例进行说明,则数据处理装置301携带第二消息队列的标识调用数据服务装置,以使得数据服务装置303直接调用数据存储装置302中的数据集合,并通过数据结合页的页编号分页拉取待处理数据,并将分页获取的待处理数据推送至第二消息队列,以使得数据处理装置301可以从第二消息队列中获取待处理数据。如此,在数据处理装置301与数据服务装置303之间形成了消息生产者、消费者模式。同时,可以通过消息队列阻塞模式或者消息队列的长度,平衡数据处理装置301与数据服务装置303之间消息生产或消费压力,如当数据处理装置301的消息消费量小于数据服务装置303的消息生产量时,可以通过见降低第二消息队列的长度降低数据服务装置303的待处理数据拉取能力,当数据处理装置301的消息消费量大于数据服务装置303的消息生产量时,可以通过增加数据服务装置303的线程提升数据服务装置303的待处理数据拉取能力。
在一种可选的实施方式中,所述数据存储装置302为Redis,所述Redis用于存储所述数据集合、所述位图、所述第一消息队列、所述第二消息队列。
可以理解的是,在数据存储装置为Redis的情况下,既可以作为缓存存储数据集合、所述位图,又可以存储消息队列,也可以根据实际需求采用消息中间件建存储消息队列。
图4示出了可以应用本发明实施例的数据处理方法或数据处理装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如待处理数据存储状态)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据处理方法一般由服务器405执行。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收数据处理请求,所述数据处理请求指示了待处理数据及对应的处理类型;根据所述处理类型,调用用于存储所述待处理数据的数据集合和/或指示所述待处理数据存储状态的位图,用以对所述待处理数据进行处理;其中,所述数据集合分页存储所述待处理数据,所述位图分段指示所述待处理数据的存储状态。
根据本发明实施例的技术方案,上述发明的技术方案具有如下优点或有益效果:由于在分页式数据集合=存储待处理数据的同时,使用分段式位图指示了待处理数据的存储状态度,保证了待处理数据的一致性、可靠性及安全性,又避免了冗余备份占用的大量空间;同时,基于分段式位图实现了对数据的快速校验及数量统计;此外,还可基于分页式数据集合实现了对数据快速、有效地分页或者全量读取。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
接收数据处理请求,所述数据处理请求指示了待处理数据及对应的处理类型;
根据所述处理类型,调用用于存储所述待处理数据的数据集合和/或指示所述待处理数据存储状态的位图,用以对所述待处理数据进行处理;其中,所述数据集合分页存储所述待处理数据,所述位图分段指示所述待处理数据的存储状态。
2.根据权利要求1所述的数据处理方法,其特征在于,
根据所述待处理数据和所述位图段容量,确定所述位图记录所述待处理数据的存储状态的段落号,及所述段落号对应的位图段所指示的位置;
根据所述待处理数据和所述数据集合页容量,确定所述数据集合存储所述待处理数据的页编号,及所述页编号对应的数据集合页所指示的位置。
3.根据权利要求1所述的数据处理方法,其特征在于,
在所述处理类型为校验所述待处理数据是否存在的情况下,调用用于指示所述待处理数据存储状态的位图:
在所述存储状态为第一值的情况下,判定所述待处理数据存在;在所指示的所述待处理数据的存储状态为第二值的情况下,判定所述待处理数据不存在。
4.根据权利要求2所述的数据处理方法,其特征在于,在所述处理类型为添加或删除所述待处理数据的情况下:
将所述待处理数据添加到所述页编号对应的数据集合页所指示的位置,或从所述页编号对应的数据集合页所指示的位置中删除所述待处理数据;
在所述段落号对应的位图段所指示的位置上,将所述待处理数据的存储状态设置为第一值,或将所述待处理数据的存储状态设置为第二值。
5.根据权利要求2所述的数据处理方法,其特征在于,
在所述处理类型为获取全部待处理数据的情况下,根据所述数据集合的页编号,分页从所述数据集合中获取所述待处理数据。
6.一种数据处理系统,其特征在于,包括:数据处理装置、数据存储装置;其中,
所述数据处理装置,用于接收数据处理请求,所述数据处理请求指示了待处理数据及对应的处理类型;根据所述处理类型,从所述数据存储装置中调用用于存储所述待处理数据的数据集合和/或指示所述待处理数据存储状态的位图,用以对所述待处理数据进行处理;其中,所述数据集合分页存储所述待处理数据,所述位图分段指示所述待处理数据的存储状态;
所述数据存储装置,用于存储所述位图、所述数据集合。
7.根据权利要求6所述的数据处理系统,其特征在于,所述数据处理装置,还用于,
根据所述待处理数据和所述位图段容量,确定所述位图记录所述待处理数据的存储状态的段落号,及所述段落号对应的位图段所指示的位置;
根据所述待处理数据和所述数据集合页容量,确定所述数据集合存储所述待处理数据的页编号,及所述页编号对应的数据集合页所指示的位置。
8.根据权利要求6所述的数据处理系统,其特征在于,所述数据处理装置,还用于,
在所述处理类型为校验所述待处理数据是否存在的情况下,调用用于指示所述待处理数据存储状态的位图:
在所述存储状态为第一值的情况下,判定所述待处理数据存在;在所述存储状态为第二值的情况下,判定所述待处理数据不存在。
9.根据权利要求7所述的数据处理系统,其特征在于,还包括:数据服务装置;在所述处理类型为添加或删除所述待处理数据的情况下:
所述数据处理装置,用于将所述待处理数据及对应的处理类型推送至第一消息队列;
所述数据服务装置,用于从所述数据存储装置中调用用于存储所述待处理数据的数据集合和指示所述待处理数据存储状态的位图。
10.根据权利要求9所述的数据处理系统,其特征在于,所述数据服务装置,还用于,
将所述待处理数据添加到所述页编号对应的数据集合页所指示的位置,或从所述页编号对应的数据集合页所指示的位置中删除所述待处理数据;
在所述段落号对应的位图段所指示的位置上,将所述待处理数据的存储状态设置为第一值,或将所述待处理数据的存储状态设置为第二值。
11.根据权利要求9所述的数据处理系统,其特征在于,在所述处理类型为获取全部待处理数据的情况下:
所述数据服务装置,用于从所述数据存储装置中调用用于存储所述数据的数据集合,根据所述数据集合的页编号,分页从所述数据集合中获取所述待处理数据,并将所获取的待处理数据推送至第二消息队列;
所述数据处理装置,用于从所述第二消息队列中获取所述待处理数据。
12.根据权利要求11所述的数据处理系统,其特征在于,所述数据存储装置为Redis,所述Redis用于存储所述数据集合、所述位图、所述第一消息队列、所述第二消息队列。
13.一种用于数据处理的服务器,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911013928.2A CN112699116A (zh) | 2019-10-23 | 2019-10-23 | 一种数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911013928.2A CN112699116A (zh) | 2019-10-23 | 2019-10-23 | 一种数据处理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112699116A true CN112699116A (zh) | 2021-04-23 |
Family
ID=75505267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911013928.2A Pending CN112699116A (zh) | 2019-10-23 | 2019-10-23 | 一种数据处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112699116A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282247A (zh) * | 2021-06-24 | 2021-08-20 | 京东科技控股股份有限公司 | 数据存储方法、数据读取方法、装置和电子设备 |
-
2019
- 2019-10-23 CN CN201911013928.2A patent/CN112699116A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282247A (zh) * | 2021-06-24 | 2021-08-20 | 京东科技控股股份有限公司 | 数据存储方法、数据读取方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947668B (zh) | 存储数据的方法和装置 | |
CN108804447B (zh) | 利用缓存响应数据请求的方法和系统 | |
CN108984553B (zh) | 缓存方法和装置 | |
CN110019263B (zh) | 信息存储方法和装置 | |
CN110795315A (zh) | 监控业务的方法和装置 | |
CN111125107A (zh) | 数据处理方法、装置、电子设备和介质 | |
CN110909022A (zh) | 一种数据查询方法和装置 | |
CN112783887A (zh) | 一种基于数据仓库的数据处理方法及装置 | |
CN114153703A (zh) | 微服务的异常定位方法、装置、电子设备和程序产品 | |
CN112118352B (zh) | 通知触发消息的处理方法、装置、电子设备以及计算机可读介质 | |
CN112699116A (zh) | 一种数据处理方法和系统 | |
CN116701020A (zh) | 消息延时处理方法、装置、设备、介质和程序产品 | |
CN112711572B (zh) | 适用于分库分表的在线扩容方法和装置 | |
CN113347052B (zh) | 通过访问日志统计用户访问数据的方法和装置 | |
CN109087097B (zh) | 一种更新链码同一标识的方法和装置 | |
CN113722193A (zh) | 检测页面异常的方法和装置 | |
CN113449230A (zh) | 一种确定曝光元素的方法和系统以及客户端和服务端 | |
CN113220981A (zh) | 一种优化缓存的方法和装置 | |
CN113704242A (zh) | 一种数据处理方法和装置 | |
CN113761433A (zh) | 业务处理方法和装置 | |
CN113704222A (zh) | 一种处理业务请求的方法和装置 | |
CN112214500A (zh) | 数据对比的方法、装置、电子设备和存储介质 | |
CN113778909B (zh) | 一种缓存数据的方法和装置 | |
CN112783925B (zh) | 分页检索方法和装置 | |
CN116450622B (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 |