CN109388646A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN109388646A CN109388646A CN201811201880.3A CN201811201880A CN109388646A CN 109388646 A CN109388646 A CN 109388646A CN 201811201880 A CN201811201880 A CN 201811201880A CN 109388646 A CN109388646 A CN 109388646A
- Authority
- CN
- China
- Prior art keywords
- timestamp
- tables
- vote information
- data
- read
- 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.)
- Granted
Links
Abstract
本公开涉及一种数据处理方法及装置,所述方法包括:接收数据读取请求,所述数据读取请求用于请求从数据库的多张表中读取数据;获取所述多张表中每张表的投票信息,所述投票信息为表中保存的数据的最新时间戳;根据获取的所述投票信息,确定从所述多张表中读取的数据的时间戳;从所述多张表中读取所确定的时间戳对应的数据。由此,能够降低读操作的等待时间,并且能够确保读取的数据的完整性。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据处理方法及装置。
背景技术
在分析数据时,通常需要对多数据源的同一批次的数据进行关联以得到完整的原始数据样本。然而,由于数据采集的时间和数据写入的时间不同,因此读取的数据的批次可能不一致或读取的数据不完整,从而难以保证多数据源的同一批次的数据的一致性和完整性,由此导致分析结果不准确。
相关技术中,通过如下方式来保证多数据源的同一批次的数据的一致性:在执行写操作时,对数据库中的表上锁,其中在写操作期间禁止从上锁的表读取数据;在写操作完成后,释放锁并且从释放了锁的表读取数据。
然而,当同时对数据库中的大量的表执行写操作时,占用了较大的资源并且延长了读操作的等待时间,从而降低了用户体验。另外,在读操作的等待时间过长的情况下,读线程被杀死而无法返回数据,或者为了避免读线程被杀死,而仅能够从释放了锁的表读取数据,从而导致读取的数据不完整。
因此,上述保证多数据源的同一批次的数据的一致性的方式是不合适的。
发明内容
有鉴于此,本公开提出了一种数据处理方法及装置。
根据本公开的一方面,提供了一种数据处理方法,所述方法包括:
接收数据读取请求,所述数据读取请求用于请求从数据库的多张表中读取数据;
获取所述多张表中每张表的投票信息,所述投票信息为表中保存的数据的最新时间戳;
根据获取的所述投票信息,确定从所述多张表中读取的数据的时间戳;
从所述多张表中读取所确定的时间戳对应的数据。
根据本公开的另一方面,提供了一种数据处理装置,所述装置包括:
接收模块,用于接收数据读取请求,所述数据读取请求用于请求从数据库的多张表中读取数据;
获取模块,用于获取所述多张表中每张表的投票信息,所述投票信息为表中保存的数据的最新时间戳;
确定模块,用于根据获取的所述投票信息,确定从所述多张表中读取的数据的时间戳;
读取模块,用于从所述多张表中读取所确定的时间戳对应的数据。
本公开的实施例提供的技术方案可以包括以下有益效果:在接收到数据读取请求时,获取数据读取请求所请求的多张表中每张表的投票信息,并且根据获取的投票信息来确定从多张表中读取的数据的时间戳,再从多张表中读取所确定的时间戳对应的数据,由此,能够降低读操作的等待时间,并且能够确保读取的数据的完整性。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1是根据一示例性实施例示出的一种数据处理方法的流程图。
图2是根据一示例性实施例示出的一种数据处理装置的框图。
图3是根据一示例性实施例示出的一种数据处理装置的硬件结构框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1是根据一示例性实施例示出的一种数据处理方法的流程图,该数据处理方法可以应用于运行有数据库的设备,例如计算机主机。如图1所示,该数据处理方法可以包括如下步骤。
在步骤S110中,接收数据读取请求,所述数据读取请求用于请求从数据库的多张表中读取数据。
本实施例中,前端可以向运行有数据库的设备发送数据读取请求,以请求从数据库的多张表中读取数据。相应地,设备可以从前端接收到数据读取请求。
在步骤S130中,获取所述多张表中每张表的投票信息,所述投票信息为表中保存的数据的最新时间戳。
本实施例中,数据库的各表具有对应的投票信息,该投票信息例如为该表中保存的数据的最新时间戳,投票信息表明了读操作可以从该表读取到的最新的数据的时间戳。
示例性的,假设在时间t1获取到数据d1、d2和d3并将t1和数据d1、d2和d3写入数据库,则可以将时间t1作为数据d1、d2和d3的投票信息。假设在时间t1之后的时间t2获取到数据d1、d2和d3并将t2和数据d1、d2和d3写入数据库,则可以将时间t2作为数据d1、d2和d3的投票信息。
在步骤S150中,根据获取的所述投票信息,确定从所述多张表中读取的数据的时间戳。在一种实现方式中,若获取的所述多张表的投票信息中包括第一时间戳和第二时间戳,所述第二时间戳晚于所述第一时间戳,则上述步骤S150可以包括:
统计投票信息为所述第二时间戳的表的数量;
计算所述统计的数量与所述多张表的数量的比值;
若所述比值小于或等于预设阈值,则确定从所述多张表中读取的数据的时间戳为所述第一时间戳。
在一种实现方式中,上述步骤S150还可以包括:
若所述比值大于所述预设阈值并且所述比值等于1,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳。
本实施例中,投票信息在同一时刻仅包括第一时间戳和第二时间戳,第二时间戳为第一时间戳更新后的时间戳。其中,在完成表中的所有数据的写操作时,该表中的所有数据对应的投票信息均为第二时间戳;在完成该表中的部分数据的写操作时,该表中的已完成写操作的数据对应的投票信息为第二时间戳,该表中的没有完成写操作的数据对应的投票信息为第一时间戳。
预设阈值的取值范围为0~1,在预设阈值缺省时,预设阈值默认为0.5。在一种实现方式中,可以根据经验来设置预设阈值。示例性的,可以根据经验将0.5~1之间的任意值设置为预设阈值。在另一种实现方式中,可以根据对于数据处理的需求来设置预设阈值。示例性的,可以根据实时性的需求来设置预设阈值,其中,实时性的需求越高,预设阈值越大;反之,实时性的需求越低,预设阈值越小。
本实施例中,在上述比值小于或等于预设阈值的情况下,表明数据读取请求所请求的多张表中的大多数表没有完成写操作,因此确定从多张表中读取的数据的时间戳为第一时间戳,即,确定读取旧的数据;在上述比值等于1的情况下,表明数据读取请求所请求的多张表中的所有表已经完成写操作,因此确定从多张表中读取的数据的时间戳为第二时间戳,即,确定读取新的数据。
由此,本实施例的数据处理方法能够减少确定从多张表中读取的数据的时间戳所花费的时间,从而能够降低读操作的等待时间,并且还能够确保读取的数据的完整性。
在一种实现方式中,上述步骤S150还可以包括:
若获取的所述多张表的投票信息均为所述第二时间戳,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳。
本实施例中,若获取的多张表的投票信息均为第二时间戳,则表明数据读取请求所请求的多张表中的所有表已经完成写操作,因此确定从多张表中读取的数据的时间戳为第二时间戳,即,确定读取新的数据。
在步骤S170中,从所述多张表中读取所确定的时间戳对应的数据。
本实施例中,由于在步骤S150中已经确定了从多张表中读取的数据的时间戳,因此可以直接读取所确定的时间戳对应的数据。
本实施例的数据处理方法,在接收到数据读取请求时,获取数据读取请求所请求的多张表中每张表的投票信息,并且根据获取的投票信息来确定从多张表中读取的数据的时间戳,再从多张表中读取所确定的时间戳对应的数据,由此,能够降低读操作的等待时间,并且能够确保读取的数据的完整性。在一种实现方式中,上述步骤S150还可以包括:
若所述比值大于所述预设阈值并且所述比值小于1,则在预设时间内,针对投票信息为所述第一时间戳的目标表:
获取所述目标表的投票信息;
统计本次获取投票信息后,所述多张表中投票信息为所述第二时间戳的表的数量;
计算所述多张表中投票信息为第二时间戳的表数量与所述多张表的数量的比值;
若该比值等于1,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳;否则返回执行获取所述目标表的投票信息。
在一种实现方式中,上述步骤S150还可以包括:
若在所述预设时间内,最后一次统计的所述比值不等于1,则在所述预设时间到达时,确定从所述多张表中读取的数据的时间戳为所述第一时间戳。
本实施例中,为了兼顾读取的数据的一致性和读操作的等待时间,可以根据用户体验的要求来设置表示读操作的最大容许时间的预设时间,以在预设时间内确定从多张表中读取的数据的时间戳。其中,用户体验的要求越高,则预设时间越短;相应地,用户体验的要求越低,则预设时间越长。
在上述比值大于预设阈值并且小于1的情况下,表明数据读取请求所请求的多张表中的少数表没有完成写操作,在预设时间内,对于投票信息为第一时间戳的表(即,对于没有完成写操作的表,亦即上述目标表),获取目标表的投票信息,并且根据所获取的目标表的投票信息来确定从目标表中读取的数据的时间戳。可以采用与步骤S150中类似的方式来根据所获取的目标表的投票信息确定从目标表中读取的数据的时间戳。如果在超过预设时间时上述比值仍小于1,则直接确定读取投票信息为第一时间戳的数据,即,确定读取旧的数据。
由此,本实施例的数据处理方法在降低读操作的等待时间并且确保读取的数据的完整性的同时,还能够确保读取最新的数据。
图2是根据一示例性实施例示出的一种数据处理装置的框图。该数据处理装置可以应用于运行有数据库的设备,例如计算机主机。如图2所示,该数据处理装置200可以包括接收模块210、获取模块220、确定模块230和读取模块240。
接收模块210用于接收数据读取请求,所述数据读取请求用于请求从数据库的多张表中读取数据。
获取模块220与接收模块210连接,用于获取所述多张表中每张表的投票信息,所述投票信息为表中保存的数据的最新时间戳。
确定模块230与获取模块220连接,用于根据获取的所述投票信息,确定从所述多张表中读取的数据的时间戳。
读取模块240与确定模块230连接,用于从所述多张表中读取所确定的时间戳对应的数据。
在一种实现方式中,若获取的所述多张表的投票信息中包括第一时间戳和第二时间戳,所述第二时间戳晚于所述第一时间戳,则所述确定模块230被配置为:
统计投票信息为所述第二时间戳的表的数量;
计算所述统计的数量与所述多张表的数量的比值;
若所述比值小于或等于预设阈值,则确定从所述多张表中读取的数据的时间戳为所述第一时间戳。
在一种实现方式中,所述确定模块230还被配置为:
若所述比值大于所述预设阈值并且所述比值小于1,则在预设时间内,针对投票信息为所述第一时间戳的目标表:
获取所述目标表的投票信息;
统计本次获取投票信息后,所述多张表中投票信息为所述第二时间戳的表的数量;
计算所述多张表中投票信息为第二时间戳的表数量与所述多张表的数量的比值;
若该比值等于1,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳;否则返回执行获取所述目标表的投票信息。
在一种实现方式中,所述确定模块230还被配置为:
若在所述预设时间内,最后一次统计的所述比值不等于1,则在所述预设时间到达时,确定从所述多张表中读取的数据的时间戳为所述第一时间戳。
在一种实现方式中,所述确定模块230还被配置为:
若获取的所述多张表的投票信息均为所述第二时间戳,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳。
图3是根据一示例性实施例示出的一种数据处理装置的硬件结构框图。参照图3,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与数据处理逻辑对应的机器可执行指令以执行上文所述的数据处理方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
接收数据读取请求,所述数据读取请求用于请求从数据库的多张表中读取数据;
获取所述多张表中每张表的投票信息,所述投票信息为表中保存的数据的最新时间戳;
根据获取的所述投票信息,确定从所述多张表中读取的数据的时间戳;
从所述多张表中读取所确定的时间戳对应的数据。
2.根据权利要求1所述的方法,其特征在于,若获取的所述多张表的投票信息中包括第一时间戳和第二时间戳,所述第二时间戳晚于所述第一时间戳,则
根据获取的所述投票信息,确定从所述多张表中读取的数据的时间戳,包括:
统计投票信息为所述第二时间戳的表的数量;
计算所述统计的数量与所述多张表的数量的比值;
若所述比值小于或等于预设阈值,则确定从所述多张表中读取的数据的时间戳为所述第一时间戳。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述比值大于所述预设阈值并且所述比值小于1,则在预设时间内,针对投票信息为所述第一时间戳的目标表:
获取所述目标表的投票信息;
统计本次获取投票信息后,所述多张表中投票信息为所述第二时间戳的表的数量;
计算所述多张表中投票信息为第二时间戳的表数量与所述多张表的数量的比值;
若该比值等于1,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳;否则返回执行获取所述目标表的投票信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
若在所述预设时间内,最后一次统计的所述比值不等于1,则在所述预设时间到达时,确定从所述多张表中读取的数据的时间戳为所述第一时间戳。
5.根据权利要求2所述的方法,其特征在于,若获取的所述多张表的投票信息均为所述第二时间戳,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳。
6.一种数据处理装置,其特征在于,所述装置包括:
接收模块,用于接收数据读取请求,所述数据读取请求用于请求从数据库的多张表中读取数据;
获取模块,用于获取所述多张表中每张表的投票信息,所述投票信息为表中保存的数据的最新时间戳;
确定模块,用于根据获取的所述投票信息,确定从所述多张表中读取的数据的时间戳;
读取模块,用于从所述多张表中读取所确定的时间戳对应的数据。
7.根据权利要求6所述的装置,其特征在于,若获取的所述多张表的投票信息中包括第一时间戳和第二时间戳,所述第二时间戳晚于所述第一时间戳,则所述确定模块被配置为:
统计投票信息为所述第二时间戳的表的数量;
计算所述统计的数量与所述多张表的数量的比值;
若所述比值小于或等于预设阈值,则确定从所述多张表中读取的数据的时间戳为所述第一时间戳。
8.根据权利要求7所述的装置,其特征在于,所述确定模块还被配置为:
若所述比值大于所述预设阈值并且所述比值小于1,则在预设时间内,针对投票信息为所述第一时间戳的目标表:
获取所述目标表的投票信息;
统计本次获取投票信息后,所述多张表中投票信息为所述第二时间戳的表的数量;
计算所述多张表中投票信息为第二时间戳的表数量与所述多张表的数量的比值;
若该比值等于1,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳;否则返回执行获取所述目标表的投票信息。
9.根据权利要求8所述的装置,其特征在于,所述确定模块还被配置为:
若在所述预设时间内,最后一次统计的所述比值不等于1,则在所述预设时间到达时,确定从所述多张表中读取的数据的时间戳为所述第一时间戳。
10.根据权利要求7所述的装置,其特征在于,所述确定模块还被配置为:若获取的所述多张表的投票信息均为所述第二时间戳,则确定从所述多张表中读取的数据的时间戳为所述第二时间戳。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811201880.3A CN109388646B (zh) | 2018-10-16 | 2018-10-16 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811201880.3A CN109388646B (zh) | 2018-10-16 | 2018-10-16 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109388646A true CN109388646A (zh) | 2019-02-26 |
CN109388646B CN109388646B (zh) | 2021-03-02 |
Family
ID=65427379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811201880.3A Active CN109388646B (zh) | 2018-10-16 | 2018-10-16 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388646B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040236746A1 (en) * | 2003-05-22 | 2004-11-25 | Microsoft Corporation | Timestamping in databases |
US20100145918A1 (en) * | 2003-10-17 | 2010-06-10 | Stata Raymond P | Systems and methods for indexing content for fast and scalable retrieval |
US20130339301A1 (en) * | 2012-06-04 | 2013-12-19 | Google Inc. | Efficient snapshot read of a database in a distributed storage system |
CN104317957A (zh) * | 2014-11-11 | 2015-01-28 | 中国建设银行股份有限公司 | 一种报表处理的开放平台、系统及报表处理方法 |
CN105353988A (zh) * | 2015-11-13 | 2016-02-24 | 曙光信息产业(北京)有限公司 | 一种元数据读写方法及装置 |
CN106681846A (zh) * | 2016-12-29 | 2017-05-17 | 北京奇虎科技有限公司 | 日志数据的统计方法、装置及系统 |
CN107832121A (zh) * | 2017-11-07 | 2018-03-23 | 哈工大大数据(哈尔滨)智能科技有限公司 | 一种应用于分布式串行长事务的并发控制方法 |
CN108073595A (zh) * | 2016-11-10 | 2018-05-25 | 北京国双科技有限公司 | 一种在olap数据库实现数据更新和快照的方法及装置 |
-
2018
- 2018-10-16 CN CN201811201880.3A patent/CN109388646B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040236746A1 (en) * | 2003-05-22 | 2004-11-25 | Microsoft Corporation | Timestamping in databases |
US20100145918A1 (en) * | 2003-10-17 | 2010-06-10 | Stata Raymond P | Systems and methods for indexing content for fast and scalable retrieval |
US20130339301A1 (en) * | 2012-06-04 | 2013-12-19 | Google Inc. | Efficient snapshot read of a database in a distributed storage system |
CN104317957A (zh) * | 2014-11-11 | 2015-01-28 | 中国建设银行股份有限公司 | 一种报表处理的开放平台、系统及报表处理方法 |
CN105353988A (zh) * | 2015-11-13 | 2016-02-24 | 曙光信息产业(北京)有限公司 | 一种元数据读写方法及装置 |
CN108073595A (zh) * | 2016-11-10 | 2018-05-25 | 北京国双科技有限公司 | 一种在olap数据库实现数据更新和快照的方法及装置 |
CN106681846A (zh) * | 2016-12-29 | 2017-05-17 | 北京奇虎科技有限公司 | 日志数据的统计方法、装置及系统 |
CN107832121A (zh) * | 2017-11-07 | 2018-03-23 | 哈工大大数据(哈尔滨)智能科技有限公司 | 一种应用于分布式串行长事务的并发控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109388646B (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648446B (zh) | 一种用于时序数据的存储方法、装置及电子设备 | |
CN107608773B (zh) | 任务并发处理方法、装置及计算设备 | |
CN107766575B (zh) | 读写分离的数据库访问方法及装置 | |
US10606806B2 (en) | Method and apparatus for storing time series data | |
US20160292189A1 (en) | System and method for managing content deletion | |
CN105068936A (zh) | 一种软件的稳定性的测试方法及装置 | |
CN110750529B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110297743B (zh) | 一种负载测试方法、装置和存储介质 | |
CN110209714A (zh) | 报表生成方法、装置、计算机设备及计算机可读存储介质 | |
CN114442958B (zh) | 一种分布式存储系统的存储优化方法及装置 | |
CN109271097B (zh) | 数据处理方法、数据处理装置和服务器 | |
CN110188850A (zh) | 智能卡临时号码控制方法、装置及系统 | |
US20200394904A1 (en) | Metering data management system and computer readable recording medium | |
CN108280024B (zh) | 流量分配策略测试方法、装置及电子设备 | |
CN109388646A (zh) | 数据处理方法及装置 | |
CN105718539B (zh) | 一种数据库应用方法及装置 | |
US11138186B2 (en) | Database identifier generation in transaction processing systems | |
CN109727036B (zh) | 交易处理方法及其装置 | |
CN110674171A (zh) | 一种脚本生成方法、装置及数据处理方法、装置 | |
CN109767546B (zh) | 有价票据的质量核查调度装置和质量核查调度方法 | |
CN108595502B (zh) | 评估数据库服务性能的方法、装置及计算机可读存储介质 | |
CN113297053A (zh) | 测试覆盖率的确定方法、装置和存储介质 | |
CN112612415B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20180373807A1 (en) | Data management apparatuses, methods, and non-transitory tangible machine-readable media thereof | |
CN110908886A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |