CN107783974B - 数据处理系统及方法 - Google Patents
数据处理系统及方法 Download PDFInfo
- Publication number
- CN107783974B CN107783974B CN201610716436.XA CN201610716436A CN107783974B CN 107783974 B CN107783974 B CN 107783974B CN 201610716436 A CN201610716436 A CN 201610716436A CN 107783974 B CN107783974 B CN 107783974B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- bill
- preset
- condition
- 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.)
- Active
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/2471—Distributed queries
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据处理系统及方法。该数据处理系统包括:数据管理服务器、第一数据库和第二数据库,所述数据管理服务器分别与所述第一数据库和所述第二数据库连接,用于将满足预设转储条件的数据从所述第一数据库转储到所述第二数据库中;所述第一数据库数据易修改性高于所述第二数据库,所述第二数据库易查询性高于所述第一数据库。本发明提供的数据处理系统及方法,通过混合存储的方式,实现了对数据进行合理的分流存储,提高了后续数据查询以及数据修改的处理效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理系统及方法。
背景技术
随着大数据时代的到来,经常需要对海量的数据进行存储,并需要对存储的数据进行后续的查询、修改等操作。
现有技术中,对于海量数据会采用多个数据库的分布式存储的方式,这种分布式的存储方式,一般采用的都是相同类型的数据库,数据存储到哪个数据库完全是依据各个数据库的存储数据量来进行分配的。
现有技术的分布式存储的方式,虽然与单点数据库的存储方式相比,一定程度上分散了海量数据存储的压力,但是,这种存储方式并没有根据数据自身特点进行合理存储,从而也无法有效地提高后续数据查询操作以及数据修改操作的处理效率。
发明内容
本发明提供一种数据处理系统及方法,用以对数据进行合理地分流存储,从而提高后续数据查询以及数据修改的处理效率。
为达到上述目的,本发明采用如下技术方案:
一方面,本发明提供一种数据处理系统,包括数据管理服务器、第一数据库和第二数据库,所述数据管理服务器分别与所述第一数据库和所述第二数据库连接,用于将满足预设转储条件的数据从所述第一数据库转储到所述第二数据库中;所述第一数据库数据易修改性高于所述第二数据库,所述第二数据库易查询性高于所述第一数据库。
另一方面,本发明提供一种数据处理方法,包括:对第一数据库中的数据进行检测,确定满足预设转储条件的数据;将满足预设转储条件的数据从所述第一数据库转储到第二数据库中;所述第一数据库数据易修改性高于所述第二数据库,所述第二数据库易查询性高于所述第一数据库。
本发明提供的数据处理系统及方法,通过将满足预设转储条件的数据从易于数据修改操作的第一数据库转储到易于数据查询操作的第二数据库中,可实现将数据根据自身的特点分散存储到对应的数据库中,从而能够充分发挥第一数据库和第二数据库的优点。例如,第一数据库中存储有少量的需要经常修改的数据,第二数据库中存储有大量的不需要经常修改的数据,这种混合存储方式实现了对数据进行合理的分流存储,提高了后续数据查询以及数据修改的处理效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明提供的数据处理系统一个实施例的结构示意图;
图2为执行账单转储任务的流程示意图;
图3为执行账单汇总任务的流程示意图;
图4为混合存储结构示意图及转储、汇总处理流程示意图;
图5为数据查询的流程示意图;
图6为本发明提供的数据处理方法一个实施例的流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面结合附图对本发明实施例的数据处理系统及方法进行详细描述。
实施例一
图1为本发明提供的数据处理系统一个实施例的结构示意图。如图1所示,本发明实施例的数据处理系统具体可包括:数据管理服务器11、第一数据库12和第二数据库13。
数据管理服务器11分别与第一数据库12和第二数据库13连接,用于将满足预设转储条件的数据从第一数据库12转储到第二数据库13中。其中,第一数据库12易于数据的修改操作(即易修改性高于第二数据库),第二数据库13易于数据的查询操作(即易查询性高于第一数据库)。
进一步的,第一数据库12具体可为关系型数据库,第二数据库13具体可为非关系型数据库,例如开放结构化数据库(Open Table Service,简称OTS)。
进一步的,预设转储条件具体可包括数据被判定为不需要被修改或者需要被修改的概率低于预设的阈值(例如低于1%)。通过将被判定为不需要被修改或者需要被修改的概率低于预设的阈值的数据从易于数据修改操作的第一数据库12转储到易于数据查询操作的第二数据库13中,使得第一数据库12中存储有少量的需要经常修改的数据,第二数据库13中存储有大量的不需要经常修改的数据,这种混合存储方式实现了对数据进行合理的分流存储,提高了后续数据查询以及数据修改的处理效率。
在实际应用中,可以将新生成的数据先存储于第一数据库12中,因为新生成的数据被修改的几率比较大,之后可以定期对第一数据库12中的数据进行检测,将符合上述预设转储条件的数据转储到第二数据库13中。
具体地,转储条件中,数据是否需要被修改可以通过如下示例性的几种方式判定:
1)数据的类型:例如,存档数据一般可以被判定为不需要被修改,而需要实时更新的记录型数据可以被判定为需要被修改。
2)数据的生成时间:设定一个时间阈值,当当前的时间距离数据的生成时间超过预设阈的时间阈值后,认为该数据不需要被修改,反之,认为该数据是可能需要被修改的。
3)数据自身的标签:例如,数据可以分为已经处理的和未被处理的,通过在数据上添加标示“已处理”和“未处理”的标签,如果存储到第一数据库中的数据中有“已处理”的标签,则判定为该数据不需要被修改,如果存储到第一数据库中的数据中有“未处理”的标签,则判定为该数据需要被修改。
转储条件中,数据需要被修改的概率可以通过如下示例性的几种方式判定:
1)数据的活跃度:即在一定时间段内数据被访问或者被修改次数。可以统计存储在第一数据库中的数据的活跃度,活跃度越高说明该数据被修改的概率越大,反之数据被修改的概率越小。从而可以根据活跃度来确定数据可能被修改的概率,从而确定是需要进行转储。
2)数据的生成时间:一般而言,新数据相对老数据被修改的概率较大,因此,可以建立数据生成后所经历的时间与数据需要被修改的概率之间的映射关系,从而来确定数据需要被修改的概率,进而确定是否需要转存。
进一步的,步骤“将满足预设转储条件的数据从第一数据库12转储到第二数据库13中”具体可包括:拷贝第一数据库12中满足预设转储条件的数据,并存储到第二数据库13中;若存储成功,则删除第一数据库12中满足预设转储条件的数据。这样的机制能够保证数据转储的可靠性和准确性,避免由于传输过程中的系统错误或其他意外故障,而导致数据丢失而无法挽回。
进一步的,针对数据转储不成功的情形,步骤“将满足预设转储条件的数据从第一数据库12转储到第二数据库13中”具体还可包括:若第一数据库12中满足预设转储条件的数据存储到第二数据库13中不成功,则在第一数据库12中记录预设转储条件;到达设定时间后重复执行“拷贝第一数据库12中满足预设转储条件的数据,并存储到第二数据库13中”步骤。
进一步的,本发明实施例中的数据具体可为账单数据、订单数据等。以计费系统中的账单数据为例,计费系统生成的账单数据直接存储至第一数据库12中,周期性的将满足预设转储条件的账单数据从第一数据库12转储到第二数据库13中。
其中,第一数据库12中的账单数据的属性结构具体可如表1所示,包括账单创建时间、账单支付状态、主键Id、用户标识id、产品名称、账单金额、支付金额、欠款金额等信息。
表1第一数据库中的账单数据的属性结构
周期性的将第一数据库12中满足预设转储条件的账单数据作为转储账单数据存储至第二数据库13中,其中,预设转储条件包括账单创建时间位于预设转储时间范围内和/或账单支付状态为已支付状态。例如T时刻(每天零点),通过定时任务将第一数据库12中T-n时刻(账单创建时间为一个月前)账单支付状态为已支付状态的账单数据作为转储账单数据存储至第二数据库13中,并删除第一数据库12中的转储账单数据。以2016年4月12日零点转储定时任务执行为例,要转储一个月前的已支付状态的账单数据,则预设转储时间范围为(0,1457712000)时间戳,即北京时间1970年1月1日8:00:00到2016年3月12日00:00:00已支付状态的账单数据。
通过上述转储方法,只将已经支付的账单数据转储至第二数据库13中,对于少量未支付的账单数据,由于后期需要更新(或修改)操作,留在第一数据库12中,便于更新(或修改)操作。大量的不常用账单数据转储至第二数据库13中,而第一数据库12易于数据的修改操作,第二数据库13易于数据的查询操作,因此这种混合存储方式实现了对数据进行合理的分流存储,提高了后续数据查询以及数据修改的处理效率。
进一步的,在第二数据库13中可以采用索引的方式存储转储账单数据,为方便区分两个数据库中的账单数据,可以将第一数据库12中存储的账单数据称为第一账单数据,将第二数据库13中存储的账单数据称为第二账单数据,即在第二数据库13中建立索引信息及第二账单数据。
以第一数据库为关系型数据库、第二数据库为非关系型数据库为例,其中,第一账单数据的属性格式可以如上述表1所示。第二账单数据的属性格式如下面的表2所示,其至少包括信息标识部分和账单信息部分,第二账单数据的账单信息部分的内容对应于第一账单数据中的数据内容(即上述表1中的整个行的内容),也就是说,在转储的过程中,将第一数据库12中的第一账单数据的全部数据内容写入第二账单数据的账单信息部分,再加上第二数据库13生成的信息标识部分,两部分结合在一起形成了第二账单数据。其中,第二账单数据的信息标识部分用于存储唯一标识账单信息部分的信息标识。
此外,在转储过程中,除了生成第二账单数据外,还要为第二账单数据建立索引信息,索引信息包括信息标识部分和关键字部分,关键字部分存储有从账单信息部分提取出的用于检索的关键字,例如根据用户标识,账单创建时间和/或产品名称提取出的关键字,例如表3所示的索引信息(以用户标识+账单创建时间作为索引信息中的关键字部分为例)。
表2第二数据库中的第二账单数据的属性格式
表3索引信息
关键字部分 | 信息标识部分 |
123_1420041600_123_0 | 123_0 |
123_1420041600_123_1 | 123_1 |
…… | …… |
123_1457712000_123_10 | 123_10 |
进一步的,为方便汇总查询,还可以采用定时任务方式将第一数据库12和第二数据库13中的账单数据通过开放数据处理服务(Open Data Processing Service,简称ODPS)进行离线按月及各产品进行汇总统计并写入到第一数据库中。具体的,本发明实施例的数据处理系统还可以包括数据汇总服务器14,数据汇总服务器14分别与第一数据库12和第二数据库13连接,用于周期性的对第一数据库12中和第二数据库13中满足预设汇总条件的账单数据进行汇总,并将汇总得到的汇总账单数据存储到第一数据12中。将汇总得到的汇总账单数据存储到第一数据库12中,以方便后续对汇总当月的不完整的汇总账单数据进行修改。其中,预设汇总条件具体可包括账单创建时间位于预设汇总时间范围内。
进一步的,为保证数据的准确性,账单转储任务和账单汇总任务在执行过程中要保证互斥。因此本发明实施例的数据管理服务器11在执行转储任务之前,还可以用于:判断当前是否有账单汇总任务在执行;若是,则等待账单汇总任务完成之后,再执行转储任务;若否,则执行转储任务。本发明实施例的数据汇总服务器14在执行汇总任务之前,还可以用于:判断当前是否有账单转储任务在执行;若是,则等待账单转储任务完成之后,再执行汇总任务。具体的,数据管理服务器11在第一数据库12中记录当前转储任务的执行状态,数据汇总服务器14在第一数据库12中记录当前汇总任务的执行状态,数据管理服务器11根据第一数据库12中记录的当前汇总任务的执行状态,确定是否立即执行转储任务,数据汇总服务器14根据第一数据库12中记录的当前转储任务的执行状态,确定是否立即执行汇总任务。其中,账单汇总任务、转储任务在执行时,均可通过写标记位来标记任务执行状态,例如0表示正在执行,1表示执行成功。
图2为执行账单转储任务的流程示意图,如图2所示,在T时刻,开始执行账单转储流程,根据时间[0,T-n]及支付状态确定转储账单数据,判断当前是否有账单汇总任务在执行,若是,则等待账单汇总任务完成之后,再执行转储任务,若否,则写T时刻转储任务开始标记,读取第一数据库12中确定的转储账单数据写入第二数据库13中,删除第一数据库12中的转储账单数据,更新T时刻转储任务标记完成,结束账单转储流程。其中,写T时刻转储任务开始标记,这一步主要通过写标记实现,避免多台机器同时在执行这个任务造成资源浪费,比如在第一数据库12中写入一条任务记录,该任务记录中可以包括如表4中的表项,其中,在该记录中可以包括任务时间戳,该任务时间戳具有唯一性可以作为该任务记录的索引,另外还有一个标记位(其中,0表示开始,1表示结束)。
表4写转储的任务记录
任务机器 | 任务时间戳(唯一) | 标记 |
10.0.0.1 | 1457712000 | 0 |
10.0.0.2 | 1455206400 | 1 |
图3为执行账单汇总任务的流程示意图,如图3所示,在T0时刻,开始执行账单汇总流程,判断当前是否有账单转储任务在执行,若是,则等待账单转储任务完成之后,再执行汇总任务,若否,则写T0时刻汇总任务开始标记,通过异构数据库之间离线交换数据的工具(例如datax)拉取第一数据库12和第二数据库13中满足预设汇总条件的全部账单数据,对拉取的全部账单数据进行汇总并将汇总得到的汇总账单数据存储至第一数据库12中,更新T0时刻汇总任务标记完成,结束账单转储流程。
为更清楚的描述账单转储和汇总任务的执行,混合存储结构示意图及处理流程示意图如图4所示,假设每天1点转储一个月前创建的已支付账单数据,以2016年4月12日1点执行转储为例,第一数据库12中2016年3月12日前创建的已支付账单数据将会被转储至第二数据库13中。假设每月汇总一次全部账单数据,以2016年4月12日2点执行汇总为例,利用datax拉取第一数据库12中和第二数据库13中的全部账单数据并进行汇总,将会汇总出每个用户每个月的汇总账单数据,但2016年4月份的汇总账单数据,由于今天才到12日,因此是不完整的,2016年3月份之前的汇总账单数据是完整的。执行完账单转储和汇总任务后,第一数据库12中存储有第一账单数据(包括2016年3月12日前创建的未支付账单数据和2016年3月12日至今的账单数据)和汇总账单数据(包括2016年3月份之前的完整的汇总账单数据和2016年4月份的不完整的汇总账单数据),第二数据库13中存储有第二账单数据(包括2016年3月12日前创建的已支付账单数据)和索引信息(与2016年3月12日前创建的已支付账单数据对应)。
进一步的,本发明实施例的数据处理系统还可以包括数据查询服务器15。数据查询服务器15分别与第一数据库12和第二数据库13连接,用于在第一数据库12和第二数据库13中查找并获取满足查询条件的账单数据,并将获取到的账单数据输出。其中,查询条件具体可包括用户标识为待查询的用户标识和/或账单创建时间位于查询时间范围内和/或产品名称为待查询的产品名称。
具体的,查询人员输入要查询的查询条件,可以查询某用户在某个查询时间范围内和/或使用某产品的账单数据。根据输入的查询条件依次在第一数据库12和第二数据库13中查找并获取满足查询条件的账单数据作为查询结果账单数据,输出查询结果账单数据。
进一步的,在第二数据库13中查找并获取满足查询条件的账单数据还可以包括以下步骤:在第二数据库13中的索引信息中查找与查询条件对应的关键字;在第二数据库13中的索引信息中查找与关键字对应的信息标识;在第二数据库13中的第二账单数据中查找并获取与信息标识对应的第一账单数据的数据信息即转储账单数据的数据信息。
进一步的,步骤“在第一数据库12和第二数据库13中查找并获取满足查询条件的账单数据”具体可包括:在第一数据库12(或第二数据库13)中查找并获取满足查询条件的账单数据;当在第一数据库12(或第二数据库13)中查找不到满足查询条件的账单数据时,在第二数据库13(或第一数据库12)中查找并获取满足查询条件的账单数据。
进一步的,当采用不同的分页标记标识第一数据库12和第二数据库13时,步骤“在第一数据库12和第二数据库13中查找并获取满足查询条件的账单数据”具体可包括:获取预设的分页标记,分页标记用于唯一标识第一数据库或第二数据库;判定分页标记标识的数据库;在分页标记标识的数据库中查找并获取满足查询条件的账单数据;当在分页标记标识的数据库中查找不到满足查询条件的账单数据时,将分页标记更新为标识另一数据库的分页标记;在更新后的分页标记标识的数据库中查找并获取满足查询条件的账单数据。
具体的,以查询某用户在某个查询时间范围内的账单数据为例,具体查询流程可如图5所示,包括:
S501,获取输入的指定用户标识id和查询时间范围,系统默认的分页大小P以及分页标记(分页标记包括待查询的数据库的标记,例如以开头字母r代表第一数据库12,以开头字母o代表第二数据库13,分页标记中还包括待查询的数据库中待查询的起始数据的标记,例如以第一数据库12中的第一账单数据中的主键Id代表第一数据库12中待查询的起始数据的标记,以第二数据库13中的索引信息中的关键字代表第二数据库13中待查询的起始数据的标记)。
S502,判断分页标记是否为第二数据库13的标记。若否,则执行步骤S503;若是,则执行S513。
S503,根据分页标记获得第一数据库12中账单数据开始的标记即主键Id。
S504,在第一数据库12中从指定主键Id读取满足查询条件的账单数据,数量上限设定为P+1条。
S505,设置n为从第一数据库12中实际读取的账单数据的条数。
S506,判断n是否等于P+1。若否,则执行S507;若是,则执行S515。
S507,设置第二数据库13中账单数据开始的关键字为查询时间范围中的最小时间戳对应的关键字。
S508,在第二数据库13中从指定关键字读取满足查询条件的P-n+1条账单数据。
S509,设置m为从第二数据库13中实际读取的账单数据的条数。
S510,判断m是否等于P-n+1。若是,则执行S511;若否,则执行S516。
S511,设置分页标记为第二数据库13的标记和从第二数据库中实际读取到的最后一条即第P-n+1条账单数据对应的关键字
S512,输出当前页的账单数据及分页标记。若分页标记不为空则返回执行步骤S502。若分页标记为空,则停止查询,流程结束。
S513,设置n为0。
S514,根据分页标记获得第二数据库13中账单数据开始的标记即关键字,继续执行S508。
S515,设置分页标记为第一数据库12的标记和从第一数据库中实际读取到的最后一条即第n条账单数据对应的主键Id。
S516,设置分页标记为空。
为更清楚的说明上述查询流程,下面以查询用户123在2015-01-0100:00:00到2016-4-12 00:00:00的账单,系统默认一页P=100条,分页标记为“r_1001”为例进行描述:根据分页标记可知要在r代表的第一数据库12中从主键Id=1001开始搜索账单数据,并且用户标识id=123,并且时间满足2015-01-01到2016-4-12,最多读取P+1=101条。假设实际读取到的账单数据的条数只有90条(即n=90),则剩余的可以再读取的账单条数为P-n=10条需要从第二数据库13中读取。设置第二数据库13中账单开始的关键字=123_1420041600_123_0(其中,1420041600为2015-01-01 00:00:00对应的时间戳),从关键字=123_1420041600_123_0开始顺序读取P-n+1=11条满足条件的账单数据,根据关键字在表3中查找对应的信息标识,根据信息标识在表2中查找到对应的账单信息即查找到对应的账单数据。如果实际读取到11条(即m=11),将11条中的最后一条作为分页标记返回,即o_123_1457712000_123_10。输出当前页的100条账单数据(包括90条第一数据库12中读取的账单数据和10条第二数据库13中读取的账单数据)及分页标记o_123_1457712000_123_10。当点击下一页时,继续从o代表的第二数据库13中读取数据,设置n=0,根据分页标记从关键字=123_1457712000_123_10开始顺序读取P-n+1=101条数据,假设实际读取到m=80条数据,则设置分页标记为空,输出当前页的80条账单数据及分页标记为空,结束查询流程。
进一步的,本发明实施例的数据处理系统还可以包括数据汇总查询服务器16。数据汇总查询服务器16分别与第一数据库12和数据汇总服务器14连接,用于根据数据汇总服务器14当前的汇总进度将汇总查询时间范围划分为未汇总时间范围和已汇总时间范围,在第一数据库12中查找并获取账单创建时间位于未汇总时间范围内的账单数据和汇总时间范围位于已汇总时间范围内的汇总账单数据,并对获取到的账单数据和汇总账单数据进行汇总,将汇总得到的汇总查询结果数据输出。
具体的,基于图4所示的混合存储结构示意图及处理流程示意图,2016年3月份之前的汇总账单数据是完整的,假设要查询2015年4月到2016-04-19日的汇总账单,则将时间拆分为已汇总时间范围2015年4月-2016年3月和未汇总时间范围2016-4-1日到2016-04-19日两个时间段。第一个时间段的汇总账单从第一数据库12中的汇总账单数据中直接查找并获取,第二个时间段的汇总账单从第一数据库12中的账单数据中查找并获取,然后两个结果进行汇总,输出汇总结果。
此处需要说明的是,本发明实施例中的数据管理服务器11、数据汇总服务器14、数据查询服务器15和数据汇总查询服务器16的功能可由一个部件来实现,也可由多个部件来实现。
本发明实施例的数据处理系统,通过将满足预设转储条件的数据从易于数据修改操作的第一数据库转储到易于数据查询操作的第二数据库中,可实现将数据根据自身的特点分散存储到对应的数据库中,从而能够充分发挥第一数据库和第二数据库的优点。例如,第一数据库中存储有少量的需要经常修改的数据,第二数据库中存储有大量的不需要经常修改的数据,这种混合存储方式实现了对数据进行合理的分流存储,提高了后续数据查询以及数据修改的处理效率。通过定时汇总任务将汇总账单数据存储在第一数据库中,提高了后续数据汇总查询的处理效率。
实施例二
图6为本发明提供的数据处理方法一个实施例的流程示意图。如图6所示,本发明实施例的数据处理方法可由图1所示的数据处理系统来实现,具体可包括:
S600,对第一数据库中的数据进行检测,确定满足预设转储条件的数据。
S601,将满足预设转储条件的数据从第一数据库转储到第二数据库中。其中,第一数据库易于数据的修改操作(即易修改性高于第二数据库),第二数据库易于数据的查询操作(即易查询性高于第一数据库)。
进一步的,第一数据库具体可为关系型数据库,第二数据库具体可为非关系型数据库。
进一步的,预设转储条件包括数据被判定为不需要被修改或者需要被修改的概率低于预设的阈值。
进一步的,步骤S601具体可包括:拷贝第一数据库中满足预设转储条件的数据,并存储到第二数据库中;若存储成功,则删除第一数据库中满足预设转储条件的数据。
进一步的,步骤S601具体还可包括:若第一数据库中满足预设转储条件的数据存储到第二数据库中不成功,则在第一数据库中记录预设转储条件;到达设定时间后重复执行拷贝第一数据库中满足预设转储条件的数据,并存储到第二数据库中步骤。
进一步的,上述数据具体可为账单数据。
进一步的,账单数据中包括账单创建时间和账单支付状态,预设转储条件包括账单创建时间位于预设转储时间范围内和/或账单支付状态为已支付状态。
进一步的,本发明实施例的数据处理方法还可包括:
S602,对第一数据库中和第二数据库中满足预设汇总条件的账单数据进行汇总,并将汇总得到的汇总账单数据存储到第一数据库中。
进一步的,账单数据中包括账单创建时间,预设汇总条件包括账单创建时间位于预设汇总时间范围内。
进一步的,本发明实施例的数据处理方法还可包括:在第一数据库中记录当前转储任务的执行状态和当前汇总任务的执行状态;根据第一数据库中记录的当前汇总任务的执行状态,确定是否立即执行转储任务;根据第一数据库中记录的当前转储任务的执行状态,确定是否立即执行汇总任务。
进一步的,本发明实施例的数据处理方法还可包括:
S603,在第一数据库和第二数据库中查找并获取满足查询条件的账单数据,并将获取到的账单数据输出。
进一步的,账单数据中包括用户标识和/或账单创建时间和/或产品名称,查询条件包括用户标识为待查询的用户标识和/或账单创建时间位于查询时间范围内和/或产品名称为待查询的产品名称。
进一步的,步骤S603具体可包括:在第一数据库或第二数据库中查找并获取满足查询条件的账单数据;当在第一数据库或第二数据库中查找不到满足查询条件的账单数据时,在第二数据库或第一数据库中查找并获取满足查询条件的账单数据。
进一步的,步骤S603具体可包括:获取预设的分页标记,分页标记用于唯一标识第一数据库或第二数据库;判定分页标记标识的数据库;在分页标记标识的数据库中查找并获取满足查询条件的账单数据;当在分页标记标识的数据库中查找不到满足查询条件的账单数据时,将分页标记更新为标识另一数据库的分页标记;在更新后的分页标记标识的数据库中查找并获取满足查询条件的账单数据。
进一步的,本发明实施例的数据处理方法还可包括:
S604,根据当前的汇总进度将汇总查询时间范围划分为未汇总时间范围和已汇总时间范围,在第一数据库中查找并获取账单创建时间位于未汇总时间范围内的账单数据和汇总时间范围位于已汇总时间范围内的汇总账单数据,对获取到的账单数据和汇总账单数据进行汇总,将汇总得到的汇总查询结果数据输出。
具体的,本发明实施例的数据处理方法的具体实现过程可参见实施例一中的相关描述,此处不再赘述。
本发明实施例的数据处理方法,通过将满足预设转储条件的数据从易于数据修改操作的第一数据库转储到易于数据查询操作的第二数据库中,可实现将数据根据自身的特点分散存储到对应的数据库中,从而能够充分发挥第一数据库和第二数据库的优点。例如,第一数据库中存储有少量的需要经常修改的数据,第二数据库中存储有大量的不需要经常修改的数据,这种混合存储方式实现了对数据进行合理的分流存储,提高了后续数据查询以及数据修改的处理效率。通过定时汇总任务将汇总账单数据存储在第一数据库中,提高了后续数据汇总查询的处理效率。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (28)
1.一种数据处理系统,其特征在于,包括数据管理服务器、第一数据库和第二数据库,
所述数据管理服务器分别与所述第一数据库和所述第二数据库连接,用于将满足预设转储条件的数据从所述第一数据库转储到所述第二数据库中;
所述第一数据库易修改性高于所述第二数据库,所述第二数据库易查询性高于所述第一数据库,
其特征在于,所述预设转储条件包括所述数据被判定为不需要被修改或者需要被修改的概率低于预设的阈值。
2.根据权利要求1所述的数据处理系统,其特征在于,所述第一数据库为关系型数据库,所述第二数据库为非关系型数据库。
3.根据权利要求1所述的数据处理系统,其特征在于,所述将满足预设转储条件的数据从所述第一数据库转储到所述第二数据库中包括:
拷贝所述第一数据库中满足所述预设转储条件的数据,并存储到所述第二数据库中;
若存储成功,则删除所述第一数据库中满足所述预设转储条件的数据。
4.根据权利要求3所述的数据处理系统,其特征在于,所述将满足预设转储条件的数据从所述第一数据库转储到所述第二数据库中还包括:
若所述第一数据库中满足所述预设转储条件的数据存储到所述第二数据库中不成功,则在所述第一数据库中记录所述预设转储条件;
到达设定时间后重复执行所述拷贝所述第一数据库中满足所述预设转储条件的数据,并存储到所述第二数据库中步骤。
5.根据权利要求1所述的数据处理系统,其特征在于,所述数据具体为账单数据。
6.根据权利要求5所述的数据处理系统,其特征在于,所述账单数据中包括账单创建时间和账单支付状态,所述预设转储条件包括所述账单创建时间位于预设转储时间范围内和/或所述账单支付状态为已支付状态。
7.根据权利要求5所述的数据处理系统,其特征在于,还包括数据汇总服务器;
所述数据汇总服务器分别与所述第一数据库和所述第二数据库连接,用于对所述第一数据库中和所述第二数据库中满足预设汇总条件的账单数据进行汇总,并将汇总得到的汇总账单数据存储到所述第一数据库中。
8.根据权利要求7所述的数据处理系统,其特征在于,所述账单数据中包括账单创建时间,所述预设汇总条件包括所述账单创建时间位于预设汇总时间范围内。
9.根据权利要求7所述的数据处理系统,其特征在于,所述数据管理服务器还用于在所述第一数据库中记录当前转储任务的执行状态,所述数据汇总服务器还用于在所述第一数据库中记录当前汇总任务的执行状态;
所述数据管理服务器还用于根据所述第一数据库中记录的当前汇总任务的执行状态,确定是否立即执行转储任务;
所述数据汇总服务器还用于根据所述第一数据库中记录的当前转储任务的执行状态,确定是否立即执行汇总任务。
10.根据权利要求5所述的数据处理系统,其特征在于,还包括数据查询服务器;
所述数据查询服务器分别与所述第一数据库和所述第二数据库连接,用于在所述第一数据库和所述第二数据库中查找并获取满足查询条件的账单数据,并将获取到的账单数据输出。
11.根据权利要求10所述的数据处理系统,其特征在于,所述账单数据中包括用户标识和/或账单创建时间和/或产品名称,所述查询条件包括所述用户标识为待查询的用户标识和/或所述账单创建时间位于查询时间范围内和/或所述产品名称为待查询的产品名称。
12.根据权利要求10所述的数据处理系统,其特征在于,所述在所述第一数据库和所述第二数据库中查找并获取满足查询条件的账单数据包括:
在所述第一数据库或所述第二数据库中查找并获取满足所述查询条件的账单数据;
当在所述第一数据库或所述第二数据库中查找不到满足所述查询条件的账单数据时,在所述第二数据库或所述第一数据库中查找并获取满足所述查询条件的账单数据。
13.根据权利要求10所述的数据处理系统,其特征在于,所述在所述第一数据库和所述第二数据库中查找并获取满足查询条件的账单数据包括:
获取预设的分页标记,所述分页标记用于唯一标识所述第一数据库或所述第二数据库;
判定所述分页标记标识的数据库;
在所述分页标记标识的数据库中查找并获取满足所述查询条件的账单数据;
当在所述分页标记标识的数据库中查找不到满足所述查询条件的账单数据时,将所述分页标记更新为标识另一数据库的分页标记;
在更新后的所述分页标记标识的数据库中查找并获取满足所述查询条件的账单数据。
14.根据权利要求7所述的数据处理系统,其特征在于,还包括数据汇总查询服务器;
所述数据汇总查询服务器分别与所述第一数据库和所述数据汇总服务器连接,用于根据所述数据汇总服务器当前的汇总进度将汇总查询时间范围划分为未汇总时间范围和已汇总时间范围,在所述第一数据库中查找并获取账单创建时间位于所述未汇总时间范围内的账单数据和汇总时间范围位于所述已汇总时间范围内的汇总账单数据,并对获取到的账单数据和汇总账单数据进行汇总,将汇总得到的汇总查询结果数据输出。
15.一种数据处理方法,其特征在于,包括:
对第一数据库中的数据进行检测,确定满足预设转储条件的数据;
将满足预设转储条件的数据从所述第一数据库转储到第二数据库中;
所述第一数据库易修改性高于所述第二数据库,所述第二数据库易查询性高于所述第一数据库,
所述预设转储条件包括所述数据被判定为不需要被修改或者需要被修改的概率低于预设的阈值。
16.根据权利要求15所述的数据处理方法,其特征在于,所述第一数据库为关系型数据库,所述第二数据库为非关系型数据库。
17.根据权利要求15所述的数据处理方法,其特征在于,所述将满足预设转储条件的数据从所述第一数据库转储到第二数据库中包括:
拷贝所述第一数据库中满足所述预设转储条件的数据,并存储到所述第二数据库中;
若存储成功,则删除所述第一数据库中满足所述预设转储条件的数据。
18.根据权利要求17所述的数据处理方法,其特征在于,所述将满足预设转储条件的数据从所述第一数据库转储到第二数据库中还包括:
若所述第一数据库中满足所述预设转储条件的数据存储到所述第二数据库中不成功,则在所述第一数据库中记录所述预设转储条件;
到达设定时间后重复执行所述拷贝所述第一数据库中满足所述预设转储条件的数据,并存储到所述第二数据库中步骤。
19.根据权利要求15所述的数据处理方法,其特征在于,所述数据具体为账单数据。
20.根据权利要求19所述的数据处理方法,其特征在于,所述账单数据中包括账单创建时间和账单支付状态,所述预设转储条件包括所述账单创建时间位于预设转储时间范围内和/或所述账单支付状态为已支付状态。
21.根据权利要求19所述的数据处理方法,其特征在于,还包括:
对所述第一数据库中和所述第二数据库中满足预设汇总条件的账单数据进行汇总,并将汇总得到的汇总账单数据存储到所述第一数据库中。
22.根据权利要求21所述的数据处理方法,其特征在于,所述账单数据中包括账单创建时间,所述预设汇总条件包括所述账单创建时间位于预设汇总时间范围内。
23.根据权利要求21所述的数据处理方法,其特征在于,还包括:
在所述第一数据库中记录当前转储任务的执行状态和当前汇总任务的执行状态;
根据所述第一数据库中记录的当前汇总任务的执行状态,确定是否立即执行转储任务;
根据所述第一数据库中记录的当前转储任务的执行状态,确定是否立即执行汇总任务。
24.根据权利要求19所述的数据处理方法,其特征在于,还包括:
在所述第一数据库和所述第二数据库中查找并获取满足查询条件的账单数据,并将获取到的账单数据输出。
25.根据权利要求24所述的数据处理方法,其特征在于,所述账单数据中包括用户标识和/或账单创建时间和/或产品名称,所述查询条件包括所述用户标识为待查询的用户标识和/或所述账单创建时间位于查询时间范围内和/或所述产品名称为待查询的产品名称。
26.根据权利要求24所述的数据处理方法,其特征在于,所述在所述第一数据库和所述第二数据库中查找并获取满足查询条件的账单数据包括:
在所述第一数据库或所述第二数据库中查找并获取满足所述查询条件的账单数据;
当在所述第一数据库或所述第二数据库中查找不到满足所述查询条件的账单数据时,在所述第二数据库或所述第一数据库中查找并获取满足所述查询条件的账单数据。
27.根据权利要求24所述的数据处理方法,其特征在于,所述在所述第一数据库和所述第二数据库中查找并获取满足查询条件的账单数据包括:
获取预设的分页标记,所述分页标记用于唯一标识所述第一数据库或所述第二数据库;
判定所述分页标记标识的数据库;
在所述分页标记标识的数据库中查找并获取满足所述查询条件的账单数据;
当在所述分页标记标识的数据库中查找不到满足所述查询条件的账单数据时,将所述分页标记更新为标识另一数据库的分页标记;
在更新后的所述分页标记标识的数据库中查找并获取满足所述查询条件的账单数据。
28.根据权利要求21所述的数据处理方法,其特征在于,还包括:
根据当前的汇总进度将汇总查询时间范围划分为未汇总时间范围和已汇总时间范围;
在所述第一数据库中查找并获取账单创建时间位于所述未汇总时间范围内的账单数据和汇总时间范围位于所述已汇总时间范围内的汇总账单数据;
对获取到的账单数据和汇总账单数据进行汇总,将汇总得到的汇总查询结果数据输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610716436.XA CN107783974B (zh) | 2016-08-24 | 2016-08-24 | 数据处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610716436.XA CN107783974B (zh) | 2016-08-24 | 2016-08-24 | 数据处理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107783974A CN107783974A (zh) | 2018-03-09 |
CN107783974B true CN107783974B (zh) | 2022-04-08 |
Family
ID=61388296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610716436.XA Active CN107783974B (zh) | 2016-08-24 | 2016-08-24 | 数据处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107783974B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688350B (zh) * | 2018-06-19 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 一种存储日志的方法、装置 |
CN109344197B (zh) * | 2018-09-13 | 2021-01-26 | 广州帷策智能科技有限公司 | 基于大数据的分页下载方法和装置 |
CN111221814B (zh) * | 2018-11-27 | 2023-06-27 | 阿里巴巴集团控股有限公司 | 二级索引的构建方法、装置及设备 |
CN110032571B (zh) * | 2019-04-18 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 业务流程处理方法、装置、存储介质及计算设备 |
CN110781235A (zh) * | 2019-10-24 | 2020-02-11 | 珠海格力电器股份有限公司 | 基于大数据的采购数据处理方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034592A (zh) * | 2012-12-05 | 2013-04-10 | 华为技术有限公司 | 数据处理方法和装置 |
CN104281536A (zh) * | 2014-09-28 | 2015-01-14 | 株洲南车时代电气股份有限公司 | 一种数据分离储存的装置以及方法 |
CN104794249A (zh) * | 2015-05-15 | 2015-07-22 | 乐得科技有限公司 | 一种数据库的实现方法和设备 |
CN104965850A (zh) * | 2015-04-29 | 2015-10-07 | 云南电网有限责任公司 | 一种基于开源技术的数据库高可用实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101049889B1 (ko) * | 2007-10-22 | 2011-07-19 | 주식회사 이베이지마켓 | 검색을 통한 행태분석에 기반한 키워드 그룹에 대하여광고를 수주하고 타겟 광고하는 웹 사이트 운영 방법 및온라인 시스템 |
CN105653642A (zh) * | 2015-12-25 | 2016-06-08 | 曙光信息产业股份有限公司 | 分布式文件系统的数据管理方法和装置 |
-
2016
- 2016-08-24 CN CN201610716436.XA patent/CN107783974B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034592A (zh) * | 2012-12-05 | 2013-04-10 | 华为技术有限公司 | 数据处理方法和装置 |
CN104281536A (zh) * | 2014-09-28 | 2015-01-14 | 株洲南车时代电气股份有限公司 | 一种数据分离储存的装置以及方法 |
CN104965850A (zh) * | 2015-04-29 | 2015-10-07 | 云南电网有限责任公司 | 一种基于开源技术的数据库高可用实现方法 |
CN104794249A (zh) * | 2015-05-15 | 2015-07-22 | 乐得科技有限公司 | 一种数据库的实现方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107783974A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107783974B (zh) | 数据处理系统及方法 | |
CN109739934B (zh) | 差集对账方法、介质、计算机设备及系统 | |
US8095559B2 (en) | Fast adaptive document filtering | |
US11636083B2 (en) | Data processing method and apparatus, storage medium and electronic device | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN103733195A (zh) | 管理用于基于范围的搜索的数据的存储 | |
CN105069048A (zh) | 一种小文件存储方法、查询方法和装置 | |
CN110928903B (zh) | 数据提取方法及装置、设备和存储介质 | |
CN111078657A (zh) | 一种分布式系统的业务日志查询方法、系统、介质及设备 | |
US10776345B2 (en) | Efficiently updating a secondary index associated with a log-structured merge-tree database | |
CN106709851B (zh) | 大数据检索方法及装置 | |
JP2010520549A (ja) | データの記憶および管理の方法 | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
US20140351273A1 (en) | System and method for searching information | |
CN110597630B (zh) | 一种分布式系统中内容资源的处理方法及系统 | |
CN103744913A (zh) | 一种基于搜索引擎技术的数据库检索方法 | |
US20190377815A1 (en) | Storing data items and identifying stored data items | |
CN109388659B (zh) | 数据存储方法、装置和计算机可读存储介质 | |
US20080071736A1 (en) | Apparatus, system, and method for criteria-based grouping and searching of database management system log records | |
CN114090631A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN109189759A (zh) | Kv存储系统中的数据读取方法、数据查询方法、装置及设备 | |
CN107291938A (zh) | 订单查询系统及方法 | |
CN111581220A (zh) | 用于时间序列数据的存储及检索方法、装置、设备及存储介质 | |
CN111680072A (zh) | 基于社交信息数据的划分系统及方法 | |
CN110245118B (zh) | 一种bim资料信息三维网格化检索归档方法及其归档系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |